我在 virtuals.conf 中为 phpMyAdmin 创建了一个条目,并重新启动了 Nginx,但我无法让它真正地运行 phpMyAdmin。PHP 已安装并配置了 Nginx 以实现 fast-cgi,virtuals.conf 条目语法检查无误,mysql 服务器正在运行。
另外,FWIW,centos 是我正在运行的 CentOS VM 的主机名。
我的参赛作品如下:
server {
listen 80;
server_name mysql.centos;
location / {
root /usr/share/phpMyAdmin;
index index.php;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/phpMyAdmin$fastcgi_script_name;
include fastcgi_params;
}
}
答案1
查看我的设置示例:
server {
listen 80;
server_name domain.com;
# Server root
root /home/user/domain.com/public_html;
index index.html index.php;
location /MySQLAdmin {
auth_basic "Restricted Access";
auth_basic_user_file htpasswd_file;
alias /usr/share/phpMyAdmin/;
try_files $uri $uri/ @fastcgi;
}
location ~ .+\.php$ {
# Return '400 Bad Request' for malformed URLs
location ~ \..*/.*\.php$ {
return 400;
}
# Map 418 error code (no bady uses) to fastcgi
error_page 418 = @fastcgi;
return 418;
}
location @fastcgi {
fastcgi_pass 127.0.0.1:9000;
...
}
location / {
try_files $uri $uri/ @fastcgi;
}
}
对“MySQLAdmin”的请求将由别名为 phpMyAdmin 文件夹的位置处理。Nginx 将直接返回静态文件并将 PHP 发送到 @fastcgi。对“.php”的请求将发送到 @fastcgi。
Nginx 尝试为其他文件提供服务,并将未找到的文件发送到 @fastcgi。基本上,静态文件将由 Nginx 提供服务。未明确写出的 Index.php 请求将不会被找到并传递给 @fastcgi。