我正在尝试在我的服务器上启动并运行 phpmyadmin。这是它的 nginx vhost:
server {
listen 80;
server_name server.mydomain.net;
location /phpmyadmin/ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/phpmyadmin$fastcgi_script_name;
include /opt/nginx/conf/fastcgi_params;
alias /usr/share/phpmyadmin/;
}
root /opt/nginx/html/;
}
这是我的 fastcgi_params 文件
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
我编译了 lighthttpd,这样我就可以提取 spawn-fcgi。它现在位于 /usr/local/bin 中,并附带我的 php5-cgi 启动器,如下所示:
#!/bin/sh
/usr/local/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -C 2 -f /usr/bin/php5-cgi
我运行它并看到它已通过执行成功启动ps aux | grep php
。
但是,每当我尝试打开 phpmyadmin 时,都会收到错误“未指定输入文件”
我究竟做错了什么? :/
答案1
“未指定输入文件”是 PHP 在给定路径下找不到文件时给出的错误。Nginx 将此路径传递到fastcgi_param SCRIPT_FILENAME /usr/share/phpmyadmin$fastcgi_script_name;
您的错误是 $fastcgi_script_name; 包含 URI,因为您所在的位置/phpmyadmin/
意味着 URI 是/phpmyadmin/whatever.php
。因此您实际上是在传递/usr/share/phpmyadmin/phpmyadmin/whatever.php
。
如果你修正了你的路径它就应该可以工作。