无法让 PHP 与我的 Nginx 虚拟主机配合使用。一直返回“未指定输入文件”

无法让 PHP 与我的 Nginx 虚拟主机配合使用。一直返回“未指定输入文件”

我正在尝试在我的服务器上启动并运行 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

如果你修正了你的路径它就应该可以工作。

相关内容