Настройка nginx + php-fpm в Debian/Ubuntu
Nginx - это HTTP-сервер. По сравнению с apache он более отказоустойчив, способен выдержать большое количество соединений. В основном применяется на продакшн серверах, почему-то его редко настраивают для локальной разработки, хотя это не сложнее, чем настроить apache + php.
Но различия все таки есть. Начнем с того, что php может работать с nginx в режиме fastCGI, в то время как с apache как в режиме в fastCGI, так и как модуль апача. Кроме того, придется отдельно настраивать rewrite, basic authentication и т.д. (.htaccess - фича апача).
Но заставить работать в простейшем случае - несложно =)
Итак, нужно поставить, собственно, сам nginx, php (если еще не стоит) и php-fpm:
aptitude install nginx php5 php5-cli php5-fpm
Nginx и php-fpm должен добавиться в автозапуск и стартонуть, но если внезапно этого не произошло, то
service nginx start
service php5-fpm start
Можно проверить наличие в автозапуске с помощью, например, rcconf.
(Хотя еще не сконфигурирован ни nginix, ни php-fpm, в будущем все равно придется перезапустить).
Конфигурация Nginx
Сам nginx должен работать на конфигурации
nano /etc/nginx/nginx.conf
"с коробки". На что стоит обратить внимание - это на параметр
user www-data;
Он определяет, с какого пользователя будет запускаться Nginx.
Также следует проверить, подключается ли конфигурация модулей и хостов. Должны (как правило, в конце) быть строчки вроде:
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
Теперь нужно создать конфигурацию хоста:
nano /etc/nginx/sites-available/your_site.conf
server {
listen 80;
server_name www.site.net site.net;
root /usr/share/nginx/www/default;
index index.html index.htm;
access_log /var/log/nginx/site.log; error_log /var/log/nginx/site.log;
# Дальше настройка php location ~ .php$ { fastcgi_split_path_info ^(.+.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } }
(можно посмотреть в /etc/nginx/sites-available.default)
Таким образом, сконфигурировали работу с php-fpm через сокет.
Осталось подключить конфигурацию:
ln -s /etc/nginx/sites-available/your_site.conf /etc/nginx/sites-enabled/your_site.conf
Теперь
service nginx reload
И вуаля, все должно работать - мы настроили сервер nginx. P.S. Не забудьте подправить /etc/hosts, если это необходимо