Dokuwiki
导言
在安装好dokuwiki后(请参考"Deploy Dokuwiki to localhost"),我们需要思考
- 如何批量导入sudo和普通用户
- 如何创建和组织wiki内容,
- 内容的备份和高效部署。(e.g.,结合github进行备份
基本操作¶
修改中文¶
管理
-> 配置设置
修改到中文
停用注册¶
管理
-> 配置设置
-> disableactions 停用 DokuWiki 功能
批量用户导入¶
管理
-> 用户管理器
使用csv
批量导入用户,并发送随机密码到对应邮件。
每个文件夹和文件设置public/authentic¶
管理
-> 访问控制列表(ACL)管理器
创建新文件和文件夹(命名空间)¶
命名空间
wiki:welcome
在 wiki 目录下创建 welcome文件test:wiki:welcome
两层文件夹:welcome
根文件夹.welcome
当前文件夹下
如果用户有创建的权限,http://222.195.72.221/doku.php?id=xxx
,将 xxx
替换成想要的位置,即可创建。删除全部内容,自动删除项。
配置导航栏¶
- 修改
sidebar
,可以简单填写[[wiki:welcome]]
来链接内部页面。但是建议安装插件- 侧边栏的宽度可以在“模板设置样式”里面调整)
indexmenu plugin¶
安装好之后,支持拓展的语法
{{indexmenu>:}}
根目录,默认展开全部{{indexmenu>:wiki#1|js}}
wiki文件夹,#1
展开一层|js
并使用js修改格式
修改logo¶
- The site's logo
:wiki:logo.png
1 - The favicon
:wiki:favicon.ico
使用主题Bootstrap3¶
- 布局简洁大气,强力推荐
- 还可以进一步选择颜色主题,选择Bootswatch.com主题插件,
- 保存后,设置里勾选
主题切换器
,推荐flatly
基本语法¶
- 语法与markdown有所区别,需要额外学习
http://222.195.72.221/doku.php?id=wiki:syntax
- 当然可以使用编辑页面导航栏的一些。
- 也支持插件来探索。
文件上传、公开访问¶
支持3MB内的PDF和图片管理,感觉可以放论文和成员的图片。
dokuwiki/php & nginx 大小限制
sudo vim /etc/php/8.1/fpm/php.ini
change post_max_size = 8M
and upload_max_filesize = 2M
sudo vim /etc/nginx/nginx.conf
and find location ~ \.php$ {
add client_max_body_size 25M;
2
如何设置能直链访问文件
将对应文件夹的ACL权限,对@ALL
设置读取
的权限, 即可实现下载。
文件如何组织保存¶
- 当前根目录
/var/www/html
- 页面保存在根目录的
/data/pages/*
- 媒体文件在根目录的
/data/media/
- 用户认证在根目录的
/conf/users.auth.php
只能被hash了,只能读拷贝,不能写和修改。
文件大小
# shaojiemike @ icarus1 in /var/www/html [21:14:12]
$ du -h -d 1
116K ./conf
2.7M ./data
56K ./bin
2.9M ./inc
7.1M ./lib
8.3M ./vendor
21M .
# shaojiemike @ icarus1 in /var/www/html/data [21:17:24]
$ du -h -d 1
416K ./media
8.0K ./tmp
24K ./attic
56K ./pages
8.0K ./locks
76K ./meta
172K ./index
8.0K ./log
1.8M ./cache
16K ./media_meta
8.0K ./media_attic
2.7M .
集成LDAP¶
配置pureldap¶
in icarus1.acsalab.com
to learn
# shaojiemike @ icarus1 in /etc/ldap [20:16:26]
$ cat ldap.conf
openssl s_client -connect ldap.acsalab.com:636 -servername ldap.acsalab.com -showcerts </dev/null | openssl x509 -text -noout
2023-12-15 12:17:09 /var/www/html/lib/plugins/pureldap/vendor/freedsx/ldap/src/FreeDSx/Ldap/Protocol/ClientProtocolHandler.php(182) FreeDSx\Ldap\Exception\ConnectionException: Unable to connect to server(s): ldaps://ldap.swangeese.fun
#0 /var/www/html/lib/plugins/pureldap/vendor/freedsx/ldap/src/FreeDSx/Ldap/LdapClient.php(311): FreeDSx\Ldap\Protocol\ClientProtocolHandler->send()
#1 /var/www/html/lib/plugins/pureldap/vendor/freedsx/ldap/src/FreeDSx/Ldap/LdapClient.php(326): FreeDSx\Ldap\LdapClient->send()
#2 /var/www/html/lib/plugins/pureldap/vendor/freedsx/ldap/src/FreeDSx/Ldap/LdapClient.php(94): FreeDSx\Ldap\LdapClient->sendAndReceive()
#3 /var/www/html/lib/plugins/pureldap/classes/Client.php(174): FreeDSx\Ldap\LdapClient->bind()
#4 /var/www/html/lib/plugins/pureldap/auth.php(63): dokuwiki\plugin\pureldap\classes\Client->authenticate()
#5 /var/www/html/inc/auth.php(222): auth_plugin_pureldap->checkPass()
#6 /var/www/html/inc/auth.php(174): auth_login()
#7 [internal function]: auth_login_wrapper()
#8 /var/www/html/inc/Extension/Event.php(133): call_user_func_array()
#9 /var/www/html/inc/Extension/Event.php(199): dokuwiki\Extension\Event->trigger()
#10 /var/www/html/inc/auth.php(104): dokuwiki\Extension\Event::createAndTrigger()
#11 /var/www/html/inc/init.php(232): auth_setup()
#12 /var/www/html/doku.php(36): require_once('...')
#13 {main}
# shaojiemike @ icarus1 in /var/www/html/data/log [20:21:20]
$ ldapsearch
SASL/SCRAM-SHA-1 authentication started
Please enter your password:
ldap_sasl_interactive_bind: Invalid credentials (49)
additional info: SASL(-13): user not found: no secret in database
# shaojiemike @ icarus1 in /var/www/html/data/log [20:27:02] C:49
$ ldapsearch -LLLY EXTERTNAL
ldap_sasl_interactive_bind: Unknown authentication method (-6)
additional info: SASL(-4): no mechanism available: No worthy mechs found
# shaojiemike @ icarus1 in /var/www/html/data/log [20:27:09] C:250
$ ldapsearch -LLLY EXTERTNAL
认证设置¶
从authplain
->pureldap
恢复¶
修改文件conf/local.php
内容$conf['authtype'] = 'authplain';
实践:如何备份和快速转移部署¶
思路: docker? + github保存修改。
域名解析问题
CNAME 解析 wiki 到 snode6。 clash报错 ERROR dial tcp4 202.38.72.23:443:connectex:No connection could be made because the target machine actively refused it.
解决:443
默认是https, 使用http即可。