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