Docker部署的Typecho常见问题
Typecho读取上传的文件显示403
之前个性化typecho博客的时候出现如下问题:
从本地把文件拖进typecho的文件持久化目录之后,文件无法访问,用url访问或者typecho自定义php页面调用(例如src: url('<?php $this->options->siteUrl(); ?>usr/uploads/SarasaGothicK-Regular.ttf')}
)都报403错。一开始以为是我上传的这个字体要写入权限,但运行了chmod
也没用。摸索了很久终于发现问题,如果不是通过typecho后台上传渠道上传(例如从本地拖文件),会导致文件的所有者为ssh或docker宿主管理员的身份。而typecho容器内使用的所有者为www-data
,从而导致没权限访问。所以最直接暴力的解决方案就是在typecho docker内(docker exec
或通过docker管理页面进入其终端机)执行
chown www-data:www-data 上传的文件在容器内的路径
chown -R www-data:www-data 上传的文件所在文件夹在容器内的路径
不过这样每次上传之后都要执行一遍,你可以写一个hook自动触发。不过最好最简单的解决方法还是从typecho后台进入上传,这样文件的所有者会自动变成www-data
插件导入后只显示“即插即用”或点击设置报错
如果在插件列表只有一行新纪录,插件的名字描述都没有,只显示“即插即用”。一般是插件文件夹在本地持久化后权限的设置问题。解决方法为:进入容器内应用后执行:
chmod -R 777 /var/usr/plugins
如果是插件名字和描述等正常显示,但是一点击设置就报错。或者描述显示插件不安全,建议移除云云。一般是插件的文件夹和插件名不匹配导致的。可能是由于你从github下载的文件夹名后面跟了master/main等分支名。解决方法为:找到在本地持久化的插件文件夹,把对应的插件文件夹名 改成 后台插件管理界面显示的插件名。
- 本文标题:Docker部署的Typecho常见问题
- 本文作者:uygnil
- 本文链接:https://blog.zhoulingyu.net/index.php/archives/13/
- 版权声明:本文采用 CC BY 4.0 协议进行许可
标签:无