servers:bsd:nginx:wordpress
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
servers:bsd:nginx:wordpress [2025/05/16 19:44] – Sean Rhone | servers:bsd:nginx:wordpress [2025/05/24 05:32] (current) – Sean Rhone | ||
---|---|---|---|
Line 4: | Line 4: | ||
* [[Information: | * [[Information: | ||
* https:// | * https:// | ||
- | |||
- | * 2025/05/16: WIP | ||
===== Prerequisites ===== | ===== Prerequisites ===== | ||
Line 24: | Line 22: | ||
====== Download Source ====== | ====== Download Source ====== | ||
+ | |||
+ | * https:// | ||
su - | su - | ||
Line 95: | Line 95: | ||
===== Server Block ===== | ===== Server Block ===== | ||
- | | + | |
- | | + | |
< | < | ||
server { | server { | ||
- | listen | + | listen 443 ssl; |
+ | # | ||
server_name ' | server_name ' | ||
- | root '/var/ | + | root '/usr/local/ |
index ' | index ' | ||
- | include '/ | + | include '/usr/local/ |
- | include '/ | + | include '/usr/local/ |
client_max_body_size ' | client_max_body_size ' | ||
Line 113: | Line 114: | ||
# add_header Content-Security-Policy " | # add_header Content-Security-Policy " | ||
- | # access_log | + | # access_log |
- | # error_log | + | # error_log |
location / { | location / { | ||
Line 125: | Line 126: | ||
access_log off; log_not_found off; expires max; | access_log off; log_not_found off; expires max; | ||
} | } | ||
- | }</ | + | } |
+ | |||
+ | # End</ | ||
====== Initial Setup ====== | ====== Initial Setup ====== | ||
Line 135: | Line 138: | ||
* Date Format: Y/m/d | * Date Format: Y/m/d | ||
- | ====== Services ====== | + | ===== DB Connection Fix ===== |
- | ===== Updater ===== | + | * https:// |
+ | * '' | ||
- | ==== Service ==== | + | su - |
- | | + | |
- | < | + | < |
- | [Service] | + | |
- | User=nginx | + | |
- | Group=nginx | + | |
- | Type=oneshot | + | |
- | ExecStart='/ | + | |
- | ExecStartPost='/ | + | |
- | ==== Timer ==== | + | < |
- | * Every day at '' | + | ====== Temp Commands ====== |
- | sudo -e '/ | + | ===== Update ===== |
- | < | + | * https:// |
- | [Unit] | + | |
- | Description=WordPress Git Updater | + | |
- | After=network-online.target | + | |
- | Wants=network-online.target | + | |
- | [Timer] | + | su - |
- | OnCalendar=*-*-* 04:00:00 | + | |
- | Persistent=true | + | |
- | [Install] | + | su -m ' |
- | WantedBy=timers.target< | + | |
===== Maintenance ===== | ===== Maintenance ===== | ||
- | ==== Service ==== | + | su - |
- | | + | |
- | < | + | su -m ' |
- | [Service] | + | |
- | User=nginx | + | |
- | Group=nginx | + | |
- | Type=oneshot | + | |
- | ExecStart='/ | + | |
- | ExecStart='/ | + | |
- | ExecStartPost='/ | + | |
- | ==== Timer ==== | + | su -m ' |
- | | + | |
- | | + | mariadb-check -u 'root' -p -o -f -e --auto-repair |
- | + | ||
- | < | + | |
- | [Unit] | + | |
- | Description=WordPress Maintenance | + | |
- | After=network-online.target | + | |
- | Wants=network-online.target | + | |
- | + | ||
- | [Timer] | + | |
- | OnCalendar=*-*-01 04:20:00 | + | |
- | Persistent=true | + | |
- | + | ||
- | [Install] | + | |
- | WantedBy=timers.target</ | + | |
- | + | ||
- | ===== Backup ===== | + | |
- | + | ||
- | ==== Files ==== | + | |
- | + | ||
- | === Service === | + | |
- | + | ||
- | mkdir -p ~/' | + | |
- | + | ||
- | < | + | |
- | [Service] | + | |
- | Type=oneshot | + | |
- | WorkingDirectory=/ | + | |
- | ExecStart='/ | + | |
- | ExecStartPost='/ | + | |
- | + | ||
- | === Timer === | + | |
- | + | ||
- | * '' | + | |
- | + | ||
- | sudo -e '/ | + | |
- | + | ||
- | < | + | |
- | [Unit] | + | |
- | Description=WordPress Files Backup | + | |
- | + | ||
- | [Timer] | + | |
- | OnCalendar=*-*-01 04:35:00 | + | |
- | Persistent=true | + | |
- | + | ||
- | [Install] | + | |
- | WantedBy=timers.target</ | + | |
- | + | ||
- | ==== Database ==== | + | |
- | + | ||
- | === Database Auth === | + | |
- | + | ||
- | sudo mkdir -p '/ | + | |
- | + | ||
- | < | + | |
- | [mariadb-dump] | + | |
- | user=wordpress | + | |
- | password=x</ | + | |
- | + | ||
- | === Service === | + | |
- | + | ||
- | mkdir -p ~/'backups' | + | |
- | + | ||
- | < | + | |
- | [Service] | + | |
- | Type=oneshot | + | |
- | WorkingDirectory=/ | + | |
- | ExecStartPre='/ | + | |
- | ExecStart='/ | + | |
- | ExecStart='/ | + | |
- | ExecStartPost='/ | + | |
- | + | ||
- | === Timer === | + | |
- | + | ||
- | * Every day at '' | + | |
- | + | ||
- | sudo -e '/ | + | |
- | + | ||
- | < | + | |
- | [Unit] | + | |
- | Description=WordPress Database Backup | + | |
- | After=mariadb.service | + | |
- | + | ||
- | [Timer] | + | |
- | OnCalendar=*-*-* 04:45:00 | + | |
- | Persistent=true | + | |
- | + | ||
- | [Install] | + | |
- | WantedBy=timers.target</ | + | |
====== Backup ====== | ====== Backup ====== | ||
- | * Create backup archive on server and transfer to client computer | + | ===== Folder ===== |
- | ===== Server ===== | + | su - |
- | ==== Stop Services ==== | + | cd '/ |
- | **** | + | ===== Database ===== |
- | + | ||
- | sudo systemctl stop nginx php-fpm | + | |
- | + | ||
- | ==== Backup Folder | + | |
**** | **** | ||
- | | + | |
- | ==== Backup Database | + | ===== scp ===== |
- | + | ||
- | **** | + | |
- | + | ||
- | sudo mariadb-dump --defaults-extra-file='/ | + | |
- | + | ||
- | ==== Start Services ==== | + | |
- | + | ||
- | **** | + | |
- | + | ||
- | sudo systemctl start nginx php-fpm | + | |
- | + | ||
- | ===== Client ===== | + | |
- | + | ||
- | ==== Transfer Files To Client | + | |
**** | **** | ||
Line 318: | Line 197: | ||
====== Restore ====== | ====== Restore ====== | ||
- | ===== Client | + | ===== scp ===== |
- | + | ||
- | ==== Uncompress Database ==== | + | |
- | + | ||
- | * This is only needed if restoring an **automated** database backup ((manual doesn' | + | |
- | + | ||
- | gunzip ~/' | + | |
- | + | ||
- | ==== Transfer Files To Server | + | |
**** | **** | ||
Line 332: | Line 203: | ||
scp ~/' | scp ~/' | ||
- | ==== Remove Files ==== | + | ===== Folder ===== |
- | **** | + | su - |
- | rm -f ~/'Downloads/wordpress-files-' | + | rm -Rf '/usr/local/www/blog' |
- | ===== Server ===== | + | cd '/usr/local/www' && tar -xvzf '/ |
- | + | ||
- | ==== Stop Services ==== | + | |
- | + | ||
- | **** | + | |
- | + | ||
- | sudo systemctl stop nginx php-fpm | + | |
- | + | ||
- | ==== Remove Previous Folder ==== | + | |
- | + | ||
- | **** | + | |
- | + | ||
- | sudo rm -Rf '/var/ | + | |
- | + | ||
- | ==== Restore WordPress Folder ==== | + | |
- | + | ||
- | **** | + | |
- | + | ||
- | cd '/var/www' && | + | |
- | + | ||
- | ==== Drop Previous Database ==== | + | |
- | + | ||
- | sudo mariadb | + | |
- | + | ||
- | DROP DATABASE wordpress; | + | |
- | + | ||
- | FLUSH TABLES; | + | |
- | + | ||
- | EXIT | + | |
- | + | ||
- | ==== Re-create Databases ==== | + | |
- | + | ||
- | sudo mariadb | + | |
- | + | ||
- | CREATE DATABASE wordpress; | + | |
- | + | ||
- | EXIT | + | |
- | + | ||
- | ==== Restore Database ==== | + | |
- | + | ||
- | **** | + | |
- | + | ||
- | sudo mariadb ' | + | |
- | + | ||
- | ==== Reapply Permissions ==== | + | |
- | + | ||
- | sudo mariadb | + | |
- | + | ||
- | GRANT ALL PRIVILEGES ON wordpress.* to ' | + | |
- | + | ||
- | FLUSH PRIVILEGES; | + | |
- | + | ||
- | EXIT | + | |
- | + | ||
- | ==== Start Services ==== | + | |
- | + | ||
- | **** | + | |
- | sudo systemctl start nginx php-fpm | + | ===== Database ===== |
- | ==== Remove Backups ==== | + | * [[# |
- | | + | |
- | | + | |
/srv/www/wiki/data/attic/servers/bsd/nginx/wordpress.1747439067.txt.gz · Last modified: by Sean Rhone