User Tools

Site Tools


servers:linux:nginx:dokuwiki

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
servers:linux:nginx:dokuwiki [2025/12/20 23:33] Sean Rhoneservers:linux:nginx:dokuwiki [2026/01/01 03:20] (current) Sean Rhone
Line 7: Line 7:
 ===== Prerequisites ===== ===== Prerequisites =====
  
-  * [[linux:distros:server:ubuntu_server|Ubuntu Server]]+  * [[linux:distros:server:opensuse_tumbleweed_server|openSUSE Tumbleweed (Server)]]
   * [[servers:linux:nginx_php_php-fpm|nginx + PHP + PHP-FPM]]   * [[servers:linux:nginx_php_php-fpm|nginx + PHP + PHP-FPM]]
   * [[servers:linux:nginx:lets_encrypt|Certbot (Let's Encrypt)]]   * [[servers:linux:nginx:lets_encrypt|Certbot (Let's Encrypt)]]
Line 17: Line 17:
   * https://github.com/dokuwiki/dokuwiki/blob/master/composer.json   * https://github.com/dokuwiki/dokuwiki/blob/master/composer.json
  
-  sudo apt install git php-bz2 php-gd php-intl php-mbstring php-xml+  sudo zypper install php8-bz2 php8-gd php8-intl php8-mbstring php8-sodium php8-zlib
  
 ====== Download Source ====== ====== Download Source ======
Line 23: Line 23:
   * https://github.com/dokuwiki/dokuwiki/commits/master/   * https://github.com/dokuwiki/dokuwiki/commits/master/
  
-  sudo git clone --branch 'master' --depth '1' --recurse-submodules 'https://github.com/splitbrain/dokuwiki.git' '/var/www/wiki' && sudo chown -R 'www-data':'www-data' '/var/www/wiki' && sudo chmod -R '0755' '/var/www/wiki'+  sudo git clone --branch 'master' --depth '1' --recurse-submodules 'https://github.com/splitbrain/dokuwiki.git' '/srv/www/wiki' && sudo chown -R 'wwwrun':'www' '/srv/www/wiki' && sudo chmod -R '0755' '/srv/www/wiki'
  
 ====== nginx + PHP-FPM Configuration ====== ====== nginx + PHP-FPM Configuration ======
Line 29: Line 29:
 ===== PHP-FPM Socket ===== ===== PHP-FPM Socket =====
  
-  sudo -e '/etc/php/8.4/fpm/pool.d/wiki.conf' && sudo systemctl restart 'php8.4-fpm'+  sudo -e '/etc/php8/fpm/php-fpm.d/wiki.conf' && sudo systemctl restart 'php-fpm'
  
 <code> <code>
Line 35: Line 35:
  
 ; User/Group ; User/Group
-user = "www-data+user = "wwwrun
-group = "www-data"+group = "www"
  
 ; Socket ; Socket
-listen = "/run/php/wiki.sock" +listen = "/run/php-fpm/wiki.sock" 
-listen.owner = "www-data+listen.owner = "wwwrun
-listen.group = "www-data"+listen.group = "www"
 listen.mode = "0662" listen.mode = "0662"
  
Line 52: Line 52:
 php_value[log_errors] = "0" php_value[log_errors] = "0"
 php_value[error_reporting] = "~E_ALL" php_value[error_reporting] = "~E_ALL"
 +
 +; openSUSE php.ini Defaults
 +php_value[session.save_path] = "/var/lib/php8/sessions"
  
 ; General ; General
Line 60: Line 63:
 ===== FastCGI ===== ===== FastCGI =====
  
-  sudo -e '/etc/nginx/snippets/wiki.conf'+  sudo -e '/etc/nginx/default.d/wiki.conf'
  
 <code> <code>
Line 73: Line 76:
  fastcgi_param 'HTTPS' 'on';  fastcgi_param 'HTTPS' 'on';
  
- fastcgi_pass 'unix:/run/php/wiki.sock';+ fastcgi_pass 'unix:/run/php-fpm/wiki.sock';
  
 } }
- 
-# End</code> 
- 
-===== Themes Deny ===== 
- 
-  * https://github.com/WordPress/WordPress/tree/master/wp-content/themes 
-  * Deny all except ''twentytwentyfive'' 
-  * 2025/11/21: No ''twentytwentysix'' (2026) yet 
- 
-  sudo -e '/etc/nginx/snippets/blog-themes-deny.conf' 
- 
-<code> 
- location '~' '/wp-content/themes/(twentyeleven|twentyfifteen|twentyfourteen|twentynineteen|twentyseventeen|twentysixteen|twentyten|twentythirteen|twentytwelve|twentytwentyfour|twentytwentyone|twentytwentythree|twentytwentytwo|twentytwenty)/' { 
-  deny 'all'; 
- } 
  
 # End</code> # End</code>
