Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

PHP5_nachinayushim

.pdf
Скачиваний:
29
Добавлен:
20.03.2015
Размер:
26.79 Mб
Скачать

54 Глава 1

Рис. 1.11.

Рис. 1.12.

Установка и использование PHP 55

Рис. 1.13.

Чтобы установить PHP, необходимо отключить службы IIS, а затем после некото+

рых изменений перезапустить их. Для этого нужно щелкнуть правой кнопкой мыши на пункте Веб-узел по умолчанию (Default Web site) и выбрать пункт Остановить кон+

текстного меню. После того как инсталляция PHP будет завершена, можно будет сно+ ва включить Web+сервер, а пока можно закрыть консоль для управления IIS.

Загрузка дистрибутива PHP 5

Получить наиболее свежую версию PHP 5 можно на сайте www.php.net в разделе ‘‘Downloads’’, который показан на рис. 1.14 (внешний вид этого раздела со временем может измениться).

Загрузите бинарный файл Windows+инсталляции (в zip+архиве), поместите его в ка+ кой+либо заранее созданный каталог (например, C:\PHP5RC01) жесткого диска, а за+

тем разархивируйте. В результате в каталоге PHP5RC01 должна образоваться иерар+ хия, показанная на рис. 1.15 (как она выглядит в окне Проводника Windows).

Имена файлов со временем могут измениться, но рассматриваемая в данной книге версия PHP 5 весьма близка к окончательному выпуску, поэтому инсталляция PHP 5 должна работать так же, как здесь описано. И хотя Windows инсталлируется чаще все+ го на диск C:, книжная версия установлена на диске D:. Читателю, возможно, придется изменить некоторые пути с тем, чтобы использовать диск C: (или другой диск, на кото+ ром установлена Windows), для того чтобы PHP+инсталляция работала корректно.

56 Глава 1

Рис. 1.14.

Рис. 1.15.

Установка и использование PHP 57

Теперь созданный для инсталляции PHP каталог (в данном случае PHP5RC01) со+ держит несколько подкаталогов и несколько текстовых файлов, программный файл php.exe, который фактически и будет использоваться, а также файл библиотеки php5ts.dll (в подкаталоге dev). Этот dll+файл необходимо скопировать в каталог D:\WINNT\System32 (заменив D: корректной буквой диска на используемой маши+ не). Кроме того, необходимо скопировать остальные dll+файлы в тот же каталог. Если Windows выдаст сообщение о том, что тот или иной файл уже имеется в системе, то следует оставить старый файл, не заменяя его только что загруженным.

Если копировать все dll+файлы в каталог System32 нежелательно и PHP инсталли+ руется как SAPI (как и в данной книге), то для этих файлов можно создать другой каталог и изменить соответствующим образом системную переменную PATH. Системная пе+ ременная PATH содержит список каталогов (путей), в которых Windows ищет необ+ ходимые для работы программ файлы, например, dll+файлы. Если, предположим, для dll+файлов PHP пользователь создал каталог C:\php5\dlls, то в эту переменную не+ обходимо записать строку C:\php5\dlls, после чего содержащиеся в нем файлы

будут использоваться системой. Чтобы установить переменную PATH, необходимо на+ жать кнопку Пуск, выбрать пункты Панель управления Система Дополнительно Переменные среды (Control Panel System Advanced Environment Variables), а за+

тем найти и задать необходимое значение переменной PATH).

php.ini и расширения

Как уже отмечалось ранее, файл php.ini содержит инструкции, которые обрабаты+ ваются во время запуска PHP, по установке конфигурационных параметров PHP и за+ грузке определенных расширений. Конфигурационные установки подобны выключате+ лям ++++++ они включают или отключают различные режимы работы PHP. Расширения предоставляют дополнительные или усовершенствованные встроенные возможности PHP.

Вкорне созданного для PHP каталога должны находиться файлы php.ini-dist

иphp.ini-recommended. Файл php.ini-dist следует скопировать в каталог D:\WINNT (используя соответствующую букву диска), переименовать его в php.ini, а затем от+ крыть в Notepad. В этом файле необходимо найти строки наподобие следующих:

extension_dir = C:\php\extensions ; directory in which the loadable extensions (modules) reside

