评论区有朋友提醒,目前1Panel最新版使用Docker部署已经不会再出现404和奇怪报错啦 | 伪静态肯定还是要手动设置的o((>ω< ))o
I.登录页404
前阵子更换服务器,把原来的宝塔面板换成了1Panel,发现博客数据库和网站文件夹直接迁移过去无法正常使用,在Typecho登录页会报404错误,多次尝试后,在1Panel的Github issues里找到了解决办法:
在1Panel部署的PHP环境中,配置文件里,在OpenResty配置文件中加入以下四行内容
(省略)
location ~ [^/]\.php(/|$) {
fastcgi_pass 127.0.0.1:9000;
include fastcgi-php.conf;
include fastcgi_params;
fastcgi_split_path_info ^(.+?\.php)(/.*)$; #这行
set $path_info $fastcgi_path_info; #这行
fastcgi_param PATH_INFO $path_info; #这行
fastcgi_param SCRIPT_NAME $fastcgi_script_name; #这行
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
if ($scheme = http) {
(省略)
保存重载即可。
根据Typecho官方文档,这是Nginx搭建站点时没配置支持pathinfo导致。(不过那个文档好久没更新了,里面提到的办法并不适用,跟着本文来即可)
II.关于奇怪报错Unmatched '}'
这个问题在我的博客装载了LoveKKCommentModify插件后出现,这是因为该插件在编写时使用了PHP短标签,但是1Panel的默认PHP配置并没有开启short_open_tag
,于是出现这个报错。这时候只需要在网站设置->PHP中将short_open_tag
开启重载即可。
III.关于权限
由于1Panel采用容器方式管理网站应用,对应网页文件夹的权限不像宝塔面板可以全部是0(root)
。权限出错时,typecho程序本身或者安装的插件可能因此出现故障。因此,在对网站目录进行增删文件操作后,记得修改目录权限。
最简单的方法是:
1.点击对应站点域名,打开站点设置 2.找到网站目录一栏 3.在运行用户/组后方直接点保存
如此便可
III.文末闲话
从我遇到的这些问题可以看出,宝塔像是把你可能遇到的问题给解决了(当然也有可能是因为宝塔用了LNMP),于是在建站的时候,不需要修改任何配置,将Typecho文件夹一解压就能用。而1Panel目前提供的PHP运行环境并没有预设这些配置,导致新手建站出现困难。
illlights
我也刚刚换成1Panel,现在直接它的 Docker 安装不会出现这些问题,就是伪静态少个文件,自己加上去就行
邮文
@illlights : ok,标注上啦
jiyouzhan
这篇文章写得深入浅出,让我这个小白也看懂了!
邮文
@jiyouzhan : 很高兴这篇文章能对你有所帮助qwq