Line 96: Line 84:
 ===== Server Block ====== ===== Server Block ======
  
-  sudo -e '/etc/nginx/sites-available/wiki.conf'+  sudo -e '/etc/nginx/vhosts.d/wiki.conf' && sudo systemctl reload 'nginx'
  
 <code> <code>
Line 104: Line 92:
  http2 'on';  http2 'on';
  server_name 'wiki.realmofespionage.xyz';  server_name 'wiki.realmofespionage.xyz';
- root '/var/www/wiki';+ root '/srv/www/wiki';
  index 'doku.php';  index 'doku.php';
  
- include '/etc/nginx/snippets/wiki.conf'; + include '/etc/nginx/default.d/wiki.conf'; 
- include '/etc/nginx/snippets/headers.conf'; + include '/etc/nginx/default.d/headers.conf';
- include '/etc/nginx/snippets/blog-themes-deny.conf'+
  
  client_max_body_size '10M';  client_max_body_size '10M';
Line 144: Line 131:
  
 # End</code> # End</code>
- 
-  sudo ln -s -f '/etc/nginx/sites-available/wiki.conf' '/etc/nginx/sites-enabled/wiki.conf' && sudo systemctl reload 'nginx' 
  
 ====== Initial Setup ====== ====== Initial Setup ======
Line 152: Line 137:
  
 ====== Settings ====== ====== Settings ======
- 
-===== Plugins ===== 
- 
-  * https://www.dokuwiki.org/plugin:searchindex 
  
 ===== Template Style Settings ===== ===== Template Style Settings =====
Line 168: Line 149:
   * Do after initial setup   * Do after initial setup
  
-  sudo -e '/etc/nginx/sites-available/wiki.conf' && sudo ln -s -f '/etc/nginx/sites-available/wiki.conf' '/etc/nginx/sites-enabled/wiki.conf' && sudo systemctl reload 'nginx'+  sudo -e '/etc/nginx/vhosts.d/wiki.conf' && sudo systemctl reload 'nginx'
  
 ===== URL Rewrite ===== ===== URL Rewrite =====
Line 180: Line 161:
   * This prevents -- from becoming a – (long hyphen), which breaks some command's syntax   * This prevents -- from becoming a – (long hyphen), which breaks some command's syntax
  
-  echo '--      --' | sudo -u 'www-data' tee '/var/www/wiki/conf/entities.local.conf' > '/dev/null'+  echo '--      --' | sudo tee '/srv/www/wiki/conf/entities.local.conf' > '/dev/null' && sudo chown 'wwwrun':'www' '/srv/www/wiki/conf/entities.local.conf'
  
 ====== Scripts ====== ====== Scripts ======
Line 188: Line 169:
   * :!: Set email for ''user.email''   * :!: Set email for ''user.email''
  
-  sudo mkdir -p '/etc/nginx/scripts/wiki' && sudo -e '/etc/nginx/scripts/wiki/git-fix.sh' && sudo chmod '0500' '/etc/nginx/scripts/wiki/git-fix.sh' && sudo chown 'www-data':'www-data' '/etc/nginx/scripts/wiki/git-fix.sh'+  sudo mkdir -p '/etc/nginx/scripts/wiki' && sudo -e '/etc/nginx/scripts/wiki/git-fix.sh' && sudo chmod '0500' '/etc/nginx/scripts/wiki/git-fix.sh' && sudo chown 'wwwrun':'www' '/etc/nginx/scripts/wiki/git-fix.sh'
  
 <code> <code>
 #!/bin/bash #!/bin/bash
  
-'/usr/bin/rm' -Rf '/var/www/wiki/.git' +cd '/tmp' 
-'/usr/bin/git' -C '/var/www/wiki' init --initial-branch='master' + 
-'/usr/bin/git' -C '/var/www/wiki' add '.'+'/usr/bin/rm' -Rf '/srv/www/wiki/.git' 
 +'/usr/bin/git' -C '/srv/www/wiki' init --initial-branch='master' 
 +'/usr/bin/git' -C '/srv/www/wiki' add '.'
  
 ######################################## ########################################
-'/usr/bin/git' -C '/var/www/wiki' config 'user.email' 'espionage724@x'+'/usr/bin/git' -C '/srv/www/wiki' config 'user.email' 'espionage724@x'
 ######################################## ########################################
  
-'/usr/bin/git' -C '/var/www/wiki' commit --message='x'+'/usr/bin/git' -C '/srv/www/wiki' commit --message='x'
  
-'/usr/bin/git' -C '/var/www/wiki' remote add 'origin' 'https://github.com/dokuwiki/dokuwiki.git' +'/usr/bin/git' -C '/srv/www/wiki' remote add 'origin' 'https://github.com/dokuwiki/dokuwiki.git' 
-'/usr/bin/git' -C '/var/www/wiki' pull --depth '1' --recurse-submodules 'origin' 'master' --rebase+'/usr/bin/git' -C '/srv/www/wiki' pull --depth '1' --recurse-submodules 'origin' 'master' --rebase
  
-'/usr/bin/git' -C '/var/www/wiki' reset --hard 'origin/master' +'/usr/bin/git' -C '/srv/www/wiki' reset --hard 'origin/master' 
-'/usr/bin/git' -C '/var/www/wiki' gc --aggressive --prune='all' +'/usr/bin/git' -C '/srv/www/wiki' gc --aggressive --prune='all' 
-'/usr/bin/git' -C '/var/www/wiki' fsck --full --strict+'/usr/bin/git' -C '/srv/www/wiki' fsck --full --strict
  
 # End</code> # End</code>
  
-  sudo -u 'www-data' '/etc/nginx/scripts/wiki/git-fix.sh'+==== Execute ==== 
 + 
 +  sudo su 'wwwrun' -s '/bin/bash' 
 + 
 +  '/etc/nginx/scripts/wiki/git-fix.sh' 
 + 
 +  exit
  
 ====== Services ====== ====== Services ======
Line 224: Line 213:
 <code> <code>
 [Service] [Service]
-User=www-data +User=wwwrun 
-Group=www-data+Group=www
 Type=oneshot Type=oneshot
  
-WorkingDirectory=/var/www/wiki+WorkingDirectory=/srv/www/wiki
  
-ExecStart='/usr/bin/git' -C '/var/www/wiki' reset --hard +ExecStart='/usr/bin/git' -C '/srv/www/wiki' reset --hard 'origin/master' 
-ExecStart='/usr/bin/git' -C '/var/www/wiki' pull origin 'master' --rebase+ExecStart='/usr/bin/git' -C '/srv/www/wiki' pull origin 'master' --rebase
  
-ExecStart='/usr/bin/php' '/var/www/wiki/bin/indexer.php' --clear +ExecStart='/usr/bin/php' '/srv/www/wiki/bin/indexer.php' --clear 
-ExecStart='/usr/bin/touch' '/var/www/wiki/conf/local.php'+ExecStart='/usr/bin/touch' '/srv/www/wiki/conf/local.php'
  
 ExecStartPost='/usr/bin/sync' ExecStartPost='/usr/bin/sync'
Line 262: Line 251:
  
 ===== Backup ===== ===== Backup =====
- 
-  * TODO: NAS mount 
  
 ==== Service ==== ==== Service ====
Line 273: Line 260:
 Type=oneshot Type=oneshot
  
-WorkingDirectory=/var/www/wiki+WorkingDirectory=/srv/www/wiki
  
-ExecStart='/usr/bin/bash' -c '"/usr/bin/tar" -czf "/home/CHANGEME/backups/dokuwiki-files-auto-"$$(date +%%Y-%%m-%%d)".tar.gz" -C "/var/www/wiki" "data/pages" "data/meta" "data/media" "data/media_meta" "data/attic" "data/media_attic" "conf"'+ExecStart='/usr/bin/bash' -c '"/usr/bin/tar" -czf "/home/CHANGEME/backups/dokuwiki-files-auto-"$$(date +%%Y-%%m-%%d)".tar.gz" -C "/srv/www/wiki" "data/pages" "data/meta" "data/media" "data/media_meta" "data/attic" "data/media_attic" "conf"'
  
 ExecStartPost='/usr/bin/sync' ExecStartPost='/usr/bin/sync'
Line 308: Line 295:
 <code> <code>
 [Service] [Service]
-User=www-data +User=wwwrun 
-Group=www-data+Group=www
 Type=oneshot Type=oneshot
  
-WorkingDirectory=/var/www/wiki+WorkingDirectory=/srv/www/wiki
  
-ExecStart='/usr/bin/git' -C '/var/www/wiki' gc --aggressive --prune='all' +ExecStart='/usr/bin/git' -C '/srv/www/wiki' gc --aggressive --prune='all' 
-ExecStart='/usr/bin/git' -C '/var/www/wiki' fsck --full --strict+ExecStart='/usr/bin/git' -C '/srv/www/wiki' fsck --full --strict
  
 ExecStartPost='/usr/bin/sync' ExecStartPost='/usr/bin/sync'
