В этом разделе содержатся замечания и подсказки по установке РНР на Apache, как для
Unix, так и для Windows-версий.
Вы можете выбрать аргументы для добавления в
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 для работы с 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:
После изменения файла конфигурации не забудьте рестартовать сервер, например,
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".
|