Debian 8 上的 nginx 1.6 别名 + php5-fpm = 404

Posted

技术标签:

【中文标题】Debian 8 上的 nginx 1.6 别名 + php5-fpm = 404【英文标题】:nginx 1.6 alias + php5-fpm = 404 on Debian 8 【发布时间】:2015-09-14 03:04:31 【问题描述】:

我对 Debian 8 jessie(1.6 版)和 php5-fpm 附带的 nginx 有疑问。这是我在 Debian 7 wheezy 附带的 nginx 1.2 上的工作配置示例,但是,它不适用于 1.6。

server 
    listen 80;
    server_name localhost;

    location / 
        try_files $uri $uri/ /error.html;
        include php.fast.conf;
    

    location /phpmyadmin 
        alias /usr/share/phpmyadmin;
        include php.fast.conf;
    

这是我的 php.fast.conf

location ~ \.php$ 
    fastcgi_split_path_info ^(.+?\.php)(/.*)?$;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;

Debian 8 发生了很大的变化,我修改了 stock 配置以运行 PHP,如果 phpinfo 位于 /var/www/html 中,则显示 phpinfo 的 php 脚本可以正常工作。

server 
    listen 80;
    root /var/www/html;
    index index.html index.htm index.php index.nginx-debian.html;
    server_name localhost;

    location / 
        try_files $uri $uri/ =404;
    

    location ~ \.php$ 
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
    

    location /phpmyadmin 
        alias /usr/share/phpmyadmin;
        location ~ \.php$ 
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
        
    

但是http://localhost/phpmyadmin 不起作用(404),尝试了很多选项只得到 404/空白页/输入文件未指定。我认为这是一个fastcgi_param问题,但不知道如何解决。

另外,一个工作配置在升级后将无法工作,对所有这些进行更改的原因是什么?

【问题讨论】:

【参考方案1】:

我工作过代码

    location /phpmyadmin 
            root /usr/share/;
            index index.php index.html index.htm;

            location ~ ^/phpmyadmin/(.+\.php)$ 
                    include snippets/fastcgi-php.conf;
                    root /usr/share/;
                    fastcgi_pass unix:/var/run/php5-fpm.sock;
                    fastcgi_intercept_errors on;
            

            location ~* ^/phpmyadmin/(.+\.(jpeg|jpg|png|css|gif|ico|js|html|xml|txt))$ 
                    root /usr/share/;
            
    

    location /phpMyAdmin 
            rewrite ^/* /phpmyadmin last;
    

【讨论】:

以上是关于Debian 8 上的 nginx 1.6 别名 + php5-fpm = 404的主要内容,如果未能解决你的问题,请参考以下文章

Installing Nginx with PHP (as PHP-FPM) and MariaDB (LEMP) on Debian 8

1.6 在WHERE子句中引用取别名的列

我的Debian别名

历史上的今天8 月 16 日:Debian 诞生;小米手机及 MIUI 系统发布!

历史上的今天8 月 16 日:Debian 诞生;小米手机及 MIUI 系统发布!

历史上的今天8 月 16 日:Debian 诞生;小米手机及 MIUI 系统发布!