mirror of
https://github.com/php/doc-ru.git
synced 2025-08-16 18:22:04 +00:00
377 lines
14 KiB
XML
377 lines
14 KiB
XML
<?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
|
||
-->
|