Zhengrenzhe

(°∀°)ノ 老打杂了

用户工具

站点工具


其他:dokuwiki部署

Nginx + PHP

Nginx + PHP环境直接用docker就行了,https://github.com/zhengrenzhe/php-nginx.git,其中的compose文件包含了Nginx与PHP环境配置。

使用 make start 开启服务,make stop 停止服务,

需要注意的是docker-compose.yml第25行,user: “500:500”,这是为了让docker环境与宿主机环境对当前目录下的html文件夹都具有读写权限。

其工作原理是,当docker环境内的用户(uid与gid)与宿主机环境用户(uid与gid)相同时,二者可以无障碍的读写挂载的目录,也就是我们的html目录,用于存放DokuWiki的PHP程序和页面数据。如果二者不统一的话,要么是DokuWiki没有写权限部署不了页面,要么是宿主机环境读不了html目录无法备份。

docker环境内的默认用户是ubuntu,其uid与gid均为500,所以我们在宿主机环境也建立对应的uid与gid,这样在该uid下,宿主机就能与docker环境无障碍共享挂载目录。

套上Cloudflare

为了防止机器被人恶意打瘫,Cloudflare是必不可少的,如果没特殊要求,使用免费plan即可。这里具体步骤就不多说了,配置起来很简单。我的DNS也放在这里进行解析,同时它还提供HTTPS,这也是为什么我没在docker配置里加HTTPS的原因。

如果你是大陆的机器,那不推荐使用Cloudflare,Cloudflare在大陆是减速CDN。不过如果是已备案的域名,可以使用它的中国版:百度云加速。

备份

备份是一个很重要的问题,谁也不想辛辛苦苦写的文章在意外之中丢了。这里推荐juicefs,这是一个将对象存储变为POSIX文件系统的服务。简而言之,可以将你在公有云上的对象存储(例如阿里云OSS)变成一个可挂载的文件系统。你在该挂载点下的所有文件都会被存储在公有云上,而文件metadata存储在juicefs。

我们可以在juicefs创建一个文件系统,并挂载到你的宿主机下,然后将你原本在html目录中的DokuWiki程序及数据移动到juicefs挂载点下,最后创建个软连接到html,从此你的DokuWiki任何数据都会被存储至juicefs(对应公有云的对象存储),任何机器挂了、忘续费、误删除之类的风险都不会影响你的DokuWiki配置及文章数据,基本可谓万无一失了。

其他/dokuwiki部署.txt · 最后更改: 2020/03/06 16:55 由 zhengrenzhe