PHP-FPM не видит index.php
October 19, 2011 06:06AM
Всем привет! Проблема такая: Есть 2 сервера:

192.168.2.10 10.0.0.10

На первом в качестве фронт-енда висит nginx:80, а на втором сервере, бэк-ендом висят nginx:80 (для отдачи статики) и php-fpm:9000 (для отдачи динамики)

Nginx фронт-енд настроен следующим образом (/etc/nginx/sites-available/default):
================================================================
server {
listen 80;

server_name site.ru;

access_log /var/log/nginx/site.ru;

location ~ \.php$ {
fastcgi_pass 10.0.0.10:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
include fastcgi_params;
}

location / {
proxy_pass http://10.0.0.10;
index index.html index.htm;
}
}
================================================================

Проблема в том, что php-fpm не воспринимает index.php, то есть, приходится вручную прописыват путь. К примеру, при входе на http://site.ru/ получаем ошибку от nginx (403 Forbidden), а при заходе на http://site.ru/index.php все ОК.
Re: PHP-FPM не видит index.php
October 20, 2011 07:21AM
У вас же написано:

location / {
proxy_pass http://10.0.0.10;
index index.html index.htm;
}

Вот фронтенд и ищет index.html или index.htm на бэкенде. А вам надо index.php.

Конфигурацию для php лучше писать на бэкенде, так как можно тогда подключиться к php-fpm через сокет, на фронтенде оставьте вот такой конфиг:

server {
listen 80;

server_name site.ru;

access_log /var/log/nginx/site.ru;

location / {
proxy_pass http://10.0.0.10;
index index.php;
}
}

А для бэкэнда пишите так:

server {
set_real_ip_from 192.168.2.10;
real_ip_header X-Real-IP;
listen 80;
location / {
index index.php;
location ~ \.php$ {
fastcgi_pass 10.0.0.10:9000;
# перенастройте php-fpm на использование сокета и тогда пишите так:
# fastcgi_pass unix:/var/run/php-fpm.socket;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
include fastcgi_params;
}
}
}
Re: PHP-FPM не видит index.php
October 20, 2011 11:39AM
Спасибо, но не работает ((( Я уже запарился эту проблему решать!

Вот привожу ВСЕ конфигурационные файлы, подскажите пожалуйста, где ошибка ...

Front-End nginx config (/etc/nginx/nginx.conf):
http://pastebin.com/cfiuVACL

Front-End nginx default-site config (/etc/nginx/sites-available/default):
http://pastebin.com/xiAGt86Y

Back-End nginx config (/etc/nginx/nginx.conf):
http://pastebin.com/WMhaTcCy

Back-End nginx default-site config (/etc/nginx/sites-available/default)
http://pastebin.com/Y5mqjqgh

Back-End php-fpm config (/etc/php5/fpm/pool.d/www.conf): === тут я вообще ничего не менял ===
http://pastebin.com/jppSnnCS

p.s. конечно же вместо site.ru я подставляю свой хост и при каждом редактировании конфигов, отправляю в ребут соответствующие сервисы
Re: PHP-FPM не видит index.php
October 21, 2011 09:36AM
А что именно не работает? Опять выскакивает 403-я ошибка?
Что пишется в /var/log/nginx/error.log по этому поводу?
Re: PHP-FPM не видит index.php
January 21, 2012 02:36AM
надо написать

location / { # вот тут вместо .php надо поставить /, т.к. когда мы открываем директорию, то она не подходит под фильтр .php
fastcgi_pass 10.0.0.10:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
include fastcgi_params;
}
Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 148
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 500 on July 15, 2024
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready