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 [2026/04/30 22:05] – [FastCGI] Sean Rhoneservers:linux:nginx:dokuwiki [2026/07/10 20:54] (current) – [Server Block] Sean Rhone
Line 7: Line 7:
 ===== Prerequisites ===== ===== Prerequisites =====
  
-  * [[linux:distros:server:opensuse_tumbleweed_server|openSUSE Tumbleweed (Server)]]+  * [[linux:distros:server:arm: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 zypper install php8-bz2 php8-gd php8-intl php8-mbstring php8-sodium php8-zlib+  sudo zypper install php8-bz2 php8-gd php8-intl php8-mbstring php8-openssl php8-sodium php8-zlib
  
 ====== Download Source ====== ====== Download Source ======
Line 33: Line 33:
 <code> <code>
 [wiki] [wiki]
-listen = "/run/php-fpm/wiki.sock" 
- 
 user = "wwwrun" user = "wwwrun"
 group = "www" group = "www"
 +
 +listen = "/run/php-fpm/wiki.sock"
 listen.owner = "wwwrun" listen.owner = "wwwrun"
 listen.group = "www" listen.group = "www"
Line 45: Line 45:
 pm.process_idle_timeout = "30" pm.process_idle_timeout = "30"
  
-php_value[log_errors] = "Off"+php_value[log_errors] = "0"
 php_value[error_reporting] = "~E_ALL" php_value[error_reporting] = "~E_ALL"
-php_value[display_errors] = "Off+php_value[display_errors] = "0
-php_value[display_startup_errors] = "Off+php_value[display_startup_errors] = "0
-php_value[html_errors] = "Off"+php_value[html_errors] = "0"
  
 php_value[session.save_path] = "/var/lib/php8/sessions" php_value[session.save_path] = "/var/lib/php8/sessions"
Line 61: Line 61:
  
 <code> <code>
- location '~' '\.(php|phar)(/.*)?$'+location '~' '\.(php|phar)(/.*)?$'
-  fastcgi_split_path_info '^(.+\.(?:php|phar))(/.*)$'; + fastcgi_split_path_info '^(.+\.(?:php|phar))(/.*)$'; 
-  fastcgi_intercept_errors 'on'; + fastcgi_intercept_errors 'on'; 
-  fastcgi_index 'doku.php'; + fastcgi_index 'doku.php'; 
-  include 'fastcgi_params'; + include 'fastcgi_params'; 
-  fastcgi_param 'SCRIPT_FILENAME' '$document_root$fastcgi_script_name'; + fastcgi_param 'SCRIPT_FILENAME' '$document_root$fastcgi_script_name'; 
-  fastcgi_param 'PATH_INFO' '$fastcgi_path_info'; + fastcgi_param 'PATH_INFO' '$fastcgi_path_info'; 
-  fastcgi_param 'HTTPS' 'on'; + fastcgi_param 'HTTPS' 'on'; 
-  fastcgi_pass 'unix:/run/php-fpm/wiki.sock';+ fastcgi_pass 'unix:/run/php-fpm/wiki.sock'
 +
 + 
 +# End</code> 
 + 
 +===== Deny Directives ===== 
 + 
 +  * https://www.dokuwiki.org/security#web_access_security 
 + 
 +  sudo -e '/etc/nginx/default.d/dokuwiki-deny.conf' 
 + 
 +<code> 
 +# Web Access Security 
 +location = '/install.php'
 + deny 'all'; 
 +
 + 
 +location '~' '/(conf|bin|inc)/'
 + deny 'all'; 
 +
 + 
 +location '~' '/data/'
 + internal;
 } }
  
Line 80: Line 102:
 <code> <code>
 server { server {
- 
  listen '443' 'ssl';  listen '443' 'ssl';
  http2 'on';  http2 'on';
Line 89: Line 110:
  include '/etc/nginx/default.d/wiki.conf';  include '/etc/nginx/default.d/wiki.conf';
  include '/etc/nginx/default.d/headers.conf';  include '/etc/nginx/default.d/headers.conf';
- +# include '/etc/nginx/default.d/dokuwiki-deny.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';  add_header 'Content-Security-Policy' "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data:" 'always';
Line 96: Line 116:
 # access_log '/var/log/nginx/wiki-access.log'; # access_log '/var/log/nginx/wiki-access.log';
 # error_log '/var/log/nginx/wiki-error.log'; # error_log '/var/log/nginx/wiki-error.log';
- 
-# location = '/install.php' { 
-#  deny 'all'; 
-# } 
- 
-# location '~' '/(conf|bin|inc)/' { 
-#  deny 'all'; 
-# } 
- 
-# location '~' '/data/' { 
-#  internal; 
-# } 
  
  location '/' {  location '/' {
Line 119: Line 127:
   rewrite '^/(.*)' '/doku.php?id=$1&$args' 'last';   rewrite '^/(.*)' '/doku.php?id=$1&$args' 'last';
  }  }
- 
 } }
  
Line 136: Line 143:
   * The width of the full site: ''85%''   * The width of the full site: ''85%''
  
-===== nginx Server Block Deny Directives =====+===== nginx Deny Directive =====
  
-  * Uncomment commented sections (except logs)+  * Uncomment ''dokuwiki-deny.conf'' include
   * Do after initial setup   * Do after initial setup
  
Line 154: Line 161:
  
   echo '--      --' | sudo tee '/srv/www/wiki/conf/entities.local.conf' > '/dev/null' && sudo chown 'wwwrun':'www' '/srv/www/wiki/conf/entities.local.conf'   echo '--      --' | sudo tee '/srv/www/wiki/conf/entities.local.conf' > '/dev/null' && sudo chown 'wwwrun':'www' '/srv/www/wiki/conf/entities.local.conf'
- 
-====== Scripts ====== 
- 
-===== Git Fix ===== 
- 
-  * :!: 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 'wwwrun':'www' '/etc/nginx/scripts/wiki/git-fix.sh' 
- 
-<code> 
-#!/bin/bash 
- 
-cd '/tmp' 
- 
-'/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 '/srv/www/wiki' config 'user.email' 'espionage724@x' 
-######################################## 
- 
-'/usr/bin/git' -C '/srv/www/wiki' commit --message='x' 
- 
-'/usr/bin/git' -C '/srv/www/wiki' remote add 'origin' 'https://github.com/dokuwiki/dokuwiki.git' 
-'/usr/bin/git' -C '/srv/www/wiki' pull --depth '1' --recurse-submodules 'origin' 'master' --rebase 
- 
-'/usr/bin/git' -C '/srv/www/wiki' reset --hard 'origin/master' 
-'/usr/bin/git' -C '/srv/www/wiki' gc --aggressive --prune='all' 
-'/usr/bin/git' -C '/srv/www/wiki' fsck --full --strict 
- 
-# End</code> 
- 
-==== Execute ==== 
- 
-  sudo su 'wwwrun' -s '/bin/bash' 
- 
-  '/etc/nginx/scripts/wiki/git-fix.sh' 
- 
-  exit 
  
 ====== Services ====== ====== Services ======
Line 209: Line 176:
 Type=oneshot Type=oneshot
  
-WorkingDirectory=/srv/www/wiki+WorkingDirectory=/tmp
  
 ExecStart='/usr/bin/git' -C '/srv/www/wiki' reset --hard 'origin/master' ExecStart='/usr/bin/git' -C '/srv/www/wiki' reset --hard 'origin/master'
Line 215: Line 182:
  
 ExecStart='/usr/bin/php' '/srv/www/wiki/bin/indexer.php' --clear ExecStart='/usr/bin/php' '/srv/www/wiki/bin/indexer.php' --clear
-ExecStart='/usr/bin/touch' '/srv/www/wiki/conf/local.php'+ 
 +ExecStartPost='/usr/bin/touch' '/srv/www/wiki/conf/local.php'
  
 # End</code> # End</code>
Line 244: Line 212:
 ==== Service ==== ==== Service ====
  
-  * TODO: [[linux:notes:ext4]]+  * [[linux:notes:ext4|ext4 NAS]]
  
   mkdir -p ~/'backups' && sudo -e '/etc/systemd/system/wiki-fb.service' && sudo sed -i 's/CHANGEME/'$USER'/g' '/etc/systemd/system/wiki-fb.service'   mkdir -p ~/'backups' && sudo -e '/etc/systemd/system/wiki-fb.service' && sudo sed -i 's/CHANGEME/'$USER'/g' '/etc/systemd/system/wiki-fb.service'
Line 252: Line 220:
 Type=oneshot Type=oneshot
  
-WorkingDirectory=/srv/www/wiki+WorkingDirectory=/tmp
  
-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"'+ExecStart='/usr/bin/bash' -c '"/usr/bin/tar" -czf "/mnt/NAS1/Servers/Scheduled 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"' 
 + 
 +#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"'
  
 # End</code> # End</code>
Line 289: Line 259:
 Type=oneshot Type=oneshot
  
-WorkingDirectory=/srv/www/wiki+WorkingDirectory=/tmp
  
 ExecStart='/usr/bin/git' -C '/srv/www/wiki' gc --aggressive --prune='all' ExecStart='/usr/bin/git' -C '/srv/www/wiki' gc --aggressive --prune='all'
Line 320: Line 290:
  
 ===== Files ===== ===== Files =====
- 
-**** 
  
   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'   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 =====
- 
-**** 
  
   scp espionage724@192.168.1.152:~/'dokuwiki-files-'*'.tar.gz' ~/'Downloads'   scp espionage724@192.168.1.152:~/'dokuwiki-files-'*'.tar.gz' ~/'Downloads'
Line 334: Line 300:
  
 ===== scp ===== ===== scp =====
- 
-**** 
  
   scp ~/'Downloads/dokuwiki-files-'*'.tar.gz' espionage724@192.168.1.152:~   scp ~/'Downloads/dokuwiki-files-'*'.tar.gz' espionage724@192.168.1.152:~
  
 ===== Stop nginx ===== ===== Stop nginx =====
- 
-**** 
  
   sudo systemctl stop 'nginx'   sudo systemctl stop 'nginx'
  
 ===== Remove Existing Files ===== ===== Remove Existing Files =====
- 
-**** 
  
   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'   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 =====
- 
-**** 
  
   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'   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'
Line 363: Line 321:
   sudo su 'wwwrun' -s '/bin/bash'   sudo su 'wwwrun' -s '/bin/bash'
  
-  rm -Rf '/srv/www/wiki/.git'+  cd '/tmp' && rm -Rf '/srv/www/wiki/.git'
  
   git -C '/srv/www/wiki' init --initial-branch='master'   git -C '/srv/www/wiki' init --initial-branch='master'
Line 389: Line 347:
   sudo su 'wwwrun' -s '/bin/bash'   sudo su 'wwwrun' -s '/bin/bash'
  
-  cd '/srv/www/wiki' && '/usr/bin/php' '/srv/www/wiki/bin/indexer.php' --clear+  cd '/tmp' && '/usr/bin/php' '/srv/www/wiki/bin/indexer.php' --clear
  
   exit   exit
  
 ===== Start nginx ===== ===== Start nginx =====
- 
-**** 
  
   sudo systemctl start 'nginx'   sudo systemctl start 'nginx'
  
 ===== Clean-up ===== ===== Clean-up =====
- 
-**** 
  
   rm -fv ~/'dokuwiki-files-'*'.tar.gz'   rm -fv ~/'dokuwiki-files-'*'.tar.gz'
Line 407: Line 361:
 ====== TODOs ====== ====== TODOs ======
  
-  * https://www.dokuwiki.org/cli?s%5B%5D=wantedpages.php +===== Find Orphaned Pages ===== 
-  * https://www.dokuwiki.org/rewrite+ 
 +  * https://www.dokuwiki.org/cli#wantedpagesphp 
 + 
 +  sudo su 'wwwrun' -'/bin/bash' 
 + 
 +  cd '/tmp' && '/usr/bin/php' '/srv/www/wiki/bin/wantedpages.php
 + 
 +  cd '/tmp' && '/usr/bin/php' '/srv/www/wiki/bin/wantedpages.php' --help 
 + 
 +  exit
  
/usr/local/www/wiki/data/attic/servers/linux/nginx/dokuwiki.1777601141.txt.gz · Last modified: by Sean Rhone