当我尝试浏览 phpmyadmin 域时,我收到“未指定输入文件”的提示,不确定我做错了什么。使用 php-fpm 和 php-cgi,php-fpm 当前正在另一个目录中正常运行。必须将端口号更改为 8888,因为 -fpm 已经在使用 9000
来自 nginx.conf:
server {
listen 80;
server_name phpmyadmin.domain.com;
access_log /home/fanboy/logs/phpmyadmin.access_log;
error_log /home/fanboy/logs/phpmyadmin.error_log;
location / {
root /usr/share/phpmyadmin;
index index.php;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:8888;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/phpmyadmin$fastcgi_script_name;
include /usr/local/nginx/conf/fastcgi.conf;
}
}
答案1
更好的方法是将您的“根”行重新定位到位置块之外。
server {
listen 80;
server_name phpmyadmin.domain.com;
access_log /home/fanboy/logs/phpmyadmin.access_log;
error_log /home/fanboy/logs/phpmyadmin.error_log;
root /usr/share/phpmyadmin;
location / {
index index.php;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:8888;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/phpmyadmin$fastcgi_script_name;
include /usr/local/nginx/conf/fastcgi.conf;
}
}
显然,nginx 服务器配置不知何故错过了文档根目录设置。
这个想法来自PHP FastCGI 的 Nginx 配置指南。
答案2
fastcgi.conf 将 SCRIPT_FILENAME 重新定义为 $document_root$fastcgi_script_name。如果您在服务器中设置根目录(只需删除“location / {”和匹配的 })并从 php 位置中删除 SCRIPT_FILENAME 行,它应该可以正常工作。