Files
php-doc-ru/install/unix/apache2.xml
2021-07-08 16:10:31 +03:00

377 lines
14 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 8358db82c0c9c91de1e7fe4b9d8b1dcbf2b24975 Maintainer: shein Status: ready -->
<!-- Reviewed: yes -->
<!-- $Revision$ -->
<sect1 xml:id="install.unix.apache2" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Apache 2.x на Unix системах</title>
<para>
Этот раздел описывает установку PHP c Apache 2.x на Unix системах.
</para>
&warn.apache2.compat;
<para>
Самым авторитетным источником информации по Apache 2.x является
<link xlink:href="&url.apache2.docs;">документация Apache</link>.
Более подробная информация о настройках при установке может быть найдена
там.
</para>
<para>
Самая последняя версия Apache Http Server может быть получена
на <link xlink:href= "&url.apache;">странице загрузки Apache</link>,
а адрес соответствующей версии PHP был указан выше.
Это краткое руководство описывает лишь базовую установку Apache 2.x и PHP.
Для получения более детальной информации прочитайте
<link xlink:href="&url.apache2.docs;">документацию Apache</link>.
В инструкции ниже опущены номера версий - замените 'NN' на
номер, соответствующий скачанной вами версии Apache.
</para>
<para>
На данный момент есть две версии Apache 2.x - 2.4 и 2.2.
Хотя для выбора каждой из них существуют отдельные доводы, 2.4 является
наиболее свежей и рекомендуемой версией, если вас устраивает такой выбор.
Тем не менее, данные инструкции будут работать как для 2.4, так и для 2.2.
Обратите внимание, что Apache httpd 2.2 официально больше не поддерживается,
поэтому дальнейшая разработка не будет продолжаться, также как и приниматься новые патчи.
</para>
<orderedlist>
<listitem>
<para>Скачайте Apache HTTP server как было указано выше и распакуйте его:</para>
<informalexample>
<screen>
<![CDATA[
tar -xzf httpd-2.x.NN.tar.gz
]]>
</screen>
</informalexample>
</listitem>
<listitem>
<para>Аналогично, скачайте и распакуйте исходные коды PHP:</para>
<informalexample>
<screen>
<![CDATA[
tar -xzf php-NN.tar.gz
]]>
</screen>
</informalexample>
</listitem>
<listitem>
<para>
Скомпилируйте и установите Apache. Более подробную информацию по сборке
Apache смотрите в его документации.
</para>
<informalexample>
<screen>
<![CDATA[
cd httpd-2_x_NN
./configure --enable-so
make
make install
]]>
</screen>
</informalexample>
</listitem>
<listitem>
<para>
Теперь ваш Apache 2.x.NN доступен как /usr/local/apache2,
сконфигурирован с поддержкой подгружаемых модулей и стандартным
мульти-процессным модулем (MPM) prefork.
Чтобы протестировать правильность установки используйте стандартную
процедуру запуска Apache, такую как:
<informalexample>
<screen>
<![CDATA[
/usr/local/apache2/bin/apachectl start
]]>
</screen>
</informalexample>
Затем остановите сервер, чтобы сконфигурировать и установить PHP:
<informalexample>
<screen>
<![CDATA[
/usr/local/apache2/bin/apachectl stop
]]>
</screen>
</informalexample>
</para>
</listitem>
<listitem>
<para>
Теперь мы сконфигурируем и соберём PHP. Здесь вы можете настроить установку
PHP с помощью различных опций, указывающих, например, какие модули нужно включить.
Просмотрите вывод команды ./configure --help для получения полного списка параметров
конфигурации. В нашем примере мы сконфигурируем PHP очень просто -
с поддержкой Apache и MySQL.
</para>
<para>
Если вы собирали Apache из исходников, как было описано выше, то используйте
путь до apxs как указано в следующем примере, иначе, корректируйте этот путь
соответствующим вашей установке образом. Учтите также, что в некоторых
дистрибутивах apxs может иметь имя apxs2.
</para>
<informalexample>
<screen>
<![CDATA[
cd ../php-NN
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysqli
make
make install
]]>
</screen>
</informalexample>
<para>
Если вы решите изменить параметры конфигурации после установки, вам надо
будет повторить только три последних шага (configure, make, make install).
Вам нужно будет только перезапустить Apache, чтобы новые модули подгрузились и начали работать.
Перекомпиляция Apache для этого не требуется.
</para>
<para>
Заметьте, что если не указано обратное, то 'make install' установит так же PEAR,
различные инструменты PHP - такие как phpize, версию PHP для командной
строки (PHP CLI) и т.д.
</para>
</listitem>
<listitem>
<para>
Настройка вашего php.ini
</para>
<informalexample>
<screen>
<![CDATA[
cp php.ini-development /usr/local/lib/php.ini
]]>
</screen>
</informalexample>
<para>
Вероятно, вы захотите изменить некоторые настройки в php.ini.
Если вы предпочитаете держать файл php.ini в другом месте, используйте
параметр --with-config-file-path=/some/path в шаге 5.
</para>
<para>
Если же вы используете php.ini-production, прочитайте его, чтобы знать какие изменения в
поведении PHP это повлечёт.
</para>
</listitem>
<listitem>
<para>
Отредактируйте ваш httpd.conf, чтобы Apache загружал модуль PHP. Путь в
правой части инструкции LoadModule должен указывать на модуль PHP. Команда make
install может добавить эту инструкцию автоматически, но этого может и не
произойти, поэтому проверьте, чтобы убедиться.
</para>
<informalexample>
<para>
For PHP 7:
</para>
<programlisting role="apache-conf">
<![CDATA[
LoadModule php7_module modules/libphp7.so
]]>
</programlisting>
</informalexample>
<informalexample>
<para>
For PHP 5:
</para>
<programlisting role="apache-conf">
<![CDATA[
LoadModule php5_module modules/libphp5.so
]]>
</programlisting>
</informalexample>
</listitem>
<listitem>
<para>
Теперь следует сконфигурировать Apache, чтобы он передавал файлы с
некоторыми расширениями на обработку модулю PHP. В нашем примере сделаем
это для .php файлов. Вместо обычного использования директивы
Apache AddType, мы хотим избежать интерпретации как PHP потенциально опасных загрузок и
файлов наподобие exploit.php.jpg. С помощью данного примера можно
указать для интерпретации PHP любые расширения, просто добавив их
в конец списка. Продемонстрируем это на расширении .php.
</para>
<informalexample>
<programlisting role="apache-conf">
<![CDATA[
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
]]>
</programlisting>
</informalexample>
<para>
Или, если мы хотим добавить расширения .php, .php2, .php3, .php4, .php5, .php6 и
.phtml, это можно записать так:
</para>
<informalexample>
<programlisting role="apache-conf">
<![CDATA[
<FilesMatch "\.ph(p[2-6]?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
]]>
</programlisting>
</informalexample>
<para>
Чтобы PHP отображал содержимое файлов .phps с подсветкой синтаксиса, нужно
внести соответствующую директиву
</para>
<informalexample>
<programlisting role="apache-conf">
<![CDATA[
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
]]>
</programlisting>
</informalexample>
<para>
Можно использовать mod_rewrite для отображения любого .php файла
с подсветкой синтаксиса, без нужды его переименования в .phps:
</para>
<informalexample>
<programlisting role="apache-conf">
<![CDATA[
RewriteEngine On
RewriteRule (.*\.php)s$ $1 [H=application/x-httpd-php-source]
]]>
</programlisting>
</informalexample>
<para>
Данный фильтр, отображающий исходный код, должен быть отключён в
промышленном использовании, так как он может открыть конфиденциальную
или другую важную информацию, включённую в исходный код.
</para>
</listitem>
<listitem>
<para>
Используйте стандартную процедуру запуска Apache, например:
</para>
<informalexample>
<screen>
<![CDATA[
/usr/local/apache2/bin/apachectl start
]]>
</screen>
</informalexample>
<para>ИЛИ</para>
<informalexample>
<screen>
<![CDATA[
service httpd restart
]]>
</screen>
</informalexample>
</listitem>
</orderedlist>
<para>
Если вы следовали инструкциям выше, то на данном этапе должны иметь запущенный
веб-сервер Apache2 с поддержкой PHP, как модуля <literal>SAPI</literal>.
Конечно, для PHP и Apache доступно гораздо больше параметров конфигурации.
Используйте <command>./configure --help</command> в соответствующей папке с
исходными кодами для получения полного списка параметров конфигурации.
</para>
<para>
Если вы хотите собрать многопоточную версию Apache,
то при сборке вам следует указать модуль MPM <filename>worker</filename>
вместо стандартного модуля MPM <filename>prefork</filename>.
Чтобы сделать это, нужно добавить следующий аргумент к ./configure на шаге 3:
</para>
<informalexample>
<screen>
<![CDATA[
--with-mpm=worker
]]>
</screen>
</informalexample>
<para>
Не следует бездумно использовать эту настройку, используйте её только если вы
понимаете все последствия этого решения. Документация Apache
по <link xlink:href="&url.apache2.mpm;">модулям MPM</link>
значительно глубже раскрывает эту тему.
</para>
<note>
<para>
Если вы хотите использовать зависимый контент (content negotiation),
прочитайте
<link linkend="faq.installation.apache.multiviews">Apache MultiViews
FAQ</link>.
</para>
</note>
<note>
<para>
Для сборки многопоточной версии Apache, ваша система должна
поддерживать потоки. Это так же подразумевает сборку PHP c
экспериментальной поддержкой Zend Thread Safety (ZTS). И, как следствие, не все модули PHP смогут работать.
Рекомендуется установка Apache с модулем MPM по умолчанию - <filename>prefork</filename>.
</para>
</note>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->