Этот раздел описывает установку PHP c Apache 2.x на Unix системах.
Внимание
Мы не рекомендуем использовать
потоковый MPM в промышленной среде вместе с Apache 2. Вместо этого, используйте prefork MPM, используемый по умолчанию
в Apache 2.0 и 2.2. Подробную информацию по этому вопросу вы можете найти в соответствующем разделе FAQ
Apache2 и потоковый MPM
Самым авторитетным источником информации по Apache 2.x является
» документация Apache.
Более подробная информация о настройках при установке может быть найдена
там.
Самая последняя версия Apache Http Server может быть получена
на » странице загрузки Apache,
а адрес соответствующей версии PHP был указан выше.
Это краткое руководство описывает лишь базовую установку Apache 2.x и PHP.
Для получения более детальной информации прочитайте » документацию Apache.
В инструкции ниже опущены номера версий - замените 'NN' на
номер, соответствующий скачанной вами версии Apache.
На данный момент есть две версии Apache 2.x - 2.0 и 2.2.
Хотя для выбора каждой из них существуют отдельные доводы, 2.2 является
наиболее свежей и рекомендуемой версией, если вас устраивает такой выбор.
Тем не менее, данные инструкции будут работать как для 2.0, так и для 2.2.
Скачайте Apache HTTP server как было указано выше и распакуйте его:
gzip -d httpd-2_x_NN.tar.gz
tar -xf httpd-2_x_NN.tar
Аналогично, скачайте и распакуйте исходные коды PHP:
gunzip php-NN.tar.gz
tar -xf php-NN.tar
Скомпилируйте и установите Apache. Более подробную информацию по сборке
Apache смотрите в его документации.
cd httpd-2_x_NN
./configure --enable-so
make
make install
Теперь ваш Apache 2.x.NN доступен как /usr/local/apache2,
сконфигурирован с поддержкой подгружаемых модулей и стандартным
мульти-процессным модулем (MPM) prefork.
Чтобы простестировать правильность установки используйте стандартную
процедуру запуска Apache, такую как:
/usr/local/apache2/bin/apachectl start
Затем остановите сервер, чтобы сконфигурировать и установить PHP:
/usr/local/apache2/bin/apachectl stop
Теперь мы сконфигурируем и соберем PHP. Здесь вы можете настроить установку
PHP с помощью различных опций, указывающих, например, какие расширения нужно включить.
Просмотрите вывод команды ./configure --help для получения полного списка параметров
конфигурации. В нашем примере мы сконфигурируем PHP очень просто -
с поддержкой Apache и MySQL.
Если вы собирали Apache из исходников, как было описано выше, то используйте
путь до apxs как указано в следующем примере, иначе, корректируйте этот путь
соответствующим вашей установке образом. Учтите также, что в некоторых
дистрибутивах apxs может иметь имя apxs2.
cd ../php-NN
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql
make
make install
Если вы решите изменить параметры конфигурации после установки, вам надо
будет повторить только три последних шага (configure, make, make install).
Вам нужно будет только перезапустить Apache, чтобы новые модули подгрузились и начали работать.
Перекомпиляция Apache для этого не требуется.
Заметьте, что если не указано обратное, то 'make install' установит так же PEAR,
различные инструменты PHP - такие как phpize, версию PHP для командной
строки (PHP CLI) и т.д.
Настройка вашего php.ini
cp php.ini-development /usr/local/lib/php.ini
Вероятно, вы захотите изменить некоторые настройки в php.ini.
Если вы предпочитаете держать файл php.ini в другом месте, используйте
параметр --with-config-file-path=/some/path в шаге 5.
Если же вы используетеphp.ini-production, прочитайте его, чтобы знать какие изменения в
поведении PHP это повлечет.
Отредактируйте ваш httpd.conf, чтобы Apache загружал модуль PHP. Путь в
правой части инструкции LoadModule должен указывать на модуль PHP. Команда make
install может добавить эту иструкцию автоматически, но этого может и не
произойти, поэтому проверьте, чтобы убедиться.
LoadModule php5_module modules/libphp5.so
Теперь следует сконфигурировать Apache, чтобы он передавал файлы с
некоторыми расширениями на обработку модулю PHP. В нашем примере сделаем
это для .php файлов. Вместо обычного использования директивы
Apache AddType, мы хотим избежать интерпретации как PHP потенциально опасных загрузок и
файлов наподобие exploit.php.jpg. С помощью данного примера можно
указать для интерпретации PHP любые расширения, просто добавив их
в конец списка. Продемонстрируем это на расширении .php.
Можно использовать mod_rewrite для отображения любого .php файла
с подсветкой синтаксиса, без нужды его переименования в .phps:
RewriteEngine On
RewriteRule (.*\.php)s$ $1 [H=application/x-httpd-php-source]
Данный фильтр, отображающий исходный код, должен быть отключен в
промышленном использовании, так как он может открыть конфиденциальную
или другую важную информацию, включенную в исходный код.
Если вы следовали инструкциям выше, то на данном этапе должны иметь запущенный
веб-сервер Apache2 с поддержкой PHP, как модуля SAPI.
Конечно, для PHP и Apache доступно гораздо больше параметров конфигурации.
Используйте ./configure --help в соответствующей папке с
исходными кодами для получения полного списка параметров конфигурации.
Если вы хотите собрать многопоточную версию Apache,
то при сборке вам следует указать модуль MPM worker
вместо стандартного модуля MPM prefork.
Чтобы сделать это, нужно добавить следующий аргумент к ./configure на шаге 3:
--with-mpm=worker
Не следует бездумно использовать эту настройку, используйте ее только если вы
понимаете все последствия этого решения. Документация Apache
по » модулям MPM
значительно глубже раскрывает эту тему.
Замечание:
Если вы хотите использовать зависимый контент (content negotiation),
прочитайте
Apache MultiViews
FAQ.
Замечание:
Для сборки многопоточной версии Apache, ваша система должна
поддерживать потоки. Это так же подразумевает сборку PHP c
экспериментальной поддержкой Zend Thread Safety (ZTS). И, как следствие,
не все расширения PHP смогут работать. Рекомендуется установка Apache с
модулем MPM по умолчанию - prefork.