Установка и настройка связки nginx + spawn-fcgi (PHP)
Материал из 1GbWiki.
Версия 10:25, 31 января 2011 (править) Александр Пристенский (Обсуждение | вклад) ← К предыдущему изменению |
Версия 10:33, 31 января 2011 (править) (отменить) Александр Пристенский (Обсуждение | вклад) К следующему изменению → |
||
Строка 63: | Строка 63: | ||
=== Настройка виртуальных хостов в nginx === | === Настройка виртуальных хостов в nginx === | ||
+ | |||
+ | Допустим у нас будет два домена: | ||
+ | * по умолчанию (default) | ||
+ | * mysite.ru | ||
+ | |||
+ | Для этого создадим следующие файлы и каталоги: | ||
+ | mkdir /usr/local/nginx/www | ||
+ | mkdir /usr/local/nginx/www/default | ||
+ | mkdir /usr/local/nginx/www/mysite.ru | ||
+ | chown -R nobody:nogroup /usr/local/nginx/www/* | ||
+ | mkdir /usr/local/nginx/conf/vhosts | ||
+ | touch /usr/local/nginx/conf/vhosts/default | ||
+ | touch /usr/local/nginx/conf/vhosts/mysite.ru | ||
+ | |||
+ | Основной файл конфигурации nginx в минимальном виде выглядит так: | ||
+ | worker_processes 1; | ||
+ | |||
+ | events { | ||
+ | worker_connections 1024; | ||
+ | } | ||
+ | |||
+ | http { | ||
+ | include mime.types; | ||
+ | default_type application/octet-stream; | ||
+ | sendfile on; | ||
+ | keepalive_timeout 65; | ||
+ | |||
+ | include vhosts/*; | ||
+ | } | ||
+ | |||
+ | Для хоста по умолчанию файл конфигурации <code>/usr/local/nginx/conf/vhosts/default</code> имеет следующее содержимое: | ||
+ | server { | ||
+ | listen 80; | ||
+ | server_name _; | ||
+ | |||
+ | root /usr/local/nginx/www/default; | ||
+ | index index.html; # если сайт на PHP - заменить на index.php | ||
+ | |||
+ | # замена mod_rewrite (как у apache) | ||
+ | location / { | ||
+ | if (!-e $request_filename ) { | ||
+ | rewrite ^(.*)$ /index.php?q=$1; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | location ~ \.php$ { | ||
+ | fastcgi_pass unix:/var/run/php-fcgi.sock; | ||
+ | fastcgi_index index.php; | ||
+ | fastcgi_param SCRIPT_FILENAME /usr/local/nginx/www/default/$fastcgi_script_name; | ||
+ | include fastcgi_params; | ||
+ | } | ||
+ | } |
Версия 10:33, 31 января 2011
Содержание |
Установка spawn-fcgi
spawn-fcgi можно взять с его официальной странички: http://redmine.lighttpd.net/projects/spawn-fcgi
Скачиваем spawn-fcgi
wget http://www.lighttpd.net/download/spawn-fcgi-1.6.3.tar.gz
Распаковываем spawn-fcgi
tar xvfz spawn-fcgi-1.6.3.tar.gz
Устанавливаем spawn-fcgi
Заходим в каталог с распакованым spawn-fcgi и выполняем команды:
./configure --prefix=/usr make su make install
Установка nginx
nginx можно взять с официального сайта: http://sysoev.ru/nginx/
Скачиваем nginx
wget http://sysoev.ru/nginx/nginx-0.8.54.tar.gz
Распаковываем nginx
tar xvfz nginx-0.8.54.tar.gz
Устанавливаем nginx
Заходим в каталог с распакованым nginx и выполняем команды:
./configure make su make install
После инсталляции каталоги nginx будут находиться по пути: /usr/local/nginx
Подробнее про инсталляцию nginx написано здесь: http://sysoev.ru/nginx/docs/install.html
Настройка nginx + spawn-fcgi
Скрипт запуска/останова nginx и spawn-fcgi в Gentoo Linux
Скрипт следует разместить по следующему пути: /etc/init.d/nginx
и обязательно дать ему права на выполнение:
chmod +x /etc/init.d/nginx
Содержимое скрипта следующее:
#!/sbin/runscript start(){ # run fastcgi server exec 2>&1 PHP_FCGI_CHILDREN=5 \ PHP_FCGI_MAX_REQUESTS=1000 \ exec /usr/bin/spawn-fcgi -n -s /var/run/php-fcgi.sock -n -u nobody -U nobody -- /usr/bin/php-cgi & # run nginx cd /usr/local/nginx/sbin ./nginx & } stop(){ kill -QUIT `cat /usr/local/nginx/logs/nginx.pid` killall -9 php-cgi }
Настройка виртуальных хостов в nginx
Допустим у нас будет два домена:
- по умолчанию (default)
- mysite.ru
Для этого создадим следующие файлы и каталоги:
mkdir /usr/local/nginx/www mkdir /usr/local/nginx/www/default mkdir /usr/local/nginx/www/mysite.ru chown -R nobody:nogroup /usr/local/nginx/www/* mkdir /usr/local/nginx/conf/vhosts touch /usr/local/nginx/conf/vhosts/default touch /usr/local/nginx/conf/vhosts/mysite.ru
Основной файл конфигурации nginx в минимальном виде выглядит так:
worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65;
include vhosts/*; }
Для хоста по умолчанию файл конфигурации /usr/local/nginx/conf/vhosts/default
имеет следующее содержимое:
server { listen 80; server_name _;
root /usr/local/nginx/www/default; index index.html; # если сайт на PHP - заменить на index.php
# замена mod_rewrite (как у apache) location / { if (!-e $request_filename ) { rewrite ^(.*)$ /index.php?q=$1; } }
location ~ \.php$ { fastcgi_pass unix:/var/run/php-fcgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/local/nginx/www/default/$fastcgi_script_name; include fastcgi_params; } }