Учебник РНР
Назад Глава 2. Инсталяция Вперёд

Серверы Apache

В этом разделе содержатся замечания и подсказки по установке РНР на Apache, как для Unix, так и для Windows-версий.

Установка PHP на Apache под Unix

Вы можете выбрать аргументы для добавления в configure на строке 8 ниже из Полного списка опций конфигурации. Номер версии здесь опущен, чтобы гарантировать, что инструкции некорректны. Вам необходимо будет заменить 'xxx' на корректные значения из ваших файлов.

Пример 2-5. Инструкции установки (версия совместно используемого Apache-модуля) PHP 4
1. gunzip apache_xxx.tar.gz 2. tar -xvf apache_xxx.tar 3. gunzip php-xxx.tar.gz 4. tar -xvf php-xxx.tar 5. cd apache_xxx 6. ./configure --prefix=/www --enable-module=so 7. make 8. make install 9. cd ../php-xxx 10. ./configure --with-mysql --with-apxs=/www/bin/apxs 11. make 12. make install Если вы решите изменить опции конфигурации после инсталяции, вам нужно будет только повторить последние три шага. Необходимо рестартовать Аpache, чтобы новый модуль заработал. Перекомпиляция Apache не нужна. 11. cp php.ini-dist /usr/local/lib/php.ini Вы можете редактировать ваш .ini-файл для установки опций PHP. Если вы предпочитаете иметь этот файл в другом месте, используйте --with-config-file-path=/path из шага 8. 12. Отредактируйте httpd.conf или srm.conf и проверьте, что эти строки имеются и не закомментированы: AddType application/x-httpd-php .php LoadModule php4_module libexec/libphp4.so Вы можете выбрать здесь любое расширение имён файлов. .php это одно из рекомендуемых нами. Можете включить даже .html, а .php3 можно добавить для обеспечения обратной совместимости. Путь/path с правой стороны оператора LoadModule обязан указывать на path PHP-модуля на вашей системе. Вышеуказанный оператор корректен для предыдущих шагов. 13. Используйте вашу обычную процедуру старта сервера Apache. (Вы обязаны остановить и рестартовать сервер, а не просто перезагрузить его путём использования сигнала HUP или USR1.)

В зависимости от варианта установки Apache и вида Unix есть много вариантов остановки и рестарта сервера. Ниже даны типичные строки, используемые для рестарта сервера, для различных установок apache/unix. Вы должны заменить /path/to/ на путь/path к этим приложениям на вашей системе.

1. Разные варианты Linux и SysV: /etc/rc.d/init.d/httpd restart 2. Использование скриптов apachectl: /path/to/apachectl stop /path/to/apachectl start 3. httpdctl и httpsdctl (С использованием OpenSSL), аналогично apachectl: /path/to/httpsdctl stop /path/to/httpsdctl start 4. Используя mod_ssl или иной SSL-сервер, вы можете вручную остановить и рестартовать: /path/to/apachectl stop /path/to/apachectl startssl

Расположение двоичных apachectl и http(s)dctl часто варьируется. Если ваша система имеет команды locate, whereis или which, они могут вам помочь найти программы управления вашим сервером.

Далее идут примеры компиляции PHP для Аpache:

./configure --with-apxs --with-pgsql

Это создаст библиотеку libphp4.so, которая загружается в Apache с использованием строки LoadModule в файле конфигурации Apache'а httpd.conf. Поддержка PostgreSQL встроена в эту библиотеку libphp4.so.

./configure --with-apxs --with-pgsql=shared

Это создаст библиотеку libphp4.so для Apache, а также библиотеку pgsql.so, которая загружается в PHP путём использования директивы расширения/extension в файле php.ini, либо загрузкой её в скрипт явным образом с использованием функции dl() .

./configure --with-apache=/path/to/apache_source --with-pgsql

Это создаст библиотеку libphp4.so, mod_php4.c и некоторые сопутствующие файлы и скопирует их в директорию src/modules/php4 в дереве ресурсов Apache. Затем вы компилируете Apache с использованием --activate-module=src/modules/php4/libphp4.a, и система построения Apache создаст libphp4.a и свяжет её статически с двоичным httpd. Поддержка PostgreSQL включена непосредственно в этот двоичный httpd, так что окончательным результатом здесь является единственный двоичный httpd, который содержит всё из Apache и всё из PHP.

./configure --with-apache=/path/to/apache_source --with-pgsql=shared

То же, что и до этого, только вместо включения поддержки PostgreSQL непосредственно в окончательный httpd, вы получите библиотеку pgsql.so, которую можете загрузить в PHP из php.ini, либо напрямую через использование dl() .

При выборе варианта построения PHP вы должны рассмотреть преимущества и недостатки каждого метода. Построение как разделяемого объекта будет означать, что вы сможете компилировать Аpache независимо и не должны ничего рекомпилировать если добавите или измените PHP. Встраивание PHP в Аpache (статический метод) означает, что PHP будет загружаться и работать быстрее. Дополнительно см. web-страницу об Apache на сайте поддержки DSO.

Примечание: файл http.conf по умолчанию Apache'а в настоящее время поставляется с разделом, который выглядит примерно так: User nobody Group "#-1"
Если вы не измените это на "Group nogroup" или что-нибудь аналогичное ("Group daemon" также используется часто), PHP не сможет открывать файлы.

Установка PHP под Windows с Apache 1.3.x

Есть два способа установки PHP для работы с Apache 1.3.x в системах Windows. Один - для использования двоичного CGI (php.exe), другой - для использования Apache-модуля DLL.
В обоих случаях вам необходимо остановить сервер Apache и отредактировать файл srm.conf или httpd.conf, чтобы сконфигурировать Apache для работы с PHP.

В настоящее время нет ничего более стабильно работающего под Windows, чем SAPI-модуль, и мы рекомендуем использовать его, а не исполняемый CGI, поскольку он прозрачнее и безопаснее.

Хотя могут быть варианты конфигурирования PHP под Apache, они достаточно просты, чтобы ими могли воспользоваться новички. Посмотрите в документации к Apache о директивах конфигурации.

Если вы разархивировали пакет PHP в директорию c:\php\, как описано в разделе Установка вручную, вам необходимо вставить следующие строки в файл конфигурации Apache, чтобы настроить исполняемый CGI:

  • ScriptAlias /php/ "c:/php/"

  • AddType application/x-httpd-php .php .phtml

  • Action application/x-httpd-php "/php/php.exe"

Обратите внимание, что вторая строка может уже быть в действующей версии httpd.conf, но закомментированная. Не забудьте также заменить c:/php/ на фактический путь к PHP.

Предупреждение!

При использовании CGI setup, ваш сервер открыт для всевозможных атак. Пожалуйста, прочтите наш раздел о безопасности CGI, чтобы научиться защищать себя от подобных атак.

Если вы хотите использовать PHP как модуль в Apache, переместите php4ts.dll в системную директорию windows/system (для Windows 9x/Me) или winnt/system32 (для Windows NT/2000/XP), переписав старый файл. Затем вы должны добавить две следующие строки в conf-файл Apache:

  • LoadModule php4_module c:/php/sapi/php4apache.dll

  • AddType application/x-httpd-php .php .phtml

После изменения файла конфигурации не забудьте рестартовать сервер, например, NET STOP APACHE, а затем NET START APACHE, если вы запускаете Apache как службу Windows, или используйте обычные ярлыки.

Примечание: вы можете обнаружить, после использования windows-инсталятора для Apache, что вам нужно определить директиву AddModule для mod_php4.c в файле конфигурации (httpd.conf). Это делается путём добавления AddModule mod_php4.c в список AddModule близко к началу файла конфигурации. Это особенно важно, если определена директива ClearModuleList. Если этого не сделать, PHP не будет зарегистрирован как Apache-модуль.

Есть два способа использования возможности объяснения исходного кода, однако работа этой возможности зависит от инсталяции. Если вы сконфигурировали Apache для использования PHP как ISAPI-модуля, то, добавив следующую строку в ваш файл конфигурации, вы сможете воспользоваться этой возможностью: AddType application/x-httpd-php-source .phps

Если вы сконфигурировали Apache для использования PHP как CGI-экзешника, вам нужно воспользоваться функцией show_source() . При этом просто создаётся файл PHP-скрипта и добавляется такой код: <?php show_source ("original_php_script.php"); ?>.
Замените original_php_script.php на имя файла, исходный код которого вы хотите показать.

Примечание: на Win-Apache все обратные слэши (\) в операторе пути, таком как "c:\directory\file.ext", обязаны быть конвертированы в обычные слэши (/), как здесь: "c:/directory/file.ext".


Назад Оглавление Вперёд
Серверы CGI/Командная строка Вверх Серверы Caudium