带有 php-fpm 别名的 Nginx 配置不起作用

带有 php-fpm 别名的 Nginx 配置不起作用

我无法让 kohana 应用程序运行。

服务器规格:ubuntu 14.04,nginx,php7.0-fpm

我有以下结构:

构建:(静态网站),服务器:(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 中没有日志

我可能错过了什么,为什么我没有收到任何错误?

答案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/,您需要使用这个 PHPlocation块:

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

相关内容