====== 安装Dokuwiki ======
涉及到服务器和Dokuwiki本身的安装事项。
参考文章: [[https://www.dokuwiki.org/install:ubuntu:ubuntu_18.04_nginx|Installing Dokuwiki on Ubuntu 18.04 with Nginx]]
[[https://zhuanlan.zhihu.com/p/138007915|如何在 Ubuntu 20.04 上安装 Nginx]]
===== Nginx 服务器=====
具体安装过程请参考 [[it:server:nginxserver|Nginx 服务器]] 笔记中的记述。
===== Dokuwiki 安装包 =====
{{tag>[wiki]}}
安装官方文档指示就可以了,并不复杂。配置文件的名字可以随便起,网站放置的地方也可以随便。需要注意的只有两点:
假设 //dokuwiki.conf//为配置文件, 项目地址为 ///var/www/html/dokuwiki//
sudo vim /etc/nginx/sites-available/dokuwiki.conf
sudo ln -s /etc/nginx/sites-available/dokuwiki.conf /etc/nginx/sites-enabled/
# 配置文件修改此项
# root /var/www/html/dokuwiki;
注意:!: 配置文件中所有的命令行都要 ";" 结束,否则会报错
修改完好用Nginx的命令行检查一下,就可以启动服务器了
sudo nginx -t
sudo systemctl restart nginx # reload, start 都行
更改网站数据文件夹的所有者
chown -R www-data:www-data /var/www/html/dokuwiki
====== 安全措施 ======
打开网站的配置文件,''/etc/nginx/sites-available/mywebsit.conf'' 输入以下内容:
location ~ /(data|conf|bin|inc|vendor)/ {deny all;}
然后重启服务器,放置一份文件到~/data/pages/wiki/目录下,并测试直接访问文件 ''http://wiki.goldentianya.de/data/pages/wiki/site_notice.txt''。如果仍然能访问,说明安全措施没有生效。生效的话应该会收到一个403拒绝。
====== 崩溃处理 ======
== 插件导致的崩溃 ==
安装了一些过期或者有问题的插件,会导致网站不可访问,出现500问题。解决方案是进入网站的''libs/plugin''目录下,删除掉有问题那个plugin就可以了。
== 模版导致的崩溃 ==
需要修改 ''conf/local.php'',换回原来的模版。或者删除此文件,使用备份文件 ''local.php.bak.php''。估计这个问题发生过不少,新版已经对这些做好了备份。
====== 备份网站 ======
尽管添加了安全保护,但万一受到黑客攻击或者系统不明原因导致的系统崩溃,至少有一份可以恢复的文件。利用系统的定时任务进行备份。制定一份脚本
++++ backupwiki.sh |
#/usr/bin/sh!
tar -czf /home/ftp/backup/`date +%F`_wiki.tar.gz /home/ubuntu/www/html
# 删除3天以前的文件
find /home/ftp/backup/ -mtime +3 | xargs rm
++++
并且更改为可执行文件, ''%%chmod +755 /home/backupwiki.sh%%''。
$> crontab -e
# 每周日凌晨2点执行数据库备份
0 2 * * * /home/backupwiki.sh
备份到第二台服务器有两种方式,第一种远程推送:
++++ push.exp |
#!/usr/bin/expect
set DATE [exec date +%F]
set fileurl /home/ftp/backup/$DATE\_wiki.tar.gz
spawn echo $fileurl
spawn scp $fileurl @62.143.173.13:/home/ubuntu/Backup/dokuwiki
set pass ""
expect {
password: {send "$pass\r"; exp_continue}
}
++++
第二种方式在第二台服务器编写一个拉取文件的脚本,比备份时间晚半个小时开始执行 ''%%30 2 * * * expect /home/copyfile.exp%%''
++++ pullfile.exp |
#!/usr/bin/expect
set DATE [exec date +%F]
set fileurl @217.160.61.19:/home/ftp/backup/$DATE\_wiki.tar.gz
spawn rcp $fileurl /home/ubuntu/Backup/dokuwiki
set pass ""
expect {
Password: {send "$pass\r"; exp_continue}
}
# delete old files
spawn find /home/ubuntu/Backup/dokuwiki/ -mtime +3 | xargs rm
++++
expect {Password:....} 要注意大小写。有些服务器大些,有些是小写。
====== 迁移网站 ======
将现有的网站打包,整个传输到新的服务器。
新的服务器注意安装[[it:server:nginxserver|]],php7,以及[[工具:编辑:dokuwikistructdata#结构化数据]]中指定sqlite数据库的新地址就好了。
====== 升级网站 ======
[[https://www.dokuwiki.org/install:upgrade|升级网站]]
参考上文,将新的文件拷贝到
'cp' -af /home/ftp/upgrade/dokuwiki/* /home/ubuntu/www/html/
// 改变用户
chown -R www-data:www-data /home/ubuntu/www/html/