Назад | Перейти на главную страницу

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

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

Характеристики сервера: ubuntu 14.04, nginx, php7.0-fpm

У меня такая структура:

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

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

И следующий конфиг nginx:

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

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

В вашем блоке расположения 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)(/.+)$;
}