Ubuntu 14-Nginx-PHP5 fpm:已安装phpmyadmin,但403禁止访问

Ubuntu 14-Nginx-PHP5 fpm:已安装phpmyadmin,但403禁止访问,nginx,phpmyadmin,ubuntu-14.04,Nginx,Phpmyadmin,Ubuntu 14.04,Nginx和PHP5-FPM已安装并运行良好 #我可以访问和 我安装了phpmyadmin并创建了指向phpmyadmin文件的符号链接 lrwxrwxrwx 1 root root 21 Nov 1 08:37 phpmyadmin -> /usr/share/phpmyadmin 但是试图得到=>我得到了一个403 使用符号链接,我不必将任何与phpmyadmin相关的内容添加到我的nginx.conf中。。。可能遗漏了什么 更新1:将index.php添加到uri会带来登录

Nginx和PHP5-FPM已安装并运行良好

#我可以访问和

我安装了phpmyadmin并创建了指向phpmyadmin文件的符号链接

 lrwxrwxrwx 1 root root   21 Nov  1 08:37 phpmyadmin -> /usr/share/phpmyadmin
但是试图得到=>我得到了一个403

使用符号链接,我不必将任何与phpmyadmin相关的内容添加到我的nginx.conf中。。。可能遗漏了什么

更新1:将index.php添加到uri会带来登录面板

 http://www.example.com/phpmyadmin/index.php
我应该添加什么到我的默认con文件以直接获取它。。。我猜我的try文件无效。。 这是我的默认nginx站点con文件

    server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;

        root /var/www/html;
        index index.php, index.html index.htm;

        server_name example.com;

        location / {
            try_files $uri $uri/ index.html index.php  =404;
        }

        error_page 404 /404.html;
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
            root /var/www/html;
        }

        location ~ \.php$ {
            try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        }
    }

以下是一些你可以尝试的东西。一个是指令:

location /phpmyadmin {
    disable_symlinks off;
}
另一种选择是使用别名而不是符号链接:

location /phpmyadmin {
    alias /usr/share/phpmyadmin;
}

添加以下位置后运行正常:

     location /phpmyadmin {
       index index.php;
    }
我补充说:

location /pma/ {
    alias /usr/share/phpmyadmin/;

    index index.html index.htm index.php;

    location ~ ^/pma(.+\.php)$ {
        alias /usr/share/phpmyadmin$1;
        fastcgi_pass unix:/var/run/php5-fpm.sock; #OR fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME /usr/share/phpmyadmin$1;
        include fastcgi_params;
        fastcgi_intercept_errors        on;
    }
}
因此,当用户访问目录
/pma/
时,他们会被引导到
/usr/share/phpmyadmin
,这也是一个稍微“安全”的选项!像以前一样,我也有403错误

但是
403
错误的主要修复程序实际上实现了以下行:

index index.html index.htm index.php;

去掉逗号,你就没事了


这就是我对这个问题的解决方案:

步骤1:您应该使用SSH并运行命令

sudo nano /etc/nginx/sites-available/default
步骤2:查找块代码

server {
  ....
}
然后在服务器块的“}”之前插入

    location /phpmyadmin {
            index index.php;
    }
看起来像这样

server{
       ...(your default)...
       location /phpmyadmin {
                index index.php;
       }
}

希望这是你的

到nginx.conf文件或默认值(../sites available/default)


谢谢你的提示,我试过了,bt总是在日志中出现同样的错误:“/var/www/html/phpmyadmin/”的目录索引被禁止,…你的服务器块中有
索引index.php
吗?如果我请求,那么我会得到登录面板。。。我有root/var/www/html;index.php,index.html index.htm;在我的服务器块中…您是否正在使用
try_文件
?您可以尝试将index.php附加到它。我有一个try_文件,但是在/location上。。。我没有关于/phpmyadmin位置的任何信息。。。只是一个符号链接,我是否需要在我的nginx con文件中添加任何内容?感谢您将“位置/pma/”改为“位置/pma”,因此无需“/”。在浏览器中键入url时,它只会让您感到困惑。。。谢谢..这对我有效,但只有在清除浏览器缓存之后
    location /phpmyadmin {
            index index.php;
    }
server{
       ...(your default)...
       location /phpmyadmin {
                index index.php;
       }
}
location /phpmyadmin {
       root /usr/share/;
       index index.php index.html index.htm;
       location ~ ^/phpmyadmin/(.+\.php)$ {
               try_files $uri =404;
               root /usr/share/;
               fastcgi_pass unix:/run/php/php7.0-fpm.sock;
               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/;
       }
}