在nginx中phpmyadmin 404错误

时间:2017-06-10 06:45:00

标签: php mysql nginx phpmyadmin

我在我的Ubuntu机器上通过ppa安装了phpmyadmin,但是当我尝试访问localhost / phpmyadmin时出现404错误

服务器是nginx

location /phpmyadmin{
            index index.php;
            root /usr/share/phpmyadmin/;
          }   
     location ~ \.php$ {
    include snippets/fastcgi-php.conf;

     fastcgi_pass unix:/run/php/php7.0-fpm.sock;
         #fastcgi_index index.php;
         include fastcgi_params;
}

发现了很多与此问题相关的问题,但没有解决我的问题

2 个答案:

答案 0 :(得分:1)

当您的/usr/share/nginx/www指令指向另一个目录时,该指南中创建的符号链接指向root。除非您指定另一个位置块,否则NGINX在技术上不知道该目录存在,并且不知道将传入请求路由到何处。

首先,通过运行:

删除刚刚创建的符号链接
rm -rf /usr/share/nginx/www

这不会删除phpMyAdmin,它只会删除符号链接。现在我们将使用:

创建一个新的
sudo ln -s /usr/share/phpmyadmin/ /var/www/html/phpmyadmin

由于您已将root设置为/var/www/html,因此这是您的服务器块使用的“主目录”或root路径。以上命令的作用是创建一个符号链接,从phpMyAdmin文件到根目录。

一旦新的符号链接出现,您应该能够通过运行:

来确认
ls -al /var/www/html

这应该会产生类似的东西:

lrwxrwxrwx 1 root root   22 Apr  4 14:31 phpmyadmin -> /usr/share/phpmyadmin/

这意味着符号链接有效,现在应该可以访问:

http://IP_ADDR/phpmyadmin

IP_ADDR是您的IP地址。

答案 1 :(得分:0)

您的root配置不正确。

root在添加位置之前设置路径。

<root> + <location>

location /phpmyadmin{
        index index.php;
        root /usr/share/phpmyadmin/;
      }

这会导致/usr/share/phpmyadmin/phpmyadmin/

你想要的是:

location /phpmyadmin{
        index index.php;
        root /usr/share/;
      }