TP5部署在百度云主机的注意事项
最近在学习TP5,顺手开发个小程序正好遇到双11百度云主机做活动,于是搞了一个bch。但是也遇到很多坑,加上百度云主机对应的支持文档写的简单随意,也是遇到不少麻烦,整理出来,供参考。
1、程序文件上传位置
需要把你的程序根目录文件下的文件和文件夹上传到云主机对应的/webroot目录下,/webroot下此时已经有一些系统自动生成的文件,没关系,直接把你的文件内容(注意不是你的程序文件的根目录这一个文件夹,而是根目录下的所有内容)上传到这里就可以了。
2、首页无法进入的问题
无法进入自己的首页,主要因为从是thinkphp5开始,入口页面index.php被放在了public目录下了,所以,nginx这时候找不到入口文件,所以进不了主页。处理办法:
在webroot目录下新建index.php文件,增加一句代码即可
<?php require './public/index.php'; ?>
3、只有首页能进入,其他页面404无法找到文件
主要是因为在thinkphp中做了url的重写PATHINFO,隐藏了入口文件,所以你在你的apache服务器中是没有感知,http://localhost/index.php 与 http://localhost 是一样的效果,但是在云虚拟机中,用的是nginx,这个时候,你的入口文件就隐藏不了了,如果要隐藏,就会报错404无法找到文件。要么你在处理时候注意加上入口文件,要么做url重写。
处理办法:在webroot下新建bcloud_nginx_user.conf文件,代码如下:
location / {
if ( -f $request_filename) { break; } if ( !-e $request_filename) { rewrite ^/(.*)$ /index.php/$1 last; break; } }
4、可能你会遇到静态文件js/css/images等文件找不到,缺少样式等问题
处理办法:在webroot下bcloud_nginx_user.conf文件,继续添加如下代码:
location ~ ^/(images|javascript|js|css|flash|media|static|upload)/ { root /home/bae/app/public; expires 30d; }
OK搞定!
注意:如果部分图片不显示的话,可以查看图片路径,把路径开头的文件夹名称放入
(images|javascript|js|css|flash|media|static|upload) 里面即可