Web: nginx+php-cgi+spawn-fcgi

Apache+php — связка старая, стабильная, хорошая, но порой по сравнению с тем же nginx медленная и прожорливая… исправим этот недостаток.
Итак, устанавливаем необходимые компоненты:
aptitude install nginx php5 php-cgi spawn-fcgi

#Вариант 1
Запускаем php-cgi с помощью spawn-fcgi:
spawn-fcgi -f /usr/bin/php-cgi -a 127.0.0.1 -p 9000 -C 2 -P /var/log/nginx/php.pid -u www-data -g www-data

#Вариант 2
или используя юникс сокеты:
exec /usr/bin/spawn-fcgi -s /tmp/php-cgi.sock /usr/bin/php-cgi -C 2 -P /var/log/nginx/php.pid -u www-data -g www-data

Пишем скрипт для запуска в несколько процессов:
#!/bin/bash
exec 2>&1
PHP_FCGI_CHILDREN=3 \
PHP_FCGI_MAX_REQUESTS=1000 \
#Вариант 1 (его оставлю закомменчиным)
#exec /usr/bin/spawn-fcgi -f /usr/bin/php-cgi -a 127.0.0.1 -p 9000 -C 2 -P /var/log/nginx/php.pid -u www-data -g www-data
#Вариант 2
exec /usr/bin/spawn-fcgi -s /tmp/php-cgi.sock /usr/bin/php-cgi -C 2 -P /var/log/nginx/php.pid -u www-data -g www-data

spawn-fcgi – одна из составных частей проекта Lighttpd. Предназначен он для того, что бы запустить php, как FastCGI сервер, ну а с этим сервером может работать потом практически любой http сервер.

Правим конфиг nginx’a для работы с php:
nano /etc/nginx/sites-available/default


location / {
root /var/www/nginx-default;
index index.php index.html index.htm;
}


location ~ \.php$ {
fastcgi_intercept_errors on;
#Вариант 1
#fastcgi_pass 127.0.0.1:9000;
#Вариант 2
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name;
include fastcgi_params;
}

Cтартуем nginx:
/etc/init.d/nginx start

Теперь проверим как работает пыха:
cat > /var/www/nginx-default/index.php
<? phpinfo(); ?>

далее заходим на http://server_ip/index.php

если видим информация о пхп, то всё ок, если не видим, то перечитываем внимательно статью.

Реклама
  1. спасибо!
    инфа о том, что у spawn-fcgi может быть сразу несколько процессов лично меня спасла. я реально не догадался посмотреть параметры командной строки.
    поставил 5 процессов, теперь смотрю как оно переживет 60 тыщ запросов в сутки.

  2. Found a good domain name on the jump video movies, information Here

  1. No trackbacks yet.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: