在 nginx 上使用 php7-fpm “未指定输入文件”

Posted

技术标签:

【中文标题】在 nginx 上使用 php7-fpm “未指定输入文件”【英文标题】:"no input file specified" with php7-fpm on nginx 【发布时间】:2018-05-26 15:30:40 【问题描述】:

我是 nginx 新手并在其上安装 phpmyadmin。我在 Debian 伸展发行版上。我在尝试访问 /phpmyadmin 时遇到的 no input file specified 错误在 *** 上一遍又一遍地出现,但它们似乎都是较旧的帖子。试图从网络上的许多不同建议中拼凑出正确的配置是一场噩梦。我尝试了一些提到的解决方案,但没有一个对我有用。这是我的完整配置文件:

server 
  gzip on;
  gzip_types text/plain text/html text/css application/javascript;

  root /home/me/projects/MyApp/public;
  location / 
      try_files $uri @proxy;
      expires max;
  
  location @proxy 
      proxy_set_header Host $http_host;
      proxy_set_header X-Forwarded-Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_pass http://localhost:5000;

  

  location /phpmyadmin 
    alias /usr/share/nginx/html/phpmyadmin;
    index index.php index.html;
      include snippets/fastcgi-php.conf;
      fastcgi_pass unix:/run/php/php7.0-fpm.sock;
      location ~ /\.ht 
        deny all;
      
  

【问题讨论】:

snippets/fastcgi-php.conf 中包含什么?您可能需要添加fastcgi_param SCRIPT_FILENAME $request_filename; 啊,我只是认为这是一些标准文件,并没有费心去看。没有该名称的文件。我用你的建议替换了配置文件中的那一行。我现在得到一个空白页。但我更接近。谢谢! 您可能会发现一个名为fastcgi_params 的文件,其中包含许多PHP 必需的fastcgi_param 定义。 是的,几分钟前刚刚在 /etc/nginx/fastcgi_params 中找到它。我将其包含在我的配置中。现在我得到一个只显示“拒绝访问”的空白网页。 呃,将cgi.fix_pathinfo 设置回php.ini 中的默认设置,现在网页上出现“找不到文件”消息。我现在真的很想念apt-get。 【参考方案1】:

好的,这是我的配置文件中至少可以与 phpmyadmin 一起工作的部分(我不能保证它是安全的):

  location /phpmyadmin/ 
    alias /usr/share/nginx/html/phpmyadmin/;
    index index.php index.html;

    location ~* \.php$ 
      include /etc/nginx/fastcgi_params;
      fastcgi_param SCRIPT_FILENAME $request_filename;
      fastcgi_pass unix:/run/php/php7.0-fpm.sock;
      location ~ /\.ht 
        deny all;
      
    

我还必须在我的 php.ini 文件中注释掉我根据一些在线教程的建议取消注释掉的一行:

cgi.fix_pathinfo=0

;cgi.fix_pathinfo=0

【讨论】:

在 Ubuntu 17.10 和 PHP7.0 上绝对正确且有效 这应该是公认的答案。来自我的 +1

以上是关于在 nginx 上使用 php7-fpm “未指定输入文件”的主要内容,如果未能解决你的问题,请参考以下文章

如何在CentOS 7中使用Nginx和PHP7-FPM安装Nextcloud

如何在CentOS 7中使用Nginx和PHP7-FPM安装Nextcloud

markdown 使用PHP7-FPM和XDebug设置Nginx的快速指南

如何在 CentOS 7 中使用 Nginx 和 PHP7-FPM 安装 Nextcloud

如何在 CentOS 7 中使用 Nginx 和 PHP7-FPM 安装 Nextcloud

如何在 CentOS 7 中使用 Nginx 和 PHP7-FPM 安装 Nextcloud