我在我的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;
}
发现了很多与此问题相关的问题,但没有解决我的问题
答案 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/;
}