mirror of
https://github.com/php/doc-ru.git
synced 2025-08-16 18:22:04 +00:00
287 lines
9.3 KiB
XML
287 lines
9.3 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- EN-Revision: dcd5448282973a659f62e4240fb6e50aae0eb78b Maintainer: rjhdby Status: ready -->
|
||
<!-- Reviewed: yes Maintainer: sergey -->
|
||
<!-- $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>
|
||
Рекомендуется посетить
|
||
<link xlink:href="&url.nginx.wiki.install;">страницу установки</link> на Nginx Wiki,
|
||
для информации о получении и установке 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.d/www.conf.default /usr/local/etc/php-fpm.d/www.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.d/www.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
|
||
-->
|