No input file specified网站无法访问的解决方法
百度云虚拟机BCH是一个奇葩存在,为什么这么说呢啊。至少它折磨了我一上午,接下来说说百度云虚拟机在搭建Z-BlogPHP过程中我所遇到的问题。
我在自己的测试服务器上安装了zbp,然后搭建了企业的主题(你问我为什么在我自己的服务器?因为朋友的服务器那时没有购买呢),都完成之后,开始给zblogPHP数据做迁移(之前写过相关的教程,没看过的可以点击:传送门),当我把mysql数据库和文件上传到百度云虚拟机的时候,发现打开网站之后显示“No input file specified.”,当然,我英文不好,所以第一反应就是百度翻译。。。是的,翻译过来就是“没有指定输入文件”,这么可能呢?文件已经传完,数据库账号密码也都修改完成,数据库导入也没有错误,就算有错误也不应该显示这个提示啊,这就尴尬了;
有问题就百度,你总能找到答案(百度云虚拟机的操作看过了,未解决),百度了以下,大概的原因就是需要修改php.ini文件,具体方法是:打开php.ini,CTRF+F查找如下代码,
;cgi.force_redirect = 1
然后去掉前面的 ; 分号,把1改成0,然后提交保存,然后重启启动配置文件(修改之后如下)
cgi.force_redirect = 0
好了,问题是找到了,但是奇葩的是百度云虚拟机没有修改php.ini的路径你造么?
一度陷入僵局,没办法继续查看百度虚拟机的操作说明,这回用我卡姿兰大眼睛找到了官方给出的修改php.ini的办法,那就是。。。。。。自建php.ini文件没事的,你没看错,自己在网站根目录建立文件,原文这么写的:
其它自定义配置
自定义php.ini
用户可以在webroot目录下增加一个php.ini文件,将需要改变的值写入,重载后即可生效。其中error_log和extension_dir的值请不要修改,否则会导致BCH的一些服务无法生效。
看到了吧,知道为什么会说百度云虚拟机是个奇葩的存在了吧。行了,问题都可以解决了,那么新建一个php.ini,直接写入上代码
cgi.fix_pathinfo = 0
就行了,然后保存,回到百度云虚拟机重载配置,OK,网站能正常访问;
然后,,,是的又出现一个问题zbp的伪静态没有生效,所有的页面都是404,oh~~~no,我经不起这么大的坎坷啊,受不鸟啊。
在再一次百度,结果就是,还是需要自建伪静态配置文件,,,
在网站的根目录里面新建一个.htaccess(【apache服务器为例】)文件伪静态规则代码:
<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine on #http跳转到https #RewriteCond %{HTTPS} !=on #RewriteRule ^(.*)$ https://%{SERVER_NAME}/$1 [R,L] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?s=/$1 [QSA,PT,L] </IfModule>
然后保存,提交,回到控制面板,找到站点启停,点击右侧的重载站点服务。(切记修改完规则之后一定要重新加载否则不能生效)。
到此一切都归于平静,一个F5你暗恋已久的页面就出现在了你的眼前!
手机端logo:/uploads/allimg/20190604/f6d6bb5265ae3bca241d886df3ff6203.png