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;
}
}
#############################################
Ну вот и все. Теперь можно потихоньку пилить сайтик для дружественной конторы.
Надеюсь описанное выше кому нибудь да поможет.
Ну а если кому-то надо что-то настроить, а не получается - на главной странице есть мои контакты. Обращайтесь.