nginx中的phpmyadmin 404错误
我已经通过ppa在我的Ubuntu机器上安装了phpmyadmin,但是当尝试访问localhost/phpmyadmin时,我得到了404错误 服务器是nginxnginx中的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
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服务器错误日志中有提示吗?