servers:bsd:nginx:piwigo
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
servers:bsd:nginx:piwigo [2025/05/16 20:40] – Sean Rhone | servers:bsd:nginx:piwigo [2025/05/24 05:45] (current) – Sean Rhone | ||
---|---|---|---|
Line 3: | Line 3: | ||
* Piwigo ((https:// | * Piwigo ((https:// | ||
* Bootstrap Darkroom Theme ((https:// | * Bootstrap Darkroom Theme ((https:// | ||
- | * '' | ||
* [[Information: | * [[Information: | ||
* https:// | * https:// | ||
- | |||
- | * :!: WIP | ||
===== Prerequisites ===== | ===== Prerequisites ===== | ||
Line 24: | Line 21: | ||
su - | su - | ||
- | pkg install git-lite php84-mysqli | + | pkg install git-lite php84-exif php84-gd php84-mysqli |
====== Download Source ====== | ====== Download Source ====== | ||
Line 31: | Line 28: | ||
* https:// | * https:// | ||
- | | + | |
+ | |||
+ | | ||
+ | |||
+ | | ||
====== Database ====== | ====== Database ====== | ||
Line 51: | Line 52: | ||
===== PHP-FPM Socket ===== | ===== PHP-FPM Socket ===== | ||
- | | + | |
+ | |||
+ | ee '/usr/local/ | ||
< | < | ||
Line 57: | Line 60: | ||
; User/Group | ; User/Group | ||
- | user = nginx | + | user = www |
- | group = nginx | + | group = www |
; Socket | ; Socket | ||
- | listen = / | + | listen = 127.0.0.1:9003 |
- | listen.acl_users = nginx | + | |
listen.allowed_clients = 127.0.0.1 | listen.allowed_clients = 127.0.0.1 | ||
Line 69: | Line 71: | ||
pm.max_children = 4 | pm.max_children = 4 | ||
pm.process_idle_timeout = 30 | pm.process_idle_timeout = 30 | ||
- | |||
- | ; Fedora php.ini Defaults | ||
- | php_value[session.save_handler] = " | ||
- | php_value[session.save_path] = "/ | ||
; General | ; General | ||
Line 86: | Line 84: | ||
===== FastCGI ===== | ===== FastCGI ===== | ||
- | | + | |
+ | |||
+ | ee '/usr/local/ | ||
< | < | ||
Line 97: | Line 97: | ||
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_pass | + | |
- | }</ | + | |
+ | } | ||
+ | |||
+ | # End</ | ||
===== Server Block ===== | ===== Server Block ===== | ||
- | | + | |
- | | + | |
< | < | ||
server { | server { | ||
- | listen ' | + | listen ' |
+ | # | ||
server_name ' | server_name ' | ||
- | root '/var/ | + | root '/usr/local/ |
index ' | index ' | ||
- | include '/ | + | include '/usr/local/ |
- | include '/ | + | include '/usr/local/ |
# add_header Content-Security-Policy " | # add_header Content-Security-Policy " | ||
Line 132: | Line 136: | ||
} | } | ||
- | }</ | + | } |
+ | |||
+ | # End</ | ||
====== Initial Setup ====== | ====== Initial Setup ====== | ||
Line 172: | Line 178: | ||
// Minimal Logging | // Minimal Logging | ||
$conf[' | $conf[' | ||
+ | |||
+ | // Hide PHP Warnings | ||
+ | $conf[' | ||
// Header Links | // Header Links | ||
Line 177: | Line 186: | ||
' | ' | ||
' | ' | ||
- | ' | ||
' | ' | ||
- | ' | + | ' |
- | ' | + | ' |
); | ); | ||
Line 206: | Line 214: | ||
su -m ' | su -m ' | ||
- | ===== Etc ===== | + | ===== Maintenance |
+ | |||
+ | ==== Media ==== | ||
su - | su - | ||
Line 217: | Line 227: | ||
su -m ' | su -m ' | ||
+ | |||
+ | mariadb-check -u ' | ||
+ | |||
+ | ==== Theme ==== | ||
+ | |||
+ | su - | ||
su -m ' | su -m ' | ||
Line 225: | Line 241: | ||
su -m ' | su -m ' | ||
- | |||
- | ====== Services ====== | ||
- | |||
- | ===== Updater ===== | ||
- | |||
- | ==== Service ==== | ||
- | |||
- | sudo -e '/ | ||
- | |||
- | < | ||
- | [Service] | ||
- | User=nginx | ||
- | Group=nginx | ||
- | Type=oneshot | ||
- | WorkingDirectory=/ | ||
- | ExecStart='/ | ||
- | ExecStart='/ | ||
- | ExecStartPost='/ | ||
- | |||
- | ==== Timer ==== | ||
- | |||
- | * Every day at '' | ||
- | |||
- | sudo -e '/ | ||
- | |||
- | < | ||
- | [Unit] | ||
- | Description=Piwigo Updater | ||
- | After=network-online.target | ||
- | Wants=network-online.target | ||
- | |||
- | [Timer] | ||
- | OnCalendar=*-*-* 05:00:00 | ||
- | Persistent=true | ||
- | |||
- | [Install] | ||
- | WantedBy=timers.target</ | ||
- | |||
- | ===== Maintenance ===== | ||
- | |||
- | ==== Service ==== | ||
- | |||
- | sudo -e '/ | ||
- | |||
- | < | ||
- | [Service] | ||
- | User=nginx | ||
- | Group=nginx | ||
- | Type=oneshot | ||
- | ExecStart='/ | ||
- | ExecStart='/ | ||
- | ExecStart='/ | ||
- | ExecStart='/ | ||
- | ExecStartPost='/ | ||
- | |||
- | ==== Timer ==== | ||
- | |||
- | * '' | ||
- | |||
- | sudo -e '/ | ||
- | |||
- | < | ||
- | [Unit] | ||
- | Description=Piwigo Maintenance | ||
- | After=network-online.target | ||
- | Wants=network-online.target | ||
- | |||
- | [Timer] | ||
- | OnCalendar=*-*-01 05:20:00 | ||
- | Persistent=true | ||
- | |||
- | [Install] | ||
- | WantedBy=timers.target</ | ||
- | |||
- | ===== Backup ===== | ||
- | |||
- | ==== Files ==== | ||
- | |||
- | === Service === | ||
- | |||
- | mkdir -p ~/' | ||
- | |||
- | < | ||
- | [Service] | ||
- | Type=oneshot | ||
- | WorkingDirectory=/ | ||
- | ExecStart='/ | ||
- | ExecStartPost='/ | ||
- | |||
- | === Timer === | ||
- | |||
- | * '' | ||
- | |||
- | sudo -e '/ | ||
- | |||
- | < | ||
- | [Unit] | ||
- | Description=Piwigo Files Backup | ||
- | |||
- | [Timer] | ||
- | OnCalendar=*-*-01 05:35:00 | ||
- | Persistent=true | ||
- | |||
- | [Install] | ||
- | WantedBy=timers.target</ | ||
- | |||
- | ==== Database ==== | ||
- | |||
- | === Database Auth === | ||
- | |||
- | sudo mkdir -p '/ | ||
- | |||
- | < | ||
- | [mariadb-dump] | ||
- | user=piwigo | ||
- | password=x</ | ||
- | |||
- | === Service === | ||
- | |||
- | mkdir -p ~/' | ||
- | |||
- | < | ||
- | [Service] | ||
- | Type=oneshot | ||
- | WorkingDirectory=/ | ||
- | ExecStartPre='/ | ||
- | ExecStart='/ | ||
- | ExecStart='/ | ||
- | ExecStartPost='/ | ||
- | |||
- | === Timer === | ||
- | |||
- | * Every day at '' | ||
- | |||
- | sudo -e '/ | ||
- | |||
- | < | ||
- | [Unit] | ||
- | Description=Piwigo Database Backup | ||
- | After=mariadb.service | ||
- | |||
- | [Timer] | ||
- | OnCalendar=*-*-* 05: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 413: | Line 264: | ||
====== Restore ====== | ====== Restore ====== | ||
- | ===== Client | + | ===== scp ===== |
- | + | ||
- | ==== Uncompress Database ==== | + | |
- | + | ||
- | * This is only needed if restoring an **automated** database backup ((manual doesn' | + | |
- | + | ||
- | gunzip ~/' | + | |
- | + | ||
- | ==== Transfer Files To Server | + | |
**** | **** | ||
Line 427: | Line 270: | ||
scp ~/' | scp ~/' | ||
- | ==== Remove Files ==== | + | ===== Folder ===== |
- | + | ||
- | **** | + | |
- | + | ||
- | rm -f ~/' | + | |
- | + | ||
- | ===== Server ===== | + | |
- | + | ||
- | ==== Stop Services ==== | + | |
- | + | ||
- | **** | + | |
- | + | ||
- | sudo systemctl stop nginx php-fpm | + | |
- | + | ||
- | ==== Remove Previous | + | |
- | + | ||
- | **** | + | |
- | + | ||
- | sudo rm -Rf '/ | + | |
- | + | ||
- | ==== Restore Piwigo Folder ==== | + | |
- | + | ||
- | **** | + | |
- | + | ||
- | cd '/ | + | |
- | + | ||
- | ==== Drop Previous Database ==== | + | |
- | + | ||
- | sudo mariadb | + | |
- | + | ||
- | DROP DATABASE piwigo; | + | |
- | + | ||
- | FLUSH TABLES; | + | |
- | + | ||
- | EXIT | + | |
- | + | ||
- | ==== Re-create Databases ==== | + | |
- | + | ||
- | sudo mariadb | + | |
- | + | ||
- | CREATE DATABASE piwigo; | + | |
- | + | ||
- | EXIT | + | |
- | + | ||
- | ==== Restore Database ==== | + | |
- | + | ||
- | **** | + | |
- | + | ||
- | sudo mariadb ' | + | |
- | + | ||
- | ==== Reapply Permissions ==== | + | |
- | + | ||
- | sudo mariadb | + | |
- | + | ||
- | GRANT ALL PRIVILEGES ON piwigo.* to ' | + | |
- | + | ||
- | FLUSH PRIVILEGES; | + | |
- | + | ||
- | EXIT | + | |
- | + | ||
- | ==== Start Services ==== | + | |
- | + | ||
- | **** | + | |
- | + | ||
- | sudo systemctl start nginx php-fpm | + | |
- | + | ||
- | ==== Remove Backups ==== | + | |
- | + | ||
- | * Verify that Piwigo works before running | + | |
- | + | ||
- | rm ~/' | + | |
- | + | ||
- | ====== Restore ====== | + | |
- | + | ||
- | ===== Files ===== | + | |
su - | su - | ||
Line 507: | Line 276: | ||
rm -Rf '/ | rm -Rf '/ | ||
- | cd '/ | + | cd '/ |
===== Database ===== | ===== Database ===== | ||
Line 515: | Line 284: | ||
mariadb -u ' | mariadb -u ' | ||
- | mariadb -u ' | + | mariadb -u ' |
/srv/www/wiki/data/attic/servers/bsd/nginx/piwigo.1747442448.txt.gz · Last modified: by Sean Rhone