[Решено]nginx и .php

Автор redVi, 28 сентября 2012, 14:00:53

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

redVi

Не удаётся настроить обработку .php-файлов в nginx. Html обрабатывает коррректно, а на файлы с расширением .php реагирует так: "An error occurred". Апача нет, стоит один nginx.
Думается мне, что указано неверное расположение скриптов в  fastcgi_param, помогите разобраться.
Конфиг nginx.conf:

server {
36         listen       80;
37         server_name  localhost;
38         root    /var/www;


location / {
44             #root   /usr/share/nginx/html;
45             root    /var/www;
46             index index.php index.html index.htm;
47                     }


location ~ \.php$ {
67             root           /var/www;
68             fastcgi_pass   127.0.0.1:9000;
69             fastcgi_index  index.php;
70             fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
71             include        fastcgi_params;
72         }


Установлены nginx, php и php-fpm.
Debian Sid, Openbox || Gentoo, Openbox

corner

#1
Проверьте, как настроен php-fpm на отдачу - через сокет или по tcp. По умолчанию отдача идет через сокет.
Пример:location ~ .php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;fastcgi_param QUERY_STRING $query_string;
#fastcgi_param REQUEST_METHOD $request_method;
#fastcgi_param CONTENT_TYPE $content_type;
#fastcgi_param CONTENT_LENGTH $content_length;
}

redVi

#2
Спасибо за подсказку. Через сокет .php теперь обрабатывает, но код .php, заключённый в html-документ - нет. Например:
Код:
1 <?php
2 phpinfo
();
3 ?>

Обрабатывает верно.
А вот так:
1 <html>
2 <head>
3 <title>PHP</title>
4 </head>
5
6 <body>
7 My test page
8 <?php
9   phpinfo
();
10 ?>

11 </p>
12 </body>
13 </html>

Отображает лишь html, .php не видит. Если не трудно, то подскажите, пожалуйста, на что ещё обратить внимание, чтобы всё отрабатывалось корректно.

Сообщение объединено: 29 сентября 2012, 08:11:12

Ответ на вопрос, в принципе, найден. Это вина php-fpm, nginx не при чём: bugs

Сообщение объединено: 29 сентября 2012, 08:15:19

А дабы всё работало, как того требует ситуация нужно добавить в php-fpm.conf строку:
security.limit_extensions = .php .html
Решено.
Debian Sid, Openbox || Gentoo, Openbox

corner

Совет дня - если уж пишите сайт на php, забудьте про расширение html.