Welcome! Log In Create A New Profile

Advanced

500 error nginx + php5-fpm + kohana

Posted by dima_tr 
500 error nginx + php5-fpm + kohana
April 05, 2012 04:35PM
Всем привет. Есть очень интересная проблема, из-за которой нужно мне глубоко разобраться в nginx и php.

Есть у меня два сервера. На обоих установлена Убунту 11.10, но с разными репозиториями (укр. и гер).

Установил nginx+php5-fpm. В большинстве случаев работает.

Есть такие cms, фреймворки, которые все запросы адресуют на index.php.

В некоторых вариантах вставляю rewrite ^/(.*)$ /index.php/$1 last или try_files $uri $uri/ /index.php;

Но с Коханой у меня на одном из серверов проблема. Работает только "/", в остальный случаях 500 Internal error.

Сравнивая $_SERVER на серверах, чувствую что проблема кроется в PHP_SELF.

Если на работающем сервере PHP_SELF = /index.php/welcome/index, то на не работающем только = /index.php

Присвоение правильного пути в PHP_SELF в index.php не помогает.

Остальные переменные - одинаковые.

Где-то в интернете нашел предположение, что php скомпилирован по разному, в связи с чем и проблемы возможные.

Кто что может подсказать?
PHP_SELF, насколько я разобрался, генерирует исключительно сам PHP.
Re: 500 error nginx + php5-fpm + kohana
April 05, 2012 06:26PM
Попробуйте следующее:

nginx.conf:

http {
...

map $uri $script_url {
~^(?<script_filename>.+\.php)(?<path_info>.+)$ $path_info;
~^(?<script_filename>.+\.php)$ $script_filename;
}

...
}

fastcgi_params:

#fastcgi_param SCRIPT_NAME $fastcgi_script_name;

fastcgi_php.conf:

include fastcgi_params;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;

fastcgi_param SCRIPT_URL $script_url;
fastcgi_param SCRIPT_URI $scheme://$http_host$script_url;

# fastcgi_param SCRIPT_FILENAME $document_root$script_filename;
# fastcgi_param PATH_INFO $path_info;
# fastcgi_param PATH_TRANSLATED $document_root$path_info;
# fastcgi_param SCRIPT_NAME $script_url;

try_files $fastcgi_script_name =404;



В виртуальных хостах или локейшнах, где используется php, подгружайте fastcgi_php.conf (вместо fastcgi_params), пример:


location / {
index index.php index.html;
try_files $uri $uri/ /index.php$request_uri;
}

include fastcgi_php.conf;

location ~ ^.+\.php {
fastcgi_pass ....;
}

Андрей
Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 202
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready