Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки...

Инструменты пользователя

Инструменты сайта


unix-linux:ubuntu:ubuntu-14-04-lts-trusty-tahr:how-to-install-lemp-web-server-on-ubuntu-14-04:setup-php5-and-php-fpm-for-nginx

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
unix-linux:ubuntu:ubuntu-14-04-lts-trusty-tahr:how-to-install-lemp-web-server-on-ubuntu-14-04:setup-php5-and-php-fpm-for-nginx [28.03.2016 16:32] Алексей Максимовunix-linux:ubuntu:ubuntu-14-04-lts-trusty-tahr:how-to-install-lemp-web-server-on-ubuntu-14-04:setup-php5-and-php-fpm-for-nginx [28.03.2016 19:38] (текущий) – [Дополнительные источники информации] Алексей Максимов
Строка 118: Строка 118:
 <code>sudo service php5-fpm restart</code> <code>sudo service php5-fpm restart</code>
  
 +\\
 ==== Настройка пулов PHP-FPM ==== ==== Настройка пулов PHP-FPM ====
  
Строка 135: Строка 136:
 Перед настройкой пулов нужно определиться с выбором типа сокета для работы пулов. Перед настройкой пулов нужно определиться с выбором типа сокета для работы пулов.
 Есть два варианта:  Есть два варианта: 
-  * **unix-сокет** (по умолчанию /var/run/php5-fpm.sock)+  * **Unix-сокет** (по умолчанию /var/run/php5-fpm.sock)
   * **TCP-сокет** (по умолчанию 127.0.0.1:9000)   * **TCP-сокет** (по умолчанию 127.0.0.1:9000)
  
-Чтобы определиться с темВыбираем юникс-сокет+Чтобы определиться с тем, какой тип сокета выбрать можно поизучать всяческие дебаты по этому поводу, например:
  
-http://unix.stackexchange.com/questions/91774/performance-of-unix-sockets-vs-tcp-ports +  * [[http://unix.stackexchange.com/questions/91774/performance-of-unix-sockets-vs-tcp-ports|unix.stackexchange.com - Performance of unix sockets vs TCP ports]] 
-http://stackoverflow.com/questions/257433/postgresql-unix-domain-sockets-vs-tcp-sockets/257479#257479+  * [[http://stackoverflow.com/questions/257433/postgresql-unix-domain-sockets-vs-tcp-sockets/257479#257479|stackoverflow.com - PostgreSQL UNIX domain sockets vs TCP sockets]]
  
-Для того, чтобы каждый отдельный сайт использовал свой сокет создадим в системе пользователей, которые будут упралять данным сокетом+Я остановил свой выбор на Unix-сокете, так как по полученной информации пришёл к выводу, что в рамках локальной системы он несколько более производителен, чем TCP-сокет.
  
-sudo groupadd www-pool-root+Для того, чтобы каждый отдельный сайт использовал свой сокет, создадим в системе пользователей, которые будут управлять данным сокетом и включим их в одноимённую группу: 
 + 
 +<code>sudo groupadd www-pool-root
 sudo useradd -g www-pool-root www-pool-root sudo useradd -g www-pool-root www-pool-root
  
Строка 156: Строка 159:
 sudo groupadd www-pool-wiki sudo groupadd www-pool-wiki
 sudo useradd -g www-pool-wiki www-pool-wiki sudo useradd -g www-pool-wiki www-pool-wiki
 +</code>
  
 +Пример конфигурационного файла пула под один из сайтов (блог Wordpress) **/etc/php5/fpm/pool.d/php-fpm-pool-blog.conf** (отображены только изменённые или добавленные параметры конфига)
  
-Пример конфига пула /etc/php5/fpm/pool.d/php-fpm-pool-blog.conf (отображены только изменённые строки) +<file bash /etc/php5/fpm/pool.d/php-fpm-pool-blog.conf>
 [php-fpm-pool-blog] [php-fpm-pool-blog]
-user = www-pool-blog # Пользователь запуска пула 
-group = www-pool-blog # Группа запуска пула 
-listen = /var/run/php5-fpm-blog.sock # Расположение сокета 
-listen.backlog = 65535 # Очередь клиентских подключений 
-listen.owner = www-pool-blog # Права назначаемые на файл сокета 
-listen.group = www-data # Права назначаемые на файл сокета (должна быть указана основная группа пользователя от имени которого стартует nginx) 
-listen.mode = 0660 # Права назначаемые на файл сокета 
-pm.max_requests = 500 # Очередь запросов для каждого дочернего процесса внутри пула. Помогает предотвратить утечек памяти при использовании подгружаемых сторонних библиотек. По умолчанию 0, то есть неограничено. 
-security.limit_extensions = .php # Ограничим выполнение файлов по расширению имени 
-php_admin_value[disable_functions] = exec,passthru,shell_exec,system # Переопределение глобальных параметров PHP. Запретим вызов запуска Linux-команд 
-php_admin_flag[allow_url_fopen] = off # Запрещаем функцию PHP allow_url_fopen 
  
 +# Пользователь запуска пула
 +user = www-pool-blog
 +
 +# Группа запуска пула
 +group = www-pool-blog
 +
 +# Расположение сокета
 +listen = /var/run/php5-fpm-blog.sock
 +
 +# Очередь клиентских подключений
 +listen.backlog = 65535
 +
 +# Права назначаемые на файл сокета
 +listen.owner = www-pool-blog
 +
 +# Права назначаемые на файл сокета 
 +# Должна быть указана основная группа пользователя, 
 +# от имени которого стартует nginx
 +listen.group = www-data
 +
 +# Права назначаемые на файл сокета
 +listen.mode = 0660
 +
 +# Очередь запросов для каждого дочернего процесса внутри пула.
 +# Помогает предотвратить утечки памяти при использовании сторонних библиотек.
 +# По умолчанию 0, то есть неограничено.
 +pm.max_requests = 500
 +
 +# Ограничение выполнения файлов по расширению имени
 +security.limit_extensions = .php
 +
 +# Переопределение глобальных параметров PHP. 
 +# Запрет вызова запуска Linux-команд и функции PHP allow_url_fopen
 +php_admin_value[disable_functions] = exec,passthru,shell_exec,system
 +php_admin_flag[allow_url_fopen] = off
 +</file>
  
 Все прочие параметры, касающиеся тюнинга производительности пула оставляем в значениях по умолчанию. Все прочие параметры, касающиеся тюнинга производительности пула оставляем в значениях по умолчанию.
-Помимо указанных параметров, при необходимости, можно изменять глобальные параметры php.ini в разных конфигурационных файлах пулов php-fpm.+Помимо указанных параметров, при необходимости, можно изменять глобальные параметры php.ini в разных конфигурационных файлах пулов php-fpm (в приведённом выше примере это два последних параметра).
  
-Пример конфига пула /etc/php5/fpm/pool.d/php-fpm-pool-forum.conf (отображены только изменённые строки)+Пример конфигурационного файла пула под другой сайт (форум phpBB) **/etc/php5/fpm/pool.d/php-fpm-pool-forum.conf**  
 +(отображены только изменённые или добавленные параметры конфига). В целом параметры аналогичны вышеприведённому примеру и этот пример приведён лишь для того, что бы были понятны отличия для настройки пулов под разные сайты.
  
 +<file bash /etc/php5/fpm/pool.d/php-fpm-pool-forum.conf>
 [php-fpm-pool-forum] [php-fpm-pool-forum]
 user = www-pool-forum user = www-pool-forum
Строка 191: Строка 222:
 php_admin_value[disable_functions] = exec,passthru,shell_exec,system php_admin_value[disable_functions] = exec,passthru,shell_exec,system
 php_admin_flag[allow_url_fopen] = off php_admin_flag[allow_url_fopen] = off
-...+</file>
  
-# 
  
-При этом, в группу вида www-data должен будет входить пользователь от имени которого будет работать nginx, и более того, эта группа должна являться основной для этого пользователя.+При таких настройках пулов, в группу вида **www-data** должен будет входить пользовательот имени которого будет работать nginx, и более того, эта группа должна являться основной для этого пользователя.
  
  
-Перезагрузим php-fpm+После редактирования конфигурационных файлов пулов, для вступления изменений в силу, перезагрузим **php-fpm**:
  
-sudo service php5-fpm restart+<code>sudo service php5-fpm restart</code>
  
-Служба должна перезапутситься без ошибок, а в каталоге /var/run должны появиться файлы сокетов с правильно назанченными правами доступа:+Служба должна перезапуститься без ошибок, а в каталоге **/var/run** должны появиться файлы сокетов с правильно назначенными правами доступа:
  
-$ ls -la /var/run/php5-*.sock+<code>$ ls -la /var/run/php5-*.sock
  
 srw-rw---- 1 www-pool-blog  www-data 0 Mar 23 16:38 /var/run/php5-fpm-blog.sock srw-rw---- 1 www-pool-blog  www-data 0 Mar 23 16:38 /var/run/php5-fpm-blog.sock
 srw-rw---- 1 www-pool-forum www-data 0 Mar 23 16:38 /var/run/php5-fpm-forum.sock srw-rw---- 1 www-pool-forum www-data 0 Mar 23 16:38 /var/run/php5-fpm-forum.sock
 srw-rw---- 1 www-pool-root  www-data 0 Mar 23 16:38 /var/run/php5-fpm-root.sock srw-rw---- 1 www-pool-root  www-data 0 Mar 23 16:38 /var/run/php5-fpm-root.sock
-srw-rw---- 1 www-pool-wiki  www-data 0 Mar 23 16:38 /var/run/php5-fpm-wiki.sock+srw-rw---- 1 www-pool-wiki  www-data 0 Mar 23 16:38 /var/run/php5-fpm-wiki.sock</code>
  
 +Как видим, сокеты созданы и теперь можно переходить к установке и настройке **nginx**.
 +\\
 \\ \\
 ==== Дополнительные источники информации ==== ==== Дополнительные источники информации ====
  
-http://help.ubuntu.ru/wiki/php5 +  * [[http://help.ubuntu.ru/wiki/php5|help.ubuntu.ru - PHP 5]] 
-https://easyengine.io/tutorials/php/fpm-sysctl-tweaking/ PHP-FPM: Socket vs TCP/IP and sysctl tweaking +  * [[http://pektop.net/2013/09/sovety-po-nastrojke-i-optimizacii-nginx-i-php-fpm/|Советы по настройке и оптимизации Nginx и PHP-FPM]] 
-http://pektop.net/2013/09/sovety-po-nastrojke-i-optimizacii-nginx-i-php-fpm/ +  * [[https://www.digitalocean.com/community/tutorials/how-to-host-multiple-websites-securely-with-nginx-and-php-fpm-on-ubuntu-14-04|DigitalOcean Community - How To Host Multiple Websites Securely With Nginx And Php-fpm On Ubuntu 14.04]] 
-https://www.digitalocean.com/community/tutorials/how-to-host-multiple-websites-securely-with-nginx-and-php-fpm-on-ubuntu-14-04+ 
 +---- 
 + 
 +{{:user:blogroot.png?50&nolink |}} Автор первичной редакции:\\ [[user:blogroot|Алексей Максимов]] \\ Время публикации: 28.03.2016 17:02 
 + 
 +{{tag>Linux Ubuntu "Ubuntu 14.04" "14.04 LTS" "Ubuntu Server" "web server" LEMP FastCGI PHP PHP5 PHP-FPM Nginx Wordpress phpBB phpBB3 socket unix-socket }}
  
 +~~DISCUSSION~~
unix-linux/ubuntu/ubuntu-14-04-lts-trusty-tahr/how-to-install-lemp-web-server-on-ubuntu-14-04/setup-php5-and-php-fpm-for-nginx.1459171940.txt.gz · Последнее изменение: 28.03.2016 16:32 — Алексей Максимов

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki