nginx, passenger, php и как это все настраивать

Дело было так: Запилил мне один товарищ проект по моему заказу на Ruby on rails. Надо было на сервере моем развернуть. Лично я предпочитаю линуксы RPM-ветки, хотя если надо, то и DEB могу... Так вот разработчик сказал, что Ubuntu 12.04 LTS - это такое наше все, которое не падает, работает быстро и вообще за много лет ни разу не подвело. Короче надо было подготовить сервак к деплою. Взял я у разраба список необходимого + мануал как это все ставить. Публиковать тот ман пока не буду ибо сыроват он. Были правки... Как бы то ни было у меня получилась такая штука: Ubuntu, на ней RVM, Ruby 2.0.X Passenger, Nginx, MySQL.

Ну нормальный такой наборчик. Вроде ничего особенного. НО! Если надо развернуть еще и PHP-проект, то явно чего-то не хватает...

Не хватает php5-fpm! Ну и конечно настроек. В принципе процесс установки и настройки хорошо описан тут, но мне пришлось кое-что сделать по своему...

Поехали:

1. apt-get install php5-cli php5-common php5-mysql php5-suhosin php5-gd /

php5-fpm php5-cgi php5-fpm php-pear php5-mcrypt

2.service nginx stop

3.service php-frm stop

4. Редактируем /etc/php5/fpm/php.ini

В нем надо найти строчку ";cgi.fix_pathinfo = 1", раскоментировать ее и заменить 1 на 0.

5. Редактируем /etc/php5/fpm/pool.d/www.conf

Тут надо найти строчку "security.limit_extensions" и сделать так: "security.limit_extensions = .php .php3 .php4 .php5"

6. Вот тут как раз автор мана предлагает изменить строчку "listen=127.0.0.1:9000" на "listen = /var/run/php5-fpm.sock", НО! Почему-то у меня так не работает. Я оставил первоначальный вариант обращения по локальному IP, а не к сокету.

Все. С настройкой php-frm закончили. Делаем service php-frm start и идем настраивать nginx.

Вернее сказать настраиваем виртуальный хост. В моем случае виртуальные хосты описаны в /opt/nginx/config/nginx.conf

Вот работающий пример виртуального хоста:

#############################################

server {

server_name gidro.erofeevonline.ru;

root /var/www/gidro/html;

error_page 404 /404.html;

try_files $uri $uri/ /index.php?q=$request_uri;

index index.php index.htm index.html;

# serve static files directly

location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|html)$ {

access_log off;

expires 30d;

}

location 404.html{

index /404.html;

}

location ~* \.php$ {

# By all means use a different server for the fcgi processes if you need to

fastcgi_pass 127.0.0.1:9000;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_param QUERY_STRING $query_string;

fastcgi_param REQUEST_METHOD $request_method;

fastcgi_param CONTENT_TYPE $content_type;

fastcgi_param CONTENT_LENGTH $content_length;

}

location ~ /\.ht {

deny all;

}

}

#############################################

Ну вот и все. Теперь можно потихоньку пилить сайтик для дружественной конторы.

Надеюсь описанное выше кому нибудь да поможет.

Ну а если кому-то надо что-то настроить, а не получается - на главной странице есть мои контакты. Обращайтесь.