====== 安装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/