Files
php-doc-ru/install/unix/nginx.xml
Andrey Gromov 893d424253 upd by anon
git-svn-id: https://svn.php.net/repository/phpdoc/ru/trunk@344485 c90b9560-bf6c-de11-be94-00142212c4b1
2018-03-12 14:19:19 +00:00

287 lines
9.4 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: 4736059e5ee0829c5f8214bbb4400f58ed8d5e7d Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<!-- $Revision$ -->
<sect1 xml:id="install.unix.nginx" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Установка Nginx 1.4.x на систему Unix</title>
<para>
Данная документация описывает процесс установки и настройка PHP с
PHP-FPM для Nginx 1.4.x HTTP сервера.
</para>
<para>
Данное руководство подразумевает, что вы собрали Nginx из исходников, следовательно,
все бинарные файлы и файлы конфигурации располагаются в
<literal>/usr/local/nginx</literal>. Если нет, и вы получили Nginx другим способом, тогда,
пожалуйста, обратитесь к <link xlink:href="&url.nginx;">Nginx Wiki</link>, чтобы перевести
данное руководство для вашей установки.
</para>
<para>
Данное руководство охватывает азы настройки Nginx сервера, для обработки PHP приложений
и отображения их на порту 80. Рекомендуется изучить документацию Nginx и PHP-FPM, если
вы хотите оптимизировать вашу установку за рамками данной документации.
</para>
<para>
Пожалуйста, обратите внимание, что во всей данной документации номера версий были
заменены на 'x', чтобы убедиться, что данная докуемнтация остается корректной в будущем.
Пожалуйста, замените 'x' на необходимый вам номер версии.
</para>
<orderedlist>
<listitem>
<para>
Рекомендуется посетить Nginx Wiki
<link xlink:href="&url.nginx.wiki.install;">страница установки</link>,
для информации о получении и установки Nginx.
</para>
</listitem>
<listitem>
<para>
Получение и распаковака исходники PHP:
</para>
<informalexample xml:id="install.unix.nginx.extract.php">
<screen>
<![CDATA[
tar zxf php-x.x.x
]]>
</screen>
</informalexample>
</listitem>
<listitem>
<para>
Настройка и сборка PHP. В этом разделе описивыется настройка и сборка PHP из
исходных кодов.
Запустите ./configure --help для получения списка доступных опций. В нашем примере
мы сделаем простые настройки с PHP-FPM и поддержкой MySQLi.
</para>
<informalexample xml:id="install.unix.nginx.build.php">
<screen>
<![CDATA[
cd ../php-x.x.x
./configure --enable-fpm --with-mysqli
make
sudo make install
]]>
</screen>
</informalexample>
</listitem>
<listitem>
<para>
Перемещение файлов настройки в нужные директории
</para>
<informalexample xml:id="install.unix.nginx.configure.php">
<screen>
<![CDATA[
cp php.ini-development /usr/local/php/php.ini
cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
cp sapi/fpm/php-fpm /usr/local/bin
]]>
</screen>
</informalexample>
</listitem>
<listitem>
<para>
Важно, что мы запрещаем Nginx от отправлять запросы в бэкенд PHP-FPM, если файл не
существует, что помогает избежать атаки инъекции скрипта.
</para>
<para>
Мы может исправить это путем установки директивы
<link linkend="ini.cgi.fix-pathinfo">cgi.fix_pathinfo</link>
равной <literal>0</literal> в нашем php.ini файле.
</para>
<para>
Редактирование php.ini:
</para>
<informalexample xml:id="install.unix.nginx.configure.ini">
<screen>
<![CDATA[
vim /usr/local/php/php.ini
]]>
</screen>
</informalexample>
<para>
Найдите опцию <literal>cgi.fix_pathinfo=</literal> и измените ее следующим образом:
</para>
<informalexample xml:id="install.unix.nginx.configure.pathinfo">
<screen>
<![CDATA[
cgi.fix_pathinfo=0
]]>
</screen>
</informalexample>
</listitem>
<listitem>
<para>
php-fpm.conf должен быть модифицирован, чтобы точно определить, что php-fpm должен
работать под пользователем www-data и группой www-data до того, как мы запустим сервис:
</para>
<informalexample xml:id="install.unix.nginx.modify.phpfpm">
<screen>
<![CDATA[
vim /usr/local/etc/php-fpm.conf
]]>
</screen>
</informalexample>
<para>
Найдите и измените следующее:
</para>
<informalexample xml:id="install.unix.nginx.modify.phpfpm.usergroup">
<screen>
<![CDATA[
; Unix user/group of processes
; Заметка: Пользователь является обязательным. Если группа не установлена,
; то будет использована стандартная группа пользователя.
user = www-data
group = www-data
]]>
</screen>
</informalexample>
<para>
Теперь можно запускать сервис php-fpm:
</para>
<informalexample xml:id="install.unix.nginx.start.phpfpm">
<screen>
<![CDATA[
/usr/local/bin/php-fpm
]]>
</screen>
</informalexample>
<para>
Более в этом рукомодстве мы не будет касаться настройки php-fpm. Если вам
необходимо произвести дополнительные настройки - обратитесь к документации по php-fpm.
</para>
</listitem>
<listitem>
<para>
Теперь Nginx должен быть настроен на поддержку выполнения PHP:
</para>
<informalexample xml:id="install.unix.nginx.configure.nginx">
<programlisting>
<![CDATA[
vim /usr/local/nginx/conf/nginx.conf
]]>
</programlisting>
</informalexample>
<para>
Измените блок "location", заданный по умолчанию, так, чтобы
можно было обрабатывать .php файлы:
</para>
<informalexample xml:id="install.unix.nginx.configure.nginx.location">
<programlisting role="nginx-conf">
<![CDATA[
location / {
root html;
index index.php index.html index.htm;
}
]]>
</programlisting>
</informalexample>
<para>
Следующий шаг - убедиться, что .php файлы отправляются в бэкенд PHP-FPM.
Введите следующее:
</para>
<informalexample xml:id="install.unix.nginx.configure.nginx.php">
<programlisting role="nginx-conf">
<![CDATA[
location ~* \.php$ {
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
]]>
</programlisting>
</informalexample>
<para>
Перезапустите Nginx.
</para>
<informalexample xml:id="install.unix.nginx.restart.nginx">
<screen>
<![CDATA[
sudo /usr/local/nginx/sbin/nginx -s stop
sudo /usr/local/nginx/sbin/nginx
]]>
</screen>
</informalexample>
</listitem>
<listitem>
<para>
Создайте тестовый файл
</para>
<informalexample xml:id="install.unix.nginx.test.nginx.php">
<screen>
<![CDATA[
rm /usr/local/nginx/html/index.html
echo "<?php phpinfo(); ?>" >> /usr/local/nginx/html/index.php
]]>
</screen>
</informalexample>
<para>
Теперь откройте в браузере http://localhost. Должна отобразиться информация phpinfo().
</para>
</listitem>
</orderedlist>
<para>
Следуя вышеуказанным шагам, вы получите рабочий Nginx сервер с
поддержкой PHP как модуля <literal>FPM</literal> <literal>SAPI</literal>. Конечно, доступно
большое число опций настроек для Nginx и PHP. Для более
подробной информации наберите <command>./configure --help</command>
в соответствующем дереве исходных кодов.
</para>
</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
-->