Nginx conf с псевдонимом php-fpm не работает

Я не могу заставить приложение Kohana работать.

Спецификации сервера: Ubuntu 14.04, nginx, php7.0-fpm

У меня есть следующая структура:

build: (статический сайт), сервер: (приложение php-kohana)

|-- build
|   |-- fonts
|   |-- images
|   |-- index.html
|   |-- scripts
|   `-- styles
|-- server
|   `-- cms
|       |-- application
|       |-- database
|       |-- index.php
|       |-- install.php.bkp
|       |-- media
|       |-- modules
|       |-- system
|       `-- vendor

И следующий nginx conf:

server {
listen 80 default_server;
listen [::]:80 default_server;

index index.php index.html index.htm index.nginx-debian.html;

root /srv/www/build/;
location = /{
}
location /server/cms/{
    alias /srv/www/server/cms/;
    try_files $uri $uri/ =404;

}

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    #try_files $uri =404;
}

location ~ /\.ht {
    deny all;
}

}

Когда я захожу / вижу статический сайт,

но когда я захожу в /server/cms/, я не вижу никаких ошибок, только пустая страница, никаких журналов в /var/log/nginx/error.log

Чего мне не хватает, почему я не получаю ошибок?

1 ответ

Решение

В вашем блоке местоположения PHP не указан каталог. Таким образом, это означает, что при переходе по http://www.example.com/index.php, nginx попытается выполнить поиск. /srv/www/build/index.php, которого не существует.

Я не знаю, как разрабатывается приложение Kohana и как оно должно быть развернуто. Если вы хотите показать /srv/www/server/cms/index.php когда пользователь заходит на http://www.example.com/, вам нужно использовать этот PHP location блок:

location ~ \.php$ {
    alias /srv/www/server/cms/;
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
}
Другие вопросы по тегам