Both sides previous revisionPrevious revisionNext revision | Previous revision |
servers:linux:nginx:dokuwiki [2025/09/11 03:56] – [PHP-FPM Socket] Needs to be restart for listen.mode/probably etc Sean Rhone | servers:linux:nginx:dokuwiki [2025/09/11 18:52] (current) – [Download Source] Sean Rhone |
---|
* 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' '/srv/www/wiki' && sudo chown -R 'wwwrun':'www' '/srv/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 ====== |
| |
; User/Group | ; User/Group |
user = wwwrun | user = "wwwrun" |
group = www | group = "www" |
| |
; Socket | ; Socket |
listen = /run/php-fpm/wiki.sock | listen = "/run/php-fpm/wiki.sock" |
listen.owner = wwwrun | listen.owner = "wwwrun" |
listen.group = www | listen.group = "www" |
listen.mode = 0662 | listen.mode = "0662" |
| |
; Process Management | ; Process Management |
pm = ondemand | pm = "ondemand" |
pm.max_children = 4 | pm.max_children = "4" |
pm.process_idle_timeout = 30 | pm.process_idle_timeout = "30" |
| |
; openSUSE php.ini Defaults | ; openSUSE php.ini Defaults |
| |
; General | ; General |
| php_value[log_errors] = "0" |
| php_value[error_reporting] = "~E_ALL" |
php_value[date.timezone] = "America/New_York" | php_value[date.timezone] = "America/New_York" |
| |
Group=www | Group=www |
Type=oneshot | Type=oneshot |
| |
ExecStart='/usr/bin/git' -C '/srv/www/wiki' pull origin 'master' | ExecStart='/usr/bin/git' -C '/srv/www/wiki' pull origin 'master' |
| |
ExecStartPost='/usr/bin/touch' '/srv/www/wiki/conf/local.php' | ExecStartPost='/usr/bin/touch' '/srv/www/wiki/conf/local.php' |
ExecStartPost='/usr/bin/sync' | ExecStartPost='/usr/bin/sync' |
==== Timer ==== | ==== Timer ==== |
| |
* Every day at ''00:30:00'' | * Every day at ''00:00:00'' |
| |
sudo -e '/etc/systemd/system/wiki-up.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'wiki-up.timer' --now && sudo systemctl start 'wiki-up' && sudo systemctl status 'wiki-up' -l | sudo -e '/etc/systemd/system/wiki-up.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'wiki-up.timer' --now && sudo systemctl start 'wiki-up' && sudo systemctl status 'wiki-up' -l |
| |
[Timer] | [Timer] |
OnCalendar=*-*-* 00:30:00 | OnCalendar=*-*-* 00:00:00 |
Persistent=true | Persistent=true |
| |
# End</code> | # End</code> |
| |
===== Maintenance ===== | ===== Backup ===== |
| |
* https://www.dokuwiki.org/tips:maintenance | |
| |
==== Service ==== | ==== Service ==== |
| |
sudo -e '/etc/systemd/system/wiki-m.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' |
| |
<code> | <code> |
[Service] | [Service] |
User=wwwrun | |
Group=www | |
Type=oneshot | Type=oneshot |
WorkingDirectory=/srv/www/wiki | |
ExecStart='/usr/bin/git' -C '/srv/www/wiki' gc --aggressive --prune='all' | 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/git' -C '/srv/www/wiki' fsck --full --strict | |
ExecStart='/usr/bin/bash' -c "find '/srv/www/wiki/data'/{attic,cache,index,locks,media,media_attic,media_meta,meta,pages,tmp}/ -mindepth '1' -type 'd' -empty -delete" | |
ExecStart='/usr/bin/php' '/srv/www/wiki/bin/indexer.php' --clear | |
ExecStartPost='/usr/bin/sync' | ExecStartPost='/usr/bin/sync' |
| |
==== Timer ==== | ==== Timer ==== |
| |
* ''01'' day of every month at ''01:00:00'' | * Every day at ''00:15:00'' |
| |
sudo -e '/etc/systemd/system/wiki-m.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'wiki-m.timer' --now | sudo -e '/etc/systemd/system/wiki-fb.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'wiki-fb.timer' --now && sudo systemctl start 'wiki-fb' && sudo systemctl status 'wiki-fb' -l |
| |
<code> | <code> |
[Unit] | [Unit] |
Description=DokuWiki Maintenance | Description=DokuWiki Files Backup |
| |
[Timer] | [Timer] |
OnCalendar=*-*-01 01:00:00 | OnCalendar=*-*-* 00:15:00 |
Persistent=true | Persistent=true |
| |
# End</code> | # End</code> |
| |
===== Backup ===== | ===== Maintenance ===== |
| |
* This backs up an archive to the local disk | |
| |
==== Service ==== | ==== 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' | sudo -e '/etc/systemd/system/wiki-m.service' |
| |
<code> | <code> |
[Service] | [Service] |
| User=wwwrun |
| Group=www |
Type=oneshot | Type=oneshot |
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" "data/pages" "data/meta" "data/media" "data/media_meta" "data/attic" "data/media_attic" "conf"' | ExecStart='/usr/bin/git' -C '/srv/www/wiki' gc --aggressive --prune='all' |
| ExecStart='/usr/bin/git' -C '/srv/www/wiki' fsck --full --strict |
| |
| ExecStart='/usr/bin/bash' -c "find '/srv/www/wiki/data'/{attic,cache,index,locks,media,media_attic,media_meta,meta,pages,tmp}/ -mindepth '1' -type 'd' -empty -delete" |
| ExecStart='/usr/bin/php' '/srv/www/wiki/bin/indexer.php' --clear |
ExecStartPost='/usr/bin/sync' | ExecStartPost='/usr/bin/sync' |
| |
==== Timer ==== | ==== Timer ==== |
| |
* Every day at ''01:30:00'' | * ''01'' day of every month at ''00:30:00'' |
| |
sudo -e '/etc/systemd/system/wiki-fb.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'wiki-fb.timer' --now && sudo systemctl start 'wiki-fb' && sudo systemctl status 'wiki-fb' -l | sudo -e '/etc/systemd/system/wiki-m.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'wiki-m.timer' --now |
| |
<code> | <code> |
[Unit] | [Unit] |
Description=DokuWiki Files Backup | Description=DokuWiki Maintenance |
| |
[Timer] | [Timer] |
OnCalendar=*-*-* 01:30:00 | OnCalendar=*-*-01 00:30:00 |
Persistent=true | Persistent=true |
| |
| |
# End</code> | # End</code> |
| |
| sudo systemctl start 'wiki-m' && sudo systemctl status 'wiki-m' -l |
| |
====== Backup ====== | ====== Backup ====== |
| |
* Create backup archive on server and transfer to client computer | ===== Files ===== |
| |
===== Server ===== | |
| |
==== Archive Folders ==== | |
| |
**** | **** |
| |
cd '/srv/www/wiki' && sudo tar -cvzf ~/'dokuwiki-files-manual-'$(date +%Y-%m-%d)'.tar.gz' 'data/pages' 'data/meta' 'data/media' 'data/media_meta' 'data/attic' 'data/media_attic' 'conf' && cd ~ && sync | 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' |
| |
===== Client ===== | |
| |
==== Transfer Archive to Client ==== | ===== scp ===== |
| |
**** | **** |
| |
scp espionage724@192.168.1.152:~/'dokuwiki-files-'*'.tar.gz' ~/'Downloads' && sync | scp espionage724@192.168.1.152:~/'dokuwiki-files-'*'.tar.gz' ~/'Downloads' |
| |
====== Restore ====== | ====== Restore ====== |
| |
===== Client ===== | ===== scp ===== |
| |
==== Transfer Archive to Server ==== | |
| |
**** | **** |
scp ~/'Downloads/dokuwiki-files-'*'.tar.gz' espionage724@192.168.1.152:~ | scp ~/'Downloads/dokuwiki-files-'*'.tar.gz' espionage724@192.168.1.152:~ |
| |
==== Remove Archive ==== | ===== Stop nginx ===== |
| |
**** | **** |
| |
rm ~/'Downloads/dokuwiki-files-'*'.tar.gz' && sync | sudo systemctl stop 'nginx' |
| |
===== Server ===== | |
| |
==== Stop nginx ==== | ===== Remove Existing Files ===== |
| |
**** | **** |
| |
sudo systemctl stop 'nginx' | 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' |
| |
==== Remove Previous Folders ==== | ===== Restore 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' | 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' '/srv/www/wiki' && sudo chmod -R '0755' '/srv/www/wiki' |
| |
==== Restore Folders ==== | ===== dos2unix ===== |
| |
* TODO: ''tar -C or --directory='' | **** |
| |
cd '/srv/www/wiki' && sudo tar -xvzf ~/'dokuwiki-files-'*'.tar.gz' 'data/pages' 'data/meta' 'data/media' 'data/media_meta' 'data/attic' 'data/media_attic' 'conf' && sudo chown -R 'wwwrun' '/srv/www/wiki' && cd ~ && sync | find '/srv/www/wiki' -type f -print0 | sudo xargs -0 dos2unix -- && sudo chown -R 'wwwrun':'www' '/srv/www/wiki' && sudo chmod -R '0755' '/srv/www/wiki' |
| |
==== Start nginx ==== | ===== Start nginx ===== |
| |
**** | **** |
sudo systemctl start 'nginx' | sudo systemctl start 'nginx' |
| |
==== Remove Archive ==== | ===== Clean-up ===== |
| |
* Verify that DokuWiki works before running | **** |
| |
rm -R ~/'dokuwiki-files-'*'.tar.gz' && sync | rm -fv ~/'dokuwiki-files-'*'.tar.gz' |
| |