Line 348: Line 335:
 **** ****
  
-  sudo tar -czf ~/'dokuwiki-files-manual-'$(date +%Y-%m-%d)'.tar.gz' -C '/var/www/wiki' 'data/pages' 'data/meta' 'data/media' 'data/media_meta' 'data/attic' 'data/media_attic' 'conf'+  sudo tar -czf ~/'dokuwiki-files-manual-'$(date +%Y-%m-%d)'.tar.gz' -C '/srv/www/wiki' 'data/pages' 'data/meta' 'data/media' 'data/media_meta' 'data/attic' 'data/media_attic' 'conf'
  
 ===== scp ===== ===== scp =====
Line 374: Line 361:
 **** ****
  
-  ls ~/'dokuwiki-files-'*'.tar.gz' && sudo rm -Rf '/var/www/wiki/data/pages' '/var/www/wiki/data/meta' '/var/www/wiki/data/media' '/var/www/wiki/data/media_meta' '/var/www/wiki/data/attic' '/var/www/wiki/data/media_attic' '/var/www/wiki/conf'+  ls ~/'dokuwiki-files-'*'.tar.gz' && sudo rm -Rf '/srv/www/wiki/data/pages' '/srv/www/wiki/data/meta' '/srv/www/wiki/data/media' '/srv/www/wiki/data/media_meta' '/srv/www/wiki/data/attic' '/srv/www/wiki/data/media_attic' '/srv/www/wiki/conf'
  
 ===== Restore Files ===== ===== Restore Files =====
Line 380: Line 367:
 **** ****
  
-  sudo tar -xzf ~/'dokuwiki-files-'*'.tar.gz' -C '/var/www/wiki' 'data/pages' 'data/meta' 'data/media' 'data/media_meta' 'data/attic' 'data/media_attic' 'conf' && sudo chown -R 'www-data':'www-data' '/var/www/wiki' && sudo chmod -R '0755' '/var/www/wiki'+  sudo tar -xzf ~/'dokuwiki-files-'*'.tar.gz' -C '/srv/www/wiki' 'data/pages' 'data/meta' 'data/media' 'data/media_meta' 'data/attic' 'data/media_attic' 'conf' && sudo chown -R 'wwwrun':'www' '/srv/www/wiki' && sudo chmod -R '0755' '/srv/www/wiki'
  
 ===== Git Fix ===== ===== Git Fix =====
Line 386: Line 373:
   * :!: Set email for ''user.email''   * :!: Set email for ''user.email''
  
-  sudo su 'www-data' -s '/bin/bash'+  sudo su 'wwwrun' -s '/bin/bash
 + 
 +  rm -Rf '/srv/www/wiki/.git' 
 + 
 +  git -C '/srv/www/wiki' init --initial-branch='master' 
 + 
 +  git -C '/srv/www/wiki' add '.' 
 + 
 +  git -C '/srv/www/wiki' config 'user.email' 'espionage724@x'
  
-  rm -Rf '/var/www/wiki/.git'+  git -'/srv/www/wiki' commit --message='x'
  
-  git -C '/var/www/wiki' init --initial-branch='master'+  git -C '/srv/www/wiki' remote add 'origin' 'https://github.com/dokuwiki/dokuwiki.git'
  
-  git -C '/var/www/wiki' add '.'+  git -C '/srv/www/wiki' pull --depth '1--recurse-submodules 'origin' 'master' --rebase
  
-  git -C '/var/www/wiki' config 'user.email' 'espionage724@x'+  git -C '/srv/www/wiki' reset --hard 'origin/master'
  
-  git -C '/var/www/wiki' commit --message='x'+  git -C '/srv/www/wiki' gc --aggressive --prune='all'
  
-  git -C '/var/www/wiki' remote add 'origin' 'https://github.com/dokuwiki/dokuwiki.git'+  git -C '/srv/www/wiki' fsck --full --strict
  
-  git -C '/var/www/wiki' pull --depth '1' --recurse-submodules 'origin' 'master' --rebase+  exit
  
-  git -C '/var/www/wiki' reset --hard 'origin/master'+===== Indexer =====
  
-  git -'/var/www/wiki' gc --aggressive --prune='all'+  sudo su 'wwwrun' -'/bin/bash'
  
-  git -C '/var/www/wiki' fsck --full --strict+  cd '/srv/www/wiki' && '/usr/bin/php' '/srv/www/wiki/bin/indexer.php' --clear
  
   exit   exit
/usr/local/www/wiki/data/attic/servers/linux/nginx/dokuwiki.1766291596.txt.gz · Last modified: by Sean Rhone