404 /phpmyadmin 与 Nginx 和 Debian 8 杰西

Posted

技术标签:

【中文标题】404 /phpmyadmin 与 Nginx 和 Debian 8 杰西【英文标题】:404 /phpmyadmin with Nginx and Debian 8 jessie 【发布时间】:2018-10-03 16:20:19 【问题描述】:

我找到了很多答案,但没有一个能解决我的问题:

我尝试访问 /phpmyadmin,但我使用 nginx 1.6.2、PHP7.0 和 Debian 8 (Jessie) 登陆 404。

这是我的 /etc/nginx/site-available/guillaume-rz.fr:

server                                                                                  
    listen 80;                                                                       
    root /home/guillaume-rz/www;                                                     
    server_name www.guillaume-rz.fr;                                                 
    location /                                                                      
            index index.php;                                                         
                                                                                    

    location /phpmyadmin                                                            
            root /usr/share/phpmyadmin;                                              
            index index.php index.html index.htm;                                    
            location ~ ^/phpmyadmin/(.+\.php)$                                      
                    try_files $uri =404;                                             
                    root /usr/share/;                                                
                    fastcgi_pass unix:/var/run/php7.0-fpm.sock; # or 127.0.0.1:9000  
                    fastcgi_index index.php;                                         
                    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                    include /etc/nginx/fastcgi_params;                               
                                                                                    

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

    location /phpMyAdmin                                                            
             rewrite ^/* /phpmyadmin last;                                           
                                                                                    

    location ~ \.php$                                                               
            include snippets/fastcgi-php.conf;                                       
            fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;                          
            # include /etc/nginx/fastcgi_params;                                     
            # fastcgi_index index.php;                                               
                                                                                    
       

我安装了 PhpMyAdmin,它可以在这里找到:/var/www/phpmyadmin/

我创建了一个符号链接:ln -s /usr/share/phpmyadmin/ /var/www/phpmyadmin

【问题讨论】:

你能分享任何来自 ngnix 的日志吗?我不确定,但我认为您没有指向正确的根...尝试将 root /usr/share/phpmyadmin; 更改为 root /var/www/phpmyadmin/; 不,它不适用于root /var/www/phpmyadmin/;我检查了 /var/log/nginx/access.log 中的日志,但对此一无所知。 error.log 也一样。 【参考方案1】:

目前,您的 PHP 脚本正在由最后一个 location 块处理,即使它们以 /phpmyadmin/ 开头。正则表达式location 块优先于前缀location 块在同一级别。详情请见this document。

使用^~修饰符改变优先顺序,例如:

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

    location ~ \.php$                                      
        try_files $uri =404;                                             
        fastcgi_pass unix:/var/run/php7.0-fpm.sock; # or 127.0.0.1:9000  

        include /etc/nginx/fastcgi_params;                               
        fastcgi_param SCRIPT_FILENAME $request_filename;
                                                                                
                                                                                

【讨论】:

以上是关于404 /phpmyadmin 与 Nginx 和 Debian 8 杰西的主要内容,如果未能解决你的问题,请参考以下文章

phpMyAdmin 显示 404 未找到(Ubuntu 18.04 Nginx)

SSL 的 phpMyAdmin 页面 404 Not Found [Nginx + Centos7.5]

Digital Ocean 主机上的 phpMyAdmin 404 错误

NGINX 在创建符号链接后给出 404 错误

phpmyadmin 错误 404.0 与 xampp

NGINX 缓存 phpmyadmin – 图片未加载