Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
nginx中的phpmyadmin 404错误_Php_Mysql_Nginx_Phpmyadmin - Fatal编程技术网

nginx中的phpmyadmin 404错误

nginx中的phpmyadmin 404错误,php,mysql,nginx,phpmyadmin,Php,Mysql,Nginx,Phpmyadmin,我已经通过ppa在我的Ubuntu机器上安装了phpmyadmin,但是当尝试访问localhost/phpmyadmin时,我得到了404错误 服务器是nginx location /phpmyadmin{ index index.php; root /usr/share/phpmyadmin/; } location ~ \.php$ { include snippets/fastcgi-php.co

我已经通过ppa在我的Ubuntu机器上安装了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;
}

找到了许多与此问题相关的问题,但没有解决我的问题

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

首先,删除您刚才通过运行以下命令创建的符号链接:

rm -rf /usr/share/nginx/www
ls -al /var/www/html
这不会删除phpMyAdmin,只会删除符号链接。现在,我们将使用以下方法创建一个新的:

sudo ln -s /usr/share/phpmyadmin/ /var/www/html/phpmyadmin
由于您已将
root
设置为
/var/www/html
,因此这是服务器块使用的“主”目录或
root
路径。上面的命令所做的是创建一个从phpMyAdmin文件所在位置到根目录的符号链接

新符号链接出现后,您应该能够通过运行以下命令来确认:

rm -rf /usr/share/nginx/www
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地址。

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

首先,删除您刚才通过运行以下命令创建的符号链接:

rm -rf /usr/share/nginx/www
ls -al /var/www/html
这不会删除phpMyAdmin,只会删除符号链接。现在,我们将使用以下方法创建一个新的:

sudo ln -s /usr/share/phpmyadmin/ /var/www/html/phpmyadmin
由于您已将
root
设置为
/var/www/html
,因此这是服务器块使用的“主”目录或
root
路径。上面的命令所做的是创建一个从phpMyAdmin文件所在位置到根目录的符号链接

新符号链接出现后,您应该能够通过运行以下命令来确认:

rm -rf /usr/share/nginx/www
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地址。

您的
根目录未正确配置

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

<root> + <location>

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

您的
根目录
配置不正确

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

<root> + <location>

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

配置文件中的
root
指令不需要符号链接就可以处理这个问题吗?我再也看不到该指南了,但我想不出有必要这样做的场景@savaliya对于此类任务,有
别名
指令。使用此链接可帮助您:-()@savaliya此链接指向apache2而非nginx的解决方案。在目标页面上,他之所以使用链接是因为apache2实例找不到他的配置文件,也找不到文档根。我在/var/www/html中使用了sudo-ln-s/usr/share/phpmyadmin/phpmyadmin,而ls-la | grep“\->”是检查文件夹中符号链接的一种方法(Ubuntu 17.04服务器nginx 1.10.3)配置文件中的
root
指令不需要符号链接就可以处理这个问题吗?我再也看不到该指南了,但我想不出有必要这样做的场景@savaliya对于此类任务,有
别名
指令。使用此链接可帮助您:-()@savaliya此链接指向apache2而非nginx的解决方案。在目标页面上,他之所以使用链接是因为apache2实例找不到他的配置文件,也找不到文档根。我在/var/www/html中使用了sudo-ln-s/usr/share/phpmyadmin/phpmyadmin,而ls-la | grep“\->”是检查文件夹中符号链接的一种方法(Ubuntu 17.04服务器nginx 1.10.3)Web服务器错误日志中有提示吗?Web服务器错误日志中有提示吗?