====== Information ======
* DokuWiki ((https://www.dokuwiki.org))
* [[Information:Realm of Espionage]]
* https://wiki.realmofespionage.xyz ((you are here :p))
===== Prerequisites =====
* [[windows;11_ltsc|Windows 11 (24H2)]]
* [[servers;windows;nginx_php_php-cgi|nginx + PHP + PHP-CGI]]
* [[servers;windows;nginx;lets_encrypt|Certbot (Let's Encrypt)]]
====== Dependencies ======
* https://www.dokuwiki.org/requirements
* https://www.dokuwiki.org/install:php
* https://github.com/dokuwiki/dokuwiki/blob/master/composer.json
===== Git =====
* https://www.git-scm.com/download/win
* Last tested: ''Git-2.48.1-64-bit.exe''
* Git from the command line and also from 3rd-party software
====== Download Source ======
* https://github.com/dokuwiki/dokuwiki/commits/master/
"%ProgramFiles%\Git\bin\git.exe" clone --branch "master" --depth "1" --recurse-submodules "https://github.com/splitbrain/dokuwiki.git" "%SystemDrive%\www\wiki"
"explorer.exe" "%SystemDrive%\www\wiki"
====== Environment ======
===== PHP =====
"notepad.exe" "%SystemDrive%\www\php\wiki.ini"
[PHP]
; Modules
extension_dir = ".\ext"
extension = "bz2"
extension = "gd"
extension = "intl"
extension = "mbstring"
extension = "openssl"
zend_extension = "opcache"
[Date]
date.timezone = "America/New_York"
; End
"php.exe" -c "%SystemDrive%\www\php\wiki.ini" -m
====== nginx + PHP-CGI Configuration ======
===== PHP-CGI =====
"notepad.exe" "%SystemDrive%\www\nginx\default.d\wiki.conf"
# PHP-CGI
location ~ \.(php)(/.*)?$ {
fastcgi_split_path_info ^(.+\.(?:php))(/.*)$;
fastcgi_intercept_errors "on";
fastcgi_index "doku.php";
include "C:/www/nginx/conf/fastcgi_params";
fastcgi_param "SCRIPT_FILENAME" $document_root$fastcgi_script_name;
fastcgi_param "PATH_INFO" $fastcgi_path_info;
fastcgi_param "HTTPS" "on";
fastcgi_pass "127.0.0.1:9002";
}
# End
===== Server Block =====
"notepad.exe" "%SystemDrive%\www\nginx\vhosts.d\wiki.conf"
server {
listen "443" "ssl";
http2 "on";
server_name "wiki.realmofespionage.xyz";
root "C:/www/wiki";
index "doku.php";
include C:/www/nginx/default.d/wiki.conf;
include C:/www/nginx/default.d/headers.conf;
client_max_body_size "10M";
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data:" always;
# access_log logs/wiki-access.log;
# error_log logs/wiki-error.log;
# location = /install.php {
# deny all;
# }
# location ~ /(conf|bin|inc)/ {
# deny all;
# }
# location ~ /data/ {
# internal;
# }
location / { try_files $uri $uri/ @dokuwiki; }
location @dokuwiki {
rewrite ^/_media/(.*) /lib/exe/fetch.php?media=$1 last;
rewrite ^/_detail/(.*) /lib/exe/detail.php?media=$1 last;
rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 last;
rewrite ^/(.*) /doku.php?id=$1&$args last;
}
}
# End
"%SystemDrive%\www\scripts\nginx\Reload.bat"
====== Scripts ======
MKDIR "%SystemDrive%\www\scripts\wiki"
"explorer.exe" "%SystemDrive%\www\scripts\wiki"
===== PHP-CGI =====
"notepad.exe" "%SystemDrive%\www\scripts\wiki\PHP-CGI.bat"
SET "PHP_FCGI_MAX_REQUESTS=0"
SET "PHP_FCGI_CHILDREN=1"
START "Wiki PHP-CGI" "php-cgi.exe" -b "127.0.0.1:9002" -c "%SystemDrive%\www\php\wiki.ini" -q
:: End
"%SystemDrive%\www\scripts\wiki\PHP-CGI.bat"
===== Update =====
* https://github.com/dokuwiki/dokuwiki/commits/master/
"notepad.exe" "%SystemDrive%\www\scripts\wiki\Update.bat"
@echo off
"%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\wiki" reset --hard
"%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\wiki" pull origin "master" --rebase
"%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\wiki" gc --aggressive --prune="all"
"%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\wiki" fsck --full --strict
"php.exe" "%SystemDrive%\www\wiki\bin\indexer.php" --clear
:: End
"%SystemDrive%\www\scripts\wiki\Update.bat"
===== Back-up =====
"notepad.exe" "%SystemDrive%\www\scripts\wiki\Back-up.bat"
@echo off
:: User\Downloads
"tar.exe" -czf "%UserProfile%\Downloads\dokuwiki-files-auto-%RANDOM%.tar.gz" -C "%SystemDrive%\www\wiki" "data/pages" "data/meta" "data/media" "data/media_meta" "data/attic" "data/media_attic" "conf"
:: NAS
::"tar.exe" -czf "D:\Servers\Scheduled Backups\dokuwiki-files-auto-%RANDOM%.tar.gz" -C "%SystemDrive%\www\wiki" "data/pages" "data/meta" "data/media" "data/media_meta" "data/attic" "data/media_attic" "conf"
:: End
"%SystemDrive%\www\scripts\wiki\Back-up.bat"
====== Shortcuts ======
===== Desktop =====
==== Update ====
"%SystemDrive%\www\scripts\wiki\Update.bat"
Wiki Update
==== Back-up ====
"%SystemDrive%\www\scripts\wiki\Back-up.bat"
Wiki Back-up
===== Autostart =====
"explorer.exe" "%AppData%\Microsoft\Windows\Start Menu\Programs\StartUp"
"%SystemDrive%\www\scripts\wiki\PHP-CGI.bat"
Wiki PHP-CGI
====== Initial Setup ======
* https://wiki.realmofespionage.xyz/install.php
====== Settings ======
===== Deny Directives =====
* Uncomment commented sections (except logs)
* Do after initial setup and check warning in Admin panel
"notepad.exe" "%SystemDrive%\www\nginx\vhosts.d\wiki.conf"
"%SystemDrive%\www\scripts\nginx\Reload.bat"
===== Admin =====
* Configuration Settings -> DokuWiki -> Advanced -> userewrite: ''.htaccess''
==== Template Style Settings ====
* Alternative background color: ''#484848'' (dark gray)
* The general link color: ''#3d8bff'' (blue)
* Width of full site: ''85%''
* Width of sidebar: ''25%''
* :?: Color options may vary on the OS ((Windows doesn't show a HTML color code picker for the above ''#''s))
===== Double-hyphen Convert Disable =====
* This prevents -- from becoming a – (long hyphen) which breaks some command's syntax
"notepad.exe" "%SystemDrive%\www\wiki\conf\entities.local.conf"
-- --
====== Quick Commands ======
===== Find Orphaned Pages =====
* https://www.dokuwiki.org/cli?s%5B%5D=wantedpages.php
"php.exe" "%SystemDrive%\www\wiki\bin\wantedpages.php"
"php.exe" "%SystemDrive%\www\wiki\bin\wantedpages.php" --help
====== TODOs ======
* https://www.dokuwiki.org/plugin:searchindex
* https://www.dokuwiki.org/interwiki