206
云计算
负载均衡
产品简介
产品价格
快速入门
用户指南
实践操作
常见问题
购买指南
云服务器
产品简介
计费规则
购买指导
控制台使用指南
常见问题
云数据库
产品简介
计费规则
购买指导
快速入门
连接实例
控制台使用指南
对象存储
产品简介
控制台使用指南
程序员百科
Python
访问部署在ECS实例上的Web站点,提示“No input file specified”错误,如何处理?

产品推荐:

1、安全稳定的云服务器租用,2核/2G/5M仅37元,点击抢购>>>

2、高防物理服务器20核/16G/50M/200G防御仅350元,点击抢购>>>

3、百度智能建站(五合一网站)仅880元/年,点击抢购>>> 模板建站(PC+手机站)仅480元/年,点击抢购>>>


访问部署在ECS实例上的Web站点,提示“No input file specified”错误,如何处理?

本文介绍访问部署在ECS实例上的Web站点,提示“No input file specified”错误的问题描述、问题原因和解决方案。

问题描述

访问部署在ECS实例上的Web站点时,提示“No input file specified”错误,如图所示。问题现象 xin

问题原因

该问题通常是Web服务器无法找到指定的PHP文件或脚本导致。无法找到PHP文件或脚本的可能原因如下:

  • Web站点目录下存在.user.ini隐藏配置文件,且该文件中的open_basedir配置所指定的目录列表未包含该Web站点目录,导致Web服务器无法找到该文件。您需要添加正确的Web站点目录,具体操作,请参见在.user.ini隐藏配置文件中手动添加Web站点目录。

  • Web站点配置文件中伪静态规则书写错误,导致Web服务器读取该文件失败。您需要修改Web站点配置文件中错误的规则,具体操作,请参见在Web站点的配置文件修改伪静态规则配置(Apache)。

  • Web站点配置文件中运行模式相关配置错误,导致Web服务器读取该文件失败。您需要修改Web站点配置文件指定PHP程序的运行模式,具体操作,请参见在Web站点配置文件指定PHP程序运行模式(IIS和Nginx)。

解决方案

.user.ini隐藏配置文件中手动添加Web站点目录

您需要检查Web站点目录下是否存在.user.ini隐藏配置文件,如果存在,再检查该文件中的open_basedir配置所指定的目录列表是否包含了该Web站点目录。如果未包含,您需要手动添加该Web站点目录。

以Web站点目录是/www/wwwroot/www.abc.com为例,您需要确保.user.ini文件中的open_basedir指令包含该Web站点目录,即您需要将.user.ini隐藏配置文件中的open_basedir配置修改为open_basedir=/www/wwwroot/www.abc.com/:/tmp/ ,配置示例如图所示。image

在Web站点配置文件修改伪静态规则配置(Apache)

您需要检查Web站点目录下是否存在.htaccess隐藏配置文件,如果存在,再检查该文件中的RewriteRule规则是否书写正确。如果错误,您需要手动修改该规则。

以伪静态规则RewriteRule ^(.*)$ /index.php?/$1 [L]中的index.php缺少半角问号(?)为例,您需要修改该规则,操作步骤如下。

  1. 远程连接ECS实例。

    具体操作,请参见连接方式概述。

  2. 打开.htaccess文件,在配置文件中找到RewriteRule所在行,然后在index.php参数后添加半角问号(?),修改后的配置如图所示。

    说明

    .htaccess文件为Apache用户配置文件(伪静态),一般在当前网站的根目录下,具体路径以您的实际环境为准。

    RewriteRule ^(.*)$ /index.php?/$1 [L]
    Apache 修改
  3. 重新访问该网站。

    如果成功访问该网站,则问题解决。

在Web站点配置文件指定PHP程序运行模式(IIS和Nginx

您需要修改Web站点配置文件中运行模式相关的配置,来指定PHP程序的运行模式。本文介绍为IIS和Nginx指定PHP程序运行模式为CGI的操作步骤。

IIS配置

  1. 远程连接Windows实例。

    具体操作,请参见连接方式概述。

  2. 修改php.ini文件。

    1. 打开php.ini文件。

      说明

      后续操作以php.ini文件所在路径为C:\php\54为例,php.ini文件所在路径以您部署时选择的实际路径为准。

    2. 注释代码。

      找到php.ini文件的doc_root字段所在行,然后在开头位置添加半角分号(;)来注释整行内容,注释后的代码示例如图所示。注释doc_root所在行

    3. 修改代码。

      找到php.ini文件中的;cgi.force_redirect = 1代码,然后删除该代码中的半角分号(;),再将参数值从1修改为0,即该代码被修改为cgi.force_redirect = 0,修改后的代码示例如图所示。修改cgi

  3. 重启IIS。

    说明

    本文操作步骤以Windows Server 2012 R2数据中心版64位中文版为例,实际操作以您实际的操作系统为准。

    1. 在桌面左下角,单击开始图标图标,然后右上角的搜索框中输入iisreset重启IIS

    2. 单击iisreset

      IIS重启程序运行完毕,则表示IIS重启成功。

  4. 重新访问该网站。

    如果成功访问该网站,则问题解决。

Nginx配置

  1. 远程连接ECS实例。

    具体操作,请参见连接方式概述。

  2. 打开/etc/php5/cgi/php.ini文件,检查配置并确保cgi.fix_pathinfo = 1

    说明

    php.ini文件所在路径以您部署时选择的实际路径为准。

    Nginx cgi
  3. 打开fastcgi.conf配置文件,检查并确保文件中已保存如下配置。

    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param DOCUMENT_ROOT $document_root;

    如果fastcgi.conf配置文件中代码配置错误,则您需要修改代码后保存配置,修改后的代码示例如图所示。Nginx fastcgi

  4. 执行如下命令,重启Nginx服务。

    service nginx restart
  5. 重新访问该网站。

    如果成功访问该网站,则问题解决。


如果以上方法都没有解决问题,可以尝试查看Web服务器的错误日志,了解具体的错误信息并进行排查。


这条帮助是否解决了您的问题? 已解决 未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好! 很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!