Убедитесь, что данный путь соответствует пути к каталогу расширений разархиви+ рованного дистрибутива PHP 5. Если это не так, то его следует соответствующим об+ разом изменить (задать путь к каталогу ext в разархивированном каталоге PHP). В ката+ логе расширений содержится множество файлов, имена которых начинаются с php_

изаканчиваются на .dll.

Вследующем разделе файла php.ini задаются расширения, загружаемые PHP. Расширения, которые указаны в строках, начинающихся с точки с запятой, не загру+ жаются ++++++ точка с запятой в начале директивы означает, что PHP игнорирует данную директиву. Следует удалить точку с запятой из строки extension=php_gd.dll, так чтобы текст файла выглядел примерно следующим образом:

;extension=php-filepro.dll extension=php-gd.dll ;extension=php_mssql.dll

Это даст доступ к функциональности библиотеки GD, которая позволяет генерировать изображения в PHP+программах (подробнее данная тема рассматривается в главе 16, ‘‘Генерирование графики’’). Модифицированный файл php.ini следует сохранить.

58 Глава 1

Теперь снова следует запустить консоль для управления IIS ++++++ Пуск Программы Администрирование Internet Services Manager и открыть иерархию служб. Затем,

щелкнув правой клавишей мыши на пункте Веб+узел по умолчанию (Default Web Site), выберите пункт Свойства (Properties) (рис. 1.16).

Рис. 1.16.

Здесь следует внести два изменения. Во+первых, необходимо зарегистрировать ISAPI+фильтр PHP 5, поскольку планируется установить PHP с его собственным SAPI+

интерфейсом, а не как CGI+программу. Выберите вкладку Фильтры ISAPI (ISAPI Filters). Нажмите на кнопку Добавить (Add) и создайте новый фильтр, который называется PHP.

В подкаталоге sapi дистрибутива PHP содержится файл php5isapi.dll ++++++ ISAPI+ фильтр PHP. В появившемся диалоговом окне необходимо указать корректный путь к данному файлу, (рис. 1.17).

Во+вторых, нужно определить, к каким файлам IIS будет применять PHP5 фильтр.

IIS должен интерпретировать все файлы, имеющие расширение .php, как PHP+ программы. Во вкладке Домашний каталог (Home Directory) нажмите кнопку Настройка (Configuration). В следующем диалоговом окне нажмите кнопку Добавить. В результате на экране появится диалоговое окно Добавление или изменение сопос-

тавления расширений (рис. 1.18).

Нажмите кнопку Обзор (Browse) и укажите путь к файлу php5isapi.dll. В поле Расширение (Extension) необходимо ввести .php, указав таким образом, что IIS должен

применять данный фильтр к .php+файлам. Дважды нажмите OK. Теперь необходимо перезапустить IIS. Закройте диалоговое окно Свойства, щелкните правой кнопкой мы+ ши на пункте Веб-узел по умолчаниюи выберите в контекстном меню пункт Пуск(Start).

Установка и использование PHP 59

Рис. 1.17.

Рис. 1.18.

60 Глава 1

Если MMC+консоль сообщила о том, что служба Web+публикаций запустилась ус+ пешно, то PHP 5 установлен. Необходимо запомнить имя корневого каталога Web+ сайта (в данном случае ++++++ C:\Inetpub\wwwroot).

Создайте в каталоге wwwroot какой+либо подкаталог. Назвать его можно как угод+ но (желательно, чтобы имя было понятным). Затем в каталог следует поместить файлы с расширением .php. Когда браузер будет запрашивать эти файлы, они будут обраба+ тываться посредством PHP+машины.

Теперь можно открыть текстовый редактор и создать текстовый файл, содержа+ щий следующий код:

<?php

phpinfo();

?>

Созданный файл можно сохранить с именем test01.php (или любым другим именем, но с расширением .php) в только что созданном подкаталоге каталога wwwroot. Чтобы открыть данный файл в браузере, введите в адресной строке адрес http://localhost плюс имя его каталога, а также имя самого файла, например, так: http://localhost/php_file/myfile.php). В браузере должна появиться страни+ ца наподобие страницы, показанной на рис. 1.19 (хотя номер версии PHP может не+ сколько отличаться, если вы используете более свежий выпуск PHP).

Если это так, то все работает. Если же нет, обратитесь к следующему разделу.

