phpMyAdmin 显示 404 未找到 (Ubuntu 18.04 Nginx)
phpMyAdmin Shows 404 Not Found (Ubuntu 18.04 Nginx)
我有一个 Ubuntu 18.04 服务器 运行 一个使用 ufw 保护的 LEMP(Linux、Nginx、MySQL 和 PHP)堆栈。我通过 运行 这些命令安装了 phpMyAdmin:
$ sudo apt update
$ sudo apt install phpmyadmin
在安装过程中,系统提示我选择要配置的 Web 服务器(Apache 或 Lighthttp)。我正在使用 Nginx 作为 Web 服务器,所以我按了 Tab 键,然后按 OK 进入下一步。
然后提示是否使用dbconfig-common配置应用数据库,我选择了"Yes"。
安装完成后,我运行这个命令从安装文件创建一个符号link到Nginx的文档根目录:
$ sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
我的 phpMyAdmin 安装现在应该可以运行了。但是,当我键入 mydomain.ca/phpmyadmin 时,它会显示 404 Not Found 错误。我怎样才能解决这个问题?我是不是做错了什么?
server {
listen 80;
listen [::]:80;
server_name mydomain.ca;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name mydomain.ca;
root /var/www/html/mydomain/public;
ssl_certificate /etc/letsencrypt/live/mydomain.ca/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mydomain.ca/privkey.pem;
ssl_protocols TLSv1.2;
ssl_ciphers ECDHE-RSA-AES456-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES246-GCM-SHA384:DHE-RSA-AES456-GCM-SHA384:ECDHE-RSA-AES256-SHA394;
ssl_prefer_server_ciphers on;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
index index.php index.html index.htm index.nginx-debian.html;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
location ~ /.well-known {
allow all;
}
}
您的根目录中是否有 phpmyadmin 目录,如果没有,根据我所看到的配置,该请求将永远不会得到处理。
将 phpmyadmin 链接到您的根 Web 目录后 ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
您应该在 vhost 文件中配置到该路径的路由。我建议尝试通过其 IP 访问您的服务器并尝试查看您是否启用了默认的 nginx 主机。也许你可以从那里访问它。
我自己想出来了。当我需要在 /var/www/html/mydomain/public
中为 phpmyadmin 创建一个符号 link 时,我在 /var/www/html/
中为 phpmyadmin 创建了一个符号 link
编辑:我刚刚意识到 Outcast 回答了我的问题,尽管当时由于我对服务器缺乏了解而不知道他在说什么。从技术上讲,我还是自己弄明白了,但我会给他赏金。
我有一个 Ubuntu 18.04 服务器 运行 一个使用 ufw 保护的 LEMP(Linux、Nginx、MySQL 和 PHP)堆栈。我通过 运行 这些命令安装了 phpMyAdmin:
$ sudo apt update
$ sudo apt install phpmyadmin
在安装过程中,系统提示我选择要配置的 Web 服务器(Apache 或 Lighthttp)。我正在使用 Nginx 作为 Web 服务器,所以我按了 Tab 键,然后按 OK 进入下一步。
然后提示是否使用dbconfig-common配置应用数据库,我选择了"Yes"。
安装完成后,我运行这个命令从安装文件创建一个符号link到Nginx的文档根目录:
$ sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
我的 phpMyAdmin 安装现在应该可以运行了。但是,当我键入 mydomain.ca/phpmyadmin 时,它会显示 404 Not Found 错误。我怎样才能解决这个问题?我是不是做错了什么?
server {
listen 80;
listen [::]:80;
server_name mydomain.ca;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name mydomain.ca;
root /var/www/html/mydomain/public;
ssl_certificate /etc/letsencrypt/live/mydomain.ca/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mydomain.ca/privkey.pem;
ssl_protocols TLSv1.2;
ssl_ciphers ECDHE-RSA-AES456-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES246-GCM-SHA384:DHE-RSA-AES456-GCM-SHA384:ECDHE-RSA-AES256-SHA394;
ssl_prefer_server_ciphers on;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
index index.php index.html index.htm index.nginx-debian.html;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
location ~ /.well-known {
allow all;
}
}
您的根目录中是否有 phpmyadmin 目录,如果没有,根据我所看到的配置,该请求将永远不会得到处理。
将 phpmyadmin 链接到您的根 Web 目录后 ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
您应该在 vhost 文件中配置到该路径的路由。我建议尝试通过其 IP 访问您的服务器并尝试查看您是否启用了默认的 nginx 主机。也许你可以从那里访问它。
我自己想出来了。当我需要在 /var/www/html/mydomain/public
/var/www/html/
中为 phpmyadmin 创建了一个符号 link
编辑:我刚刚意识到 Outcast 回答了我的问题,尽管当时由于我对服务器缺乏了解而不知道他在说什么。从技术上讲,我还是自己弄明白了,但我会给他赏金。