Я не очень люблю PHP, к тому же есть миллион статей как прикрутить phpfpm к lighttpd. Но так уж получилось, что волею судеб мне пришлось настраивать сервер со старым пиэйчпи сайтом. Просмотрел кучу блогов, рекомендаций, статей, и в итоге у меня получился более ли менее рабочий вариант.
Подготовка php-fpm
На всякий случай опишу процесс настройки php-fpm.
Установка php-fpm:
$ sudo apt-get install php5-fpm -y
Раскомментировать #cgi.fix_pathinfo=1:
$ sudo nano /etc/php5/fpm/php.ini
cgi.fix_pathinfo=1
Старые настройки nginx
phpfpm общается с lighttpd через unix сокет /var/run/php5-fpm.sock, файл который должен быть открыт на запись и на чтение одновременно. Необходимо проверить чтобы были права для пользователей, под которыми работают frontend и backend
server {
listen 80;
server_name www.somedomain.com;
access_log /web/<project_name>/logs/access.log;
error_log /web/<project_name>/logs/error.log info;
root /web/<project_name>/project;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/local/www/nginx-dist;
}
}
Настройки lighttpd
server.modules += ("mod_fastcgi", "mod_accesslog")
$SERVER["socket"] == ":80" {
$HTTP["host"] == "www.somedomain.com" {
accesslog.filename = "/web/<project_name>/logs/access.log"
url.redirect = (
"/index.(htm|html|php)$" => "/"
)
url.redirect-code = 301
server.document-root = "/web/<project_name>/project/"
index-file.names += ( "index.php" )
fastcgi.server = (".php" =>
((
"socket" => "/var/run/php5-fpm.sock",
"bin-copy-environment" => ( "HOSTNAME", "PATH", "TMP", "TMPDIR", "TEMP", "OSTYPE", "MACHTYPE", "MALLOC_CHECK_" ),
"broken-scriptfilename" => "enable",
"fix-root-scriptname" => "enable"
))
)
alias.url = (
"/static/" => "/web/<project_name>/project/static/",
"/favicon.ico" => "/web/<project_name>/project/favicon.ico"
)
}
}
Надейюсь данная заметка окажется полезной.
comments powered by Disqus