РНР 5 в подлиннике

Страница 66 из 554


Гпава 5. Установка РНР и MySQL

135

Внимание!

ь

Эта директива — одна из самых важных. Без нее расширения просто не подключатся.

2. Теперь подключим те расширения, которые нам понадобятся для работы. Для этого найдите в php.ini место, где впервые упоминается директива extension. Добавьте непосредственно перед ней следующие команды (или снимите с них комментарий, если они уже есть в файле):

extension=php_xsl.dll extension=php_gd2.dll extension=php_mysql.dll

XSLT-процессор

работа с изображениями

работа с MySQL

Все остальные расширения нам пока не потребуются.

Внимание!

Ни в коем случае не подключайте от жадности все расширения подряд, ибо это верный способ заставить РНР перестать работать! Используйте только те библиотеки, которые вам действительно нужны (вы всегда сможете при необходимости подключить их позже). Во-первых, некоторые модули нужно дополнительно настраивать. Во-вторых, чем меньше модулей, тем быстрее загружается РНР. Наконец, в-третьих, чем меньше модулей вы подключите, тем меньше вероятность, что ошибка в одном из них заставит вас не один день промучиться с отладкой какого-нибудь побочного эффекта.

При компиляции и сборке РНР имеется возможность для каждой библиотеки расширения указать, как именно с ней поступать: собирать ли в виде отдельного DLL-модуля или же помещать код в ядро (php5td.dll). Поэтому многие полезные популярные расширения уже включены в РНР и не требуют дополнительной директивы extensions в php.ini. На данный момент такими модулями являются: dom, iconv, libxmi, sqiite и т. д. Если вдруг один из них у вас не заработает, проверьте: возможно, разработчики вынесли его из ядра в отдельный DLL-файл, и его следует подключить (или, наоборот, его внесли в ядро, и директиву extension нужно убрать). По крайней мере, при написании данной книги такие "миграции" происходили неоднократно.

После всех экспериментов с подключением новых модулей не забывайте проверять, запускается ли РНР без ошибок. Для этого выполните файл php.exe. Если перед вами возникает пустая консоль без сообщений об ошибках, значит, все в порядке. Нажмите комбинацию клавиш <Ctrl>+<C>.

Внимание!

Рекомендуем вначале вообще не подключать никаких расширений, а проверить, что сервер запускается, а тестовая страница РНР, которую мы вскоре создадим, — открывается. И уж только после этого открывайте php.ini и добавляйте необходимые модули. Несоблюдение данной рекомендации грозит вам потерей нескольких часов времени в случае возникновения ошибки. Всегда старайтесь идти от простого к сложному, проверяя результат на каждом шагу.

Настройка Apache для работы с РНР

С точки зрения Apache, РНР существует в двух "разновидностях": в виде модуля сервера или в виде "внешней CGI-программы". Мы рассмотрим оба варианта установки.

136

Часть II. Выбор и настройка инструментария

Установка РНР в виде CGI-программы

Проще всего установить РНР в виде внешней CGI-программы, которая будет запускаться при каждом запросе к PHP-скриптам. Имя этой программы — php-cgi.exe.

Внимание!

Мы настоятельно рекомендуем вам вначале попробовать установить CGI-вариант РНР. Если все получится, можете переходить к установке РНР в виде модуля (конечно, предварительно сделав резервные копии всего, что изменяете). К сожалению, РНР 5 в виде модуля Apache все еще работает довольно нестабильно, и с ним могут возникать разнообразные проблемы.

Итак, директивы, которые необходимо добавить в httpd.conf, мы запишем в файле php5_cgi.conf (листинг 5.1).

I Листинг 5.1. Файл /usr/local/apache/conf/php5_cgi.conf

## Подключение РНР 5 в виде CGI.

AddType application/x-httpd-php5 php5

ScriptAlias /_рпр5/ "/usr/local/php5/"

Action application/x-httpd-php5 "/_php5/php-cgi.exe"

Директива AddType связывает расширение файла (PHP) с уникальным идентификатором MIME-типа. Далее мы указываем программу, которую нужно запускать, когда пользователь пытается открыть файл указанного типа. Так как в директиве Action допустимо использовать только URL (но не абсолютные пути), предварительно мы назначаем абсолютному пути до PHP-каталога с URL /_рпр5/ (такой, который вряд ли где-нибудь еще встретится).

Далее нужно подключить файл с этими тремя директивами к httpd.conf. Для этого добавьте в последний строчку:

Include conf/php5_cgi.conf

He забудьте остановить Apache, а затем вновь запустите его, чтобы изменения вступили в силу.

Установка РНР в виде модуля сервера

Когда РНР работает как модуль Apache, его код является частью кода сервера и выполняется, как единое целое. Такой подход обеспечивает лучшее быстродействие: операционной системе не нужно при каждом запросе запускать внешнюю программу. Кроме того, модулю доступны некоторые внутренние (и часто полезные) функции сервера, которые можно использовать из РНР-программ.

К сожалению, за все нужно платить: установка РНР в виде модуля может оказаться задачей, значительно более сложной, чем конфигурирование CGI-версии.

Директиву подключения РНР 5 в виде модуля запишем в отдельный файл, содержимое которого приведено в листинге 5.2.




  Hostland.Ru

 «Бесплатный хостинг Hostland.Su» © 2006