记一次无语的"No input file specified"错误

本文记录了一次将网站从阿里云虚拟主机迁移到ECS过程中遇到的问题:后台登录后显示“No input file specified”错误。经过排查发现是由于网站程序缺少后台首页文件导致,最终通过补充缺失文件解决了该问题。

背景

接手新工作,一个任务是将一个网站从阿里云云虚拟主机迁移到云服务器 ECS上。环境配置不详说,主要吐槽这个错误。

这个网站原来是找外面的网络公司做的。

环境

ngingx+php5.2.17+mysql5.7.25

错误描述

网站程序通过ftp上传,数据库已导入,配置文件已修改,网站首页访问正常,首页功能正常,后台登录页面正常访问,但是登录后台首页就会报No input file specified这个错误。

解决过程

一开始觉得是php-cgi配置有问题,可是我的其他访问都正常,百度后根据一些资料进行了一些配置修改,无效。

苦苦挣扎的时候,尝试登录旧网站(未删除),发现它也是报这个错误???

之后查看文件发现,这个网站,它就是没有这个后台首页文件的。。。踩了一个超低级的坑。。。

解决方法

找到同版程序上传这个缺了的文件

总结

前人挖坑,后人倒霉。这个无良网络公司用的很老的网站程序,只能用php5.2以下,而且还缺文件。。。我的内心是崩溃的

 

### PHPStudy中‘No input file specified错误解决方案 ‘No input file specified错误通常出现在PHP运行环境中,当服务器无法找到或正确解析请求的PHP文件时会发生该问题。以下是一些常见的解决方法: #### 1. 检查伪静态规则 如果使用的是Nginx作为Web服务器,可能是伪静态规则配置不正确导致的。例如,在引用[2]中提到的Nginx配置中,伪静态规则可能未正确设置。可以尝试修改`location /`部分的伪静态规则如下: ```nginx location / { index index.html index.htm index.php; if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=$1 last; break; } } ``` 此规则确保所有未匹配到实际文件的请求都会被重定向到`index.php`进行处理[^2]。 #### 2. 检查fastcgi配置 在PHPStudy中,FastCGI配置可能导致此问题。需要确保PHP-FPM和Nginx之间的通信正常。可以在Nginx配置文件中检查以下参数是否正确: ```nginx fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; ``` 如果缺少上述参数,可能会导致Nginx无法正确传递PHP文件路径给PHP-FPM[^2]。 #### 3. 修改.htaccess文件(适用于Apache) 如果使用的是Apache服务器,可以参考引用[1]中的解决办法。打开项目根目录下的`.htaccess`文件,确保其内容类似于以下形式: ```apache <IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] </IfModule> ``` 此配置确保所有未匹配到实际文件或目录的请求都被重定向到`index.php`[^1]。 #### 4. 检查PHP环境变量 有时,PHP环境变量未正确配置也会导致此问题。可以通过在PHP配置文件中添加以下代码来验证: ```php <?php phpinfo(); ?> ``` 将此文件保存为`info.php`并访问它,检查`SCRIPT_FILENAME`是否指向正确的PHP文件路径。如果不是,则需要调整Nginx或Apache的配置文件[^2]。 #### 5. 确保文件权限正确 文件权限问题也可能导致‘No input file specified错误。确保Web服务器用户(如`www-data`)对PHP文件具有读取权限。可以使用以下命令更改文件权限: ```bash chmod -R 755 /path/to/your/project chown -R www-data:www-data /path/to/your/project ``` #### 6. 检查PHPStudy的虚拟主机配置 如果使用PHPStudy的虚拟主机功能,需确保虚拟主机配置文件中的`root`路径正确,并且`index.php`已包含在`index`指令中。例如: ```nginx server { listen 80; server_name www.example.com; root "D:/phpStudyProjects/example"; index index.html index.htm index.php; } ``` ### 示例代码 以下是一个完整的Nginx配置示例,适用于解决‘No input file specified’问题: ```nginx server { listen 80; server_name www.example.com; root "D:/phpStudyProjects/example"; index index.html index.htm index.php; location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=$1 last; break; } } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值