Рис. 1.19.

Установка и использование PHP 61

Тестирование и устранение неисправностей

Протестировать инсталляцию PHP несложно. Следует начать с написания и запус+ ка небольшой PHP+программы. Создается небольшой тестовый PHP+файл, например, со следующим кодом:

<?php

echo "Ура, заработало!"; ?>

Созданный файл необходимо сохранить в любом подкаталоге каталога wwwroot (или в соответствующем каталоге, если используется не Windows 2000/IIS, а другая комбинация операционная система/Web+сервер).

Затем следует открыть данный файл в браузере. В результате этого в браузере должны появиться слова: ‘‘Ура, заработало!’’. Если вместо них появляется ошибка ‘‘Невозможно отобразить страницу’’ (‘‘Page cannot be displayed’’), то либо проблема в инсталляции PHP, либо система не может найти файл, либо в конфигурации Web+сервера есть ошибка. Если в Web+браузере появляется сообщение о синтаксической ошибке (parse error), то, возможно, при вводе кода была допущена опечатка. Ошибки в коде под+ робнее рассматриваются в нескольких последующих главах, а здесь описаны некото+ рые пути устранения неисправностей в базовой инсталляции PHP.

Работает ли тестовый файл? Или вы читаете данный раздел именно потому, что он не работал? Беспокоиться не стоит. Осваивая что+нибудь новое, человек неизбежно сталкивается с весьма распространенными проблемами, это особенно верно, когда речь идет о компьютерах и программировании. Фактически, ошибки в данном случае мож+ но считать удачей, поскольку они стимулируют освоение PHP и программирования.

Устранение неисправностей и отладка включают в себя процесс идентификации проблем, отслеживания возможных причин, логической изоляции этих причин до тех пор, пока не будет найден наиболее вероятный источник проблемы, и последую+ щих попыток найти решение. Конечный результат заключается в том, что проблема исправлена. Если программист хорошо выполнил свою работу, то проблема будет ис+ правлена (изящно и надежно), и это не вызовет других проблем. (В главе 5 отладка программ рассматривается более подробно.)

Процесс устранения неисправностей инсталляции PHP можно разбить на такие этапы:

1. Необходимо проверить, запущен ли сервер и правильно ли он работает. В Win+ dows 2000 это можно сделать, проверив службы (Пуск Программы Администри-

рование Службы (Start Programs Administrative Tools Services)), особенно службы Internet+администрирования и службу Веб+публикаций. Только тот факт, что они настроены на автоматическую работу, не означает, что они включе+ ны. Чтобы подстраховаться, их можно остановить и перезапустить снова. Кроме того, можно проверить (в консоли управления IIS), работает ли Web+ сервер с Веб+узлом по умолчанию. В случае Apache и Linux необходимо прове+ рить httpd+службу (это также можно сделать путем ввода http://localhost

вадресную строку браузера).

2.Можно поместить простой HTML+файл в каталог wwwroot, убедившись, что он имеет расширение .htm или .html (например, test01.htm), и вызвать его

вбраузере. При этом следует убедиться, что в адресной строке используется URL

62Глава 1

http://localhost/test01.htm, а не путь к файлу (например, D:\inetpub\ wwwroot\test01.htm).

3.Если HTML+страница отображается правильно, значит можно быть уверенным, что Web+сервер функционирует. Это означает (предположим, что не отобра+ жаются PHP+страницы), что проблема заключается в инсталляции PHP. Если появляются другие сообщения (такие как 404 Файл не найден (404 Page Not Found)), то весьма вероятно, что система просто не может найти данный файл, поэтому необходимо еще раз проверить имя файла, имя Web+каталога и т.д.

4.Если проблема предположительно заключается в инсталляции PHP, то следует еще раз проверить процесс установки, тщательно отработать каждый этап и убе+ диться, что все файлы PHP расположены в соответствующих каталогах. Особое внимание необходимо уделить именам системных каталогов, поскольку они мо+ гут отличаться в зависимости от операционной системы Windows или Linux.

5.Следует проверить права доступа к файлам. Права доступа очень важны в Linux+ системах и в меньшей степени ++++++ в Windows 2000 или настольных версиях Windows. Можно зарегистрироваться в системе как root или администратор в Linux или Windows и попытаться изменить права доступа для запуска сценариев из катало+ гов Web+сервера. В случае использования внешнего хостинга изменить права дос+ тупа на Linux+системах можно при помощи любой хорошей FTP+утилиты.

