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)(/.+)$;
}