Установка PHP-FPM и Nginx на Ubuntu 12.04 - 14.04.*

28 ноября 2013 г.

Установка PHP-FPM и Nginx обеспечивает гораздо более отзывчивый веб-сервер, чем типичная связка LAMP (Linux, Apache, MySQL и PHP). Статические файлы подаются с молниеносной скоростью и результат более довольные пользователи, лучшие места для поиска и вообще быстрый сайт.
Долгое время при рекомендации перейти на Nginx, пользователи беспокоились, что это будет затруднительно в установке и поддержке. Но в случае с современными операционными системами Ubuntu (актуально для версии до 14.04+) это просто. Несколько команд и несколько минут вашего времени это все, что потребуется, чтобы получить полностью функционирующий LNMP-сервер (Linux, Nginx, MySQL и PHP5), поднятый и работающий.

Здесь представлены 10 шагов к готовой связке LNMP.

Все команды выполняются с правами суперпользователя (root, sudo).

Шаг 1: Проверка OS на наличие обновлений и их установка.
apt-get update && apt-get upgrade -y && apt-get dist-upgrade -y
Шаг 2: Перезагрузка OS.
shutdown -r now
Шаг 3: Установка Nginx.
apt-get install nginx -y

Официальный wiki по установке NGINX

Шаг 4: Установка PHP с необходимым (минимальным) набором модулей.
apt-get install php5-fpm php5-gd php5-json php5-xcache php5-mysql php5-mcrypt php5-imap php5-geoip php5-sqlite php5-curl php5-cli -y
Шаг 5: Установка MySQL.

apt-get install mysql-client mysql-server -y

Примечание:
Установите пароль для root-пользователя MySQL, когда вас попросит установщик. Вы можете, по желанию, выполнить в будущем эту команду для защиты сервер MySQL: mysql_secure_installation

Шаг 6: Быстрое обновление конфигурации Nginx (nginx.conf).

replace "worker_processes 4" "worker_processes 2" -- /etc/nginx/nginx.conf
replace "keepalive_timeout 65" "keepalive_timeout 5" -- /etc/nginx/nginx.conf
replace "index index.html index.htm" "index index.php index.html index.htm" -- /etc/nginx/sites-available/default

Примечание:
Мы заменили количество процессов с 2 на 4.
Можно установить количество равное количеству ядер, или 2х количества ядер.

Шаг 7: Редактируем вручную конфикурацию сайтов по-умолчанию, чтобы подключить PHP.

vim /etc/nginx/sites-available/default
Помещаем это в блок server {}

    # pass the PHP scripts to PHP-FPM server listening on unix socket
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }
    # deny access to ‘.’ files
    location ~ /\. {
        deny all;
        access_log off;
        log_not_found off;
    }
		

Примечание:
Что-то подобное там уже есть (скорее всего), заключенное в #, но нужно именно это, т.к. там указан IP: 127.0.0.1:9000, а в этой сборке используется сокет.

Шаг 8: Быстрое обновление конфигурации PHP-FPM, для 'www'-пула по-умолчанию.
replace "listen = 127.0.0.1:9000" "listen = /var/run/php5-fpm.sock;" -- /etc/php5/fpm/pool.d/www.conf
Шаг 9: Перезагрузка сервисов.
service nginx restart && service php5-fpm restart
Шаг 10: Проверяем работоспособность.

echo "<?php phpinfo(); ?>" > /usr/share/nginx/www/index.php
Теперь вы можете ввести IP-адрес своего сервера (или для локального сервера 127.0.0.1) или имя хоста в браузер и должна быть представлена на страница phpinfo.

Готово.

Перевод с английского. Оригинальный текст взят с просторов Интернета.

P.S.
С последними обновления возможна ошибка с правами доступа в PHP5-FPM (13: Permission denied), решение может стать раскомментирование параметров "listen.owner = nginx" и "listen.group = nginx", где nginx - имя пользователя, от которого работает nginx.