Данные этапы помогут локализовать проблему и подсказать возможное решение.

Конфигурирование PHP

В ходе инсталляции, для того чтобы повлиять на работу PHP и его функций, мо+ дифицировался файл php.ini. В Приложении Е ‘‘Конфигурация PHP5’’ данной кни+ ги обсуждаются основные установки в файле php.ini, а также некоторые доступные для PHP расширения. Наиболее важные конфигурационные параметры и расшире+ ния PHP рассматриваются в данном разделе.

Файл php.ini

Файл php.ini анализируется при первой загрузке и запуске PHP, для того чтобы задать определенный режим работы PHP (для любого сценария, выполняемого на Web+сервере). Все строки, в начале которых нет точки с запятой, являются действую+ щими командами; все остальное в данном файле следует рассматривать как коммента+ рии. Ниже приведен текст нескольких разделов файла php.ini-recommended. Пока+ занные установки важны потому, что они непосредственно влияют на то, как работает PHP (в обычных обстоятельствах), они также могут повлиять на код или безопасность разрабатываемых приложений.

;;;;;;;;;;;;;;;;;;;;;;;;

; Ограничения ресурсов ;

;;;;;;;;;;;;;;;;;;;;;;;;

max_execution_time = 30 ; Максимально возможное время выполнения

;

сценария в секундах.

max_input_time = 60

; Максимально возможное время

;

синтаксического анализа данных запроса

memory_limit = 8M

; Максимальный объем памяти, выделяемый

;

сценарию (8MB)

Установка и использование PHP 63

;Должен ли РНР регистрировать EGPCS-переменные как глобальные

;переменные. Можно отключить эту функцию, чтобы не "засорять"

;глобальную область видимости сценария. Это особенно полезно,

;если используется директива track_vars — в этом случае

;получить доступ к GPC-данным можно через переменные $НТТР_*_VARS[].

;Желательно так писать сценарии, чтобы они по возможности

;обходились без директивы register_globals. Использование

;данных, поступивших из формы, как глобальных переменных,

;потенциально может породить проблемы в защите сценария, если

;программист специально не позаботится об их устранении.

register_globals = Off

Гораздо более полная информация, касающаяся настроек в файле php.ini, при+ ведена в Приложении Е.

PHP-расширения

PHP+расширения представляют собой программируемые возможности, которые добавляются к PHP или улучшают его встроенные средства для выполнения полезной работы в PHP+программах. В первых главах данной книги специальные расширения не используются. Все доступные расширения рассматриваются в Приложении Е.

Кэширование

Кэширование представляет собой метод временного сохранения некоторых ре+ зультатов, для того чтобы не повторять всю обработку каждый раз при поступлении новых запросов к серверу. Один из потенциальных недостатков выполнения всего кода на сервере заключается в том, что если на клиенте (или на какой+либо машине между конечным пользователем и сайтом) включено кэширование, то пользователь может не получить наиболее свежей сгенерированной страницы. Чтобы обойти кэ+ ширование (по крайней мере, для большинства браузеров и серверов), можно встав+ лять в сценарии следующий код:

<?php

header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache");

header("Expires: Mon,26 Jul 1997 05:00:00 GMT"); ?>

Первая строка хорошо работает с протоколом HTTP версии 1.1, вторая ++++++ с HTTP 1.0, а третья работает, определяя дату в прошлом (более подробно протокол HTTP рас+ сматривается в главе 2).

Резюме

Вданной главе вкратце рассматривалась история PHP и несколько способов уста+ новки PHP наряду с распространенным программным обеспечением Web+серверов.

Вглаве были даны рекомендации по установке PHP на Windows и Linux+ платформы в виде CGI+программы или в виде отдельного модуля, раскрыто основное назначение некоторых PHP+настроек, описано месторасположение файлов PHP по+ сле инсталляции, представлена методика тестирования инсталляции. Кроме того,

вглаве освещалось базовое определение поиска и устранения неисправностей и от+ ладки, а также последовательность этапов, которые следует выполнить, если инстал+ ляция PHP не работает.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]