百度云虚拟机BCH是一个奇葩存在,为什么这么说呢啊。至少它折磨了我一两个小事,接下来说说百度云虚拟机在搭建网站过程中我所遇到的问题。
我在自己的测试服务器上安装了自己搭建过得企业官网,然后搭建了企业的主题(你问我为什么在我自己的服务器?因为朋友的服务器那时没有购买呢),都完成之后,开始给官网做迁移,当我把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,我经不起这么大的坎坷啊,受不鸟啊。
在再一次百度,结果就是,还是需要自建伪静态配置文件,,,
在网站的根目录里面(webroot目录下)新建一个bcloud_nginx_user.conf文件(bch是不允许修改基础配置文件的,所以只能通过加载用户自定义配置文件),写入网站的伪静态规则代码:
if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break;}if (-f $request_filename/index.php){ rewrite (.*) $1/index.php;}if (!-f $request_filename){ rewrite (.*) /index.php;}
然后保存,提交,回到控制面板,找到站点启停,点击右侧的重载站点服务。(切记修改完规则之后一定要重新加载否则不能生效)。
到此一切都归于平静,一个F5你暗恋已久的页面就出现在了你的眼前!