Caddy用service启动时报错read-only

今天又遇到以前碰到过的一个奇怪的问题:Caddy跑起来效果很奇怪。

我在Filemanager里面指定了.db文件,Caddy的status报错说文件为read-only。
我不指定.db文件让Filemanager自动生成,Caddy能跑起来了,但是用Filemanager去管理Aria2的下载目录/usr/local/caddy/www/aria2/download/ 总是报错,就像下面这样
同样的命令(下图标记部分)在cmdline执行,一点问题也没有。Filemanager功能一切正常。

查了各种文件的属性,用chmod chown chgrp改来改去,还是不解决问题。

最终在Telegram上面,Newlearner大佬指了一条路  https://caddy.community/t/problem-with-filemanager-plugin-and-systemd/3900/5,看过之后,再结合其它资料 https://www.cnblogs.com/goldd/articles/5756942.html
解决方案如下:
1. 如果想粗暴一点解决问题,或者还想用Filemanager管理更多目录的话,在/lib/systemd/system/caddy.service里面把ProtectSystem设置为off
; Make /usr, /boot, /etc and possibly some more folders read-only.
ProtectSystem=off
2. 我的Filemanager只是用来管理Aria2下载的文件,所以我选择修改ReadWriteDirectories,添加一些目录(空格分隔)红色部分是我添加的。
; … except /etc/ssl/caddy, because we want Letsencrypt-certificates there.
;   This merely retains r/w access rights, it does not add any new. Must still be writable on the host!
ReadWriteDirectories=/etc/ssl/caddy /usr/local/caddy/filemanager /usr/local/caddy/www/aria2/download 
保存caddy.service之后,需要 systemctl daemon-reload service caddy restart 

评论

The Hot3 in Last 30 Days

无服务器 自建短链服务 Url-Shorten-Worker 完整的部署教程

ClouDNS .asia免费域名 托管到CloudFlare开CDN白嫖Websocket WS通道翻墙 / desec.io