| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| servers:bsd:nginx:piwigo [2025/05/16 21:39] – external edit 127.0.0.1 | servers:bsd:nginx:piwigo [2025/10/31 02:11] (current) – Sean Rhone |
|---|
| * Piwigo ((https://piwigo.org/)) | * Piwigo ((https://piwigo.org/)) |
| * Bootstrap Darkroom Theme ((https://github.com/Piwigo/piwigo-bootstrap-darkroom)) | * Bootstrap Darkroom Theme ((https://github.com/Piwigo/piwigo-bootstrap-darkroom)) |
| * ''master'' Branches ((https://github.com/Piwigo/Piwigo/tree/master)) ((https://github.com/Piwigo/piwigo-bootstrap-darkroom/tree/master)) | |
| * [[Information:Realm of Espionage]] | * [[Information:Realm of Espionage]] |
| * https://media.realmofespionage.xyz | * https://media.realmofespionage.xyz |
| |
| * :!: WIP | |
| |
| ===== Prerequisites ===== | ===== Prerequisites ===== |
| |
| * [[bsd:server:freebsd_14.2|FreeBSD 14.2]] | * [[bsd:server:freebsd_15.0|FreeBSD 15.0]] |
| * [[servers:bsd:mariadb|MariaDB]] | * [[servers:bsd:freenginx_php_php-fpm|freenginx + PHP + PHP-FPM]] |
| * [[servers:bsd:nginx_php_php-fpm|nginx + PHP + PHP-FPM]] | |
| * [[servers:bsd:nginx:lets_encrypt|Let's Encrypt]] | * [[servers:bsd:nginx:lets_encrypt|Let's Encrypt]] |
| | * [[servers:bsd:mariadb|MariaDB]] |
| |
| ====== Dependencies ====== | ====== Dependencies ====== |
| su - | su - |
| |
| pkg install git-lite php84-exif php84-gd php84-mysqli php84-mbstring | pkg install git-lite php85-exif php85-gd php85-mysqli php85-mbstring |
| |
| ====== Download Source ====== | ====== Download Source ====== |
| su - | su - |
| |
| git clone --branch 'master' --depth '1' --recurse-submodules 'https://github.com/Piwigo/Piwigo.git' '/usr/local/www/media' && chown -R 'www':'www' '/usr/local/www/media' && sync | git clone --branch 'master' --depth '1' --recurse-submodules 'https://github.com/Piwigo/Piwigo.git' '/usr/local/www/media' && chown -R 'www':'www' '/usr/local/www/media' |
| |
| git clone --branch 'master' --depth '1' --recurse-submodules 'https://github.com/Piwigo/piwigo-bootstrap-darkroom.git' '/usr/local/www/media/themes/bootstrap_darkroom' && chown -R 'www':'www' '/usr/local/www/media' && sync | git clone --branch 'master' --depth '1' --recurse-submodules 'https://github.com/Piwigo/piwigo-bootstrap-darkroom.git' '/usr/local/www/media/themes/bootstrap_darkroom' && chown -R 'www':'www' '/usr/local/www/media' |
| |
| ====== Database ====== | ====== Database ====== |
| |
| mariadb -u 'root' -p | su - |
| | |
| | mariadb |
| |
| CREATE DATABASE piwigo; | CREATE DATABASE piwigo; |
| GRANT ALL PRIVILEGES ON piwigo.* to piwigo@localhost; | GRANT ALL PRIVILEGES ON piwigo.* to piwigo@localhost; |
| |
| FLUSH PRIVILEGES; | FLUSH PRIVILEGES;EXIT; |
| | |
| EXIT | |
| |
| ====== nginx + PHP-FPM Configuration ====== | ====== nginx + PHP-FPM Configuration ====== |
| su - | su - |
| |
| ee '/usr/local/etc/php-fpm.d/media.conf' && service 'php_fpm' restart | ee '/usr/local/etc/php-fpm.d/media.conf' && service 'php_fpm' reload |
| |
| <code> | <code> |
| php_value[upload_max_filesize] = "20M" | php_value[upload_max_filesize] = "20M" |
| php_value[max_file_uploads] = "100" | php_value[max_file_uploads] = "100" |
| | |
| | ; Errors |
| | php_value[error_reporting] = "~E_ALL" |
| | php_value[display_errors] = "Off" |
| |
| ; End</code> | ; End</code> |
| su - | su - |
| |
| ee '/usr/local/etc/nginx/default.d/media.conf' | ee '/usr/local/etc/freenginx/default.d/media.conf' |
| |
| <code> | <code> |
| # PHP-FPM | |
| location ~ \.(php|phar)(/.*)?$ { | location ~ \.(php|phar)(/.*)?$ { |
| fastcgi_split_path_info ^(.+\.(?:php|phar))(/.*)$; | fastcgi_split_path_info ^(.+\.(?:php|phar))(/.*)$; |
| su - | su - |
| |
| ee '/usr/local/etc/nginx/vhosts.d/media.conf' && service 'nginx' reload && sync | ee '/usr/local/etc/freenginx/vhosts.d/media.conf' && service 'nginx' reload && sync |
| |
| <code> | <code> |
| server { | server { |
| listen '443' 'ssl'; | listen '443' 'ssl'; |
| # http2 'on'; | http2 'on'; |
| server_name 'media.realmofespionage.xyz'; | server_name 'media.realmofespionage.xyz'; |
| root '/usr/local/www/media'; | root '/usr/local/www/media'; |
| index 'index.php'; | index 'index.php'; |
| |
| include '/usr/local/etc/nginx/default.d/media.conf'; | include '/usr/local/etc/freenginx/default.d/media.conf'; |
| include '/usr/local/etc/nginx/default.d/headers.conf'; | include '/usr/local/etc/freenginx/default.d/headers.conf'; |
| |
| # add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'" always; | |
| # add_header Content-Security-Policy "default-src 'self' https://piwigo.org/ext/upload/; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'" always; | |
| # access_log /var/log/nginx/media-access.log; | # access_log /var/log/nginx/media-access.log; |
| # error_log /var/log/nginx/media-error.log; | # error_log /var/log/nginx/media-error.log; |
| rewrite ^/i((/|$).*)$ /i.php$1 last; | rewrite ^/i((/|$).*)$ /i.php$1 last; |
| } | } |
| |
| } | } |
| |
| su - | su - |
| |
| ee '/usr/local/www/media/local/config/config.inc.php' && chown 'www':'www' '/usr/local/www/media/local/config/config.inc.php' | su -m 'www' -c "ee '/usr/local/www/media/local/config/config.inc.php'" |
| |
| <code> | <code> |
| // Minimal Logging | // Minimal Logging |
| $conf['log_level'] = 'EMERGENCY'; | $conf['log_level'] = 'EMERGENCY'; |
| | |
| | // Hide PHP Warnings |
| | $conf['show_php_errors'] = '0'; |
| |
| // Header Links | // Header Links |
| 'https://realmofespionage.xyz' => 'Realm of Espionage', | 'https://realmofespionage.xyz' => 'Realm of Espionage', |
| 'https://wiki.realmofespionage.xyz' => 'RoE | Wiki', | 'https://wiki.realmofespionage.xyz' => 'RoE | Wiki', |
| 'https://social.realmofespionage.xyz/profile/espionage724' => 'RoE | Social', | |
| 'https://blog.realmofespionage.xyz' => 'RoE | Blog', | 'https://blog.realmofespionage.xyz' => 'RoE | Blog', |
| 'https://wiki.realmofespionage.xyz/personal:social_media' => 'Webmaster Info', | 'https://wiki.realmofespionage.xyz/user:espionage724' => 'Webmaster Info', |
| 'https://wiki.realmofespionage.xyz/servers:nginx:piwigo' => 'Instance Configuration Notes', | 'https://wiki.realmofespionage.xyz/servers:bsd:nginx:piwigo' => 'Instance Configuration Notes', |
| ); | ); |
| |
| ?></code> | ?></code> |
| |
| ====== Temp Commands ====== | ====== Scripts ====== |
| | |
| ===== Update ===== | |
| | |
| * https://github.com/Piwigo/Piwigo/commits/master/ | |
| * https://github.com/Piwigo/piwigo-bootstrap-darkroom/commits/master/ | |
| | |
| su - | |
| | |
| su -m 'www' -c "'/usr/local/bin/git' -C '/usr/local/www/media' pull origin 'master'" | |
| | |
| su -m 'www' -c "'/usr/local/bin/git' -C '/usr/local/www/media/themes/bootstrap_darkroom' pull origin 'master'" | |
| | |
| ===== Etc ===== | |
| | |
| ==== Media ==== | |
| | |
| su - | |
| | |
| su -m 'www' -c "'/usr/local/bin/git' -C '/usr/local/www/media' reset --hard" | |
| | |
| su -m 'www' -c "'/usr/local/bin/git' -C '/usr/local/www/media' pull origin 'master' --rebase" | |
| | |
| su -m 'www' -c "'/usr/local/bin/git' -C '/usr/local/www/media' gc --aggressive --prune='all'" | |
| | |
| su -m 'www' -c "'/usr/local/bin/git' -C '/usr/local/www/media' fsck --full --strict" | |
| | |
| su -m 'www' -c "'/usr/local/bin/git' -C '/usr/local/www/media' rm --cached -r ." | |
| | |
| su -m 'www' -c "'/usr/local/bin/git' -C '/usr/local/www/media' add --renormalize ." | |
| | |
| ==== Theme ==== | |
| | |
| su - | |
| | |
| su -m 'www' -c "'/usr/local/bin/git' -C '/usr/local/www/media/themes/bootstrap_darkroom' reset --hard" | |
| | |
| su -m 'www' -c "'/usr/local/bin/git' -C '/usr/local/www/media/themes/bootstrap_darkroom' pull origin 'master' --rebase" | |
| | |
| su -m 'www' -c "'/usr/local/bin/git' -C '/usr/local/www/media/themes/bootstrap_darkroom' gc --aggressive --prune='all'" | |
| | |
| su -m 'www' -c "'/usr/local/bin/git' -C '/usr/local/www/media/themes/bootstrap_darkroom' fsck --full --strict" | |
| | |
| su -m 'www' -c "'/usr/local/bin/git' -C '/usr/local/www/media/themes/bootstrap_darkroom' rm --cached -r ." | |
| | |
| su -m 'www' -c "'/usr/local/bin/git' -C '/usr/local/www/media/themes/bootstrap_darkroom' add --renormalize ." | |
| | |
| ====== Services ====== | |
| |
| ===== Updater ===== | ===== Updater ===== |
| |
| ==== Service ==== | mkdir -p ~/'.local/scripts/www/media' && ee ~/'.local/scripts/www/media/updater.sh' && chmod +x ~/'.local/scripts/www/media/updater.sh' |
| | |
| sudo -e '/etc/systemd/system/media-up.service' | |
| |
| <code> | <code> |
| [Service] | #!/bin/sh |
| User=nginx | |
| Group=nginx | |
| Type=oneshot | |
| WorkingDirectory=/var/www/media | |
| ExecStart='/usr/bin/git' -C '/var/www/media' pull origin 'master' | |
| ExecStart='/usr/bin/git' -C '/var/www/media/themes/bootstrap_darkroom' pull origin 'master' | |
| ExecStartPost='/usr/bin/sync'</code> | |
| |
| ==== Timer ==== | su -m 'www' -c "git -C '/usr/local/www/media' reset --hard 'origin/master'" |
| | su -m 'www' -c "git -C '/usr/local/www/media' pull 'origin' 'master' --rebase" |
| |
| * Every day at ''05:00:00'' | su -m 'www' -c "git -C '/usr/local/www/media/themes/bootstrap_darkroom' reset --hard 'origin/master'" |
| | su -m 'www' -c "git -C '/usr/local/www/media/themes/bootstrap_darkroom' pull 'origin' 'master' --rebase" |
| |
| sudo -e '/etc/systemd/system/media-up.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'media-up.timer' --now && sudo systemctl start 'media-up' && sudo systemctl status 'media-up' -l | # End</code> |
| |
| <code> | ~/'.local/scripts/www/media/updater.sh' |
| [Unit] | |
| Description=Piwigo Updater | |
| After=network-online.target | |
| Wants=network-online.target | |
| |
| [Timer] | su 'root' -c ~/'.local/scripts/www/media/updater.sh' |
| OnCalendar=*-*-* 05:00:00 | |
| Persistent=true | |
| | |
| [Install] | |
| WantedBy=timers.target</code> | |
| |
| ===== Maintenance ===== | ===== Maintenance ===== |
| |
| ==== Service ==== | mkdir -p ~/'.local/scripts/www/media' && ee ~/'.local/scripts/www/media/maintenance.sh' && chmod +x ~/'.local/scripts/www/media/maintenance.sh' |
| | |
| sudo -e '/etc/systemd/system/media-m.service' | |
| |
| <code> | <code> |
| [Service] | #!/bin/sh |
| User=nginx | |
| Group=nginx | |
| Type=oneshot | |
| ExecStart='/usr/bin/git' -C '/var/www/media' gc --aggressive --prune='all' | |
| ExecStart='/usr/bin/git' -C '/var/www/media' fsck --full --strict | |
| ExecStart='/usr/bin/git' -C '/var/www/media/themes/bootstrap_darkroom' gc --aggressive --prune='all' | |
| ExecStart='/usr/bin/git' -C '/var/www/media/themes/bootstrap_darkroom' fsck --full --strict | |
| ExecStartPost='/usr/bin/sync'</code> | |
| |
| ==== Timer ==== | su -m 'www' -c "'/usr/local/bin/git' -C '/usr/local/www/media' gc --aggressive --prune='all'" |
| | su -m 'www' -c "'/usr/local/bin/git' -C '/usr/local/www/media' fsck --full --strict" |
| |
| * ''01'' day of every month at ''05:20:00'' | su -m 'www' -c "'/usr/local/bin/git' -C '/usr/local/www/media/themes/bootstrap_darkroom' gc --aggressive --prune='all'" |
| | su -m 'www' -c "'/usr/local/bin/git' -C '/usr/local/www/media/themes/bootstrap_darkroom' fsck --full --strict" |
| |
| sudo -e '/etc/systemd/system/media-m.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'media-m.timer' --now && sudo systemctl start 'media-m' && sudo systemctl status 'media-m' -l | '/usr/local/bin/mariadb-check' -o -f -e --auto-repair 'piwigo' |
| |
| <code> | # End</code> |
| [Unit] | |
| Description=Piwigo Maintenance | |
| After=network-online.target | |
| Wants=network-online.target | |
| |
| [Timer] | ~/'.local/scripts/www/media/maintenance.sh' |
| OnCalendar=*-*-01 05:20:00 | |
| Persistent=true | |
| |
| [Install] | su 'root' -c ~/'.local/scripts/www/media/maintenance.sh' |
| WantedBy=timers.target</code> | |
| |
| ===== Backup ===== | ===== Git Fix ===== |
| |
| ==== Files ==== | * :!: Set email for both ''user.email'' |
| |
| === Service === | mkdir -p ~/'.local/scripts/www/media' && ee ~/'.local/scripts/www/media/git-fix.sh' && chmod +x ~/'.local/scripts/www/media/git-fix.sh' |
| | |
| mkdir -p ~/'backups' && sudo -e '/etc/systemd/system/media-fb.service' && sudo sed -i 's/CHANGEME/'$USER'/g' '/etc/systemd/system/media-fb.service' | |
| |
| <code> | <code> |
| [Service] | #!/bin/sh |
| Type=oneshot | |
| WorkingDirectory=/var/www | |
| ExecStart='/usr/bin/bash' -c '"/usr/bin/tar" -czf "/home/CHANGEME/backups/piwigo-files-auto-"$$(date +%%Y-%%m-%%d)".tar.gz" "media"' | |
| ExecStartPost='/usr/bin/sync'</code> | |
| |
| === Timer === | su -m 'www' -c "rm -Rf '/usr/local/www/media/.git'" |
| | su -m 'www' -c "git -C '/usr/local/www/media' init --initial-branch='master'" |
| | su -m 'www' -c "git -C '/usr/local/www/media' add '.'" |
| |
| * ''01'' day of every month at ''05:35:00'' | ################################################## |
| | su -m 'www' -c "git -C '/usr/local/www/media' config 'user.email' 'espionage724@x'" |
| | ################################################## |
| |
| sudo -e '/etc/systemd/system/media-fb.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'media-fb.timer' --now && sudo systemctl start 'media-fb' && sudo systemctl status 'media-fb' -l | su -m 'www' -c "git -C '/usr/local/www/media' commit --message='x'" |
| |
| <code> | su -m 'www' -c "git -C '/usr/local/www/media' remote add 'origin' 'https://github.com/Piwigo/Piwigo.git'" |
| [Unit] | su -m 'www' -c "git -C '/usr/local/www/media' pull --depth '1' --recurse-submodules 'origin' 'master' --rebase" |
| Description=Piwigo Files Backup | |
| |
| [Timer] | su -m 'www' -c "git -C '/usr/local/www/media' reset --hard 'origin/master'" |
| OnCalendar=*-*-01 05:35:00 | su -m 'www' -c "git -C '/usr/local/www/media' gc --aggressive --prune='all'" |
| Persistent=true | su -m 'www' -c "git -C '/usr/local/www/media' fsck --full --strict" |
| |
| [Install] | su -m 'www' -c "rm -Rf '/usr/local/www/media/themes/bootstrap_darkroom/.git'" |
| WantedBy=timers.target</code> | su -m 'www' -c "git -C '/usr/local/www/media/themes/bootstrap_darkroom' init --initial-branch='master'" |
| | su -m 'www' -c "git -C '/usr/local/www/media/themes/bootstrap_darkroom' add '.'" |
| |
| ==== Database ==== | ################################################## |
| | su -m 'www' -c "git -C '/usr/local/www/media/themes/bootstrap_darkroom' config 'user.email' 'espionage724@x'" |
| | ################################################## |
| |
| === Database Auth === | su -m 'www' -c "git -C '/usr/local/www/media/themes/bootstrap_darkroom' commit --message='x'" |
| |
| sudo mkdir -p '/var/lib/mysql/auth' && sudo -e '/var/lib/mysql/auth/piwigo' && sudo chown -R 'mysql':'mysql' '/var/lib/mysql/auth/piwigo' && sudo chmod '600' '/var/lib/mysql/auth/piwigo' && sync | su -m 'www' -c "git -C '/usr/local/www/media/themes/bootstrap_darkroom' remote add 'origin' 'https://github.com/Piwigo/piwigo-bootstrap-darkroom.git'" |
| | su -m 'www' -c "git -C '/usr/local/www/media/themes/bootstrap_darkroom' pull --depth '1' --recurse-submodules 'origin' 'master' --rebase" |
| |
| <code> | su -m 'www' -c "git -C '/usr/local/www/media/themes/bootstrap_darkroom' reset --hard 'origin/master'" |
| [mariadb-dump] | su -m 'www' -c "git -C '/usr/local/www/media/themes/bootstrap_darkroom' gc --aggressive --prune='all'" |
| user=piwigo | su -m 'www' -c "git -C '/usr/local/www/media/themes/bootstrap_darkroom' fsck --full --strict" |
| password=x</code> | |
| |
| === Service === | # End</code> |
| |
| mkdir -p ~/'backups' && sudo mkdir -p '/var/lib/mysql/tmp' && sudo -e '/etc/systemd/system/media-db.service' && sudo sed -i 's/'CHANGEME'/'$USER'/g' '/etc/systemd/system/media-db.service' | ~/'.local/scripts/www/media/git-fix.sh' |
| |
| <code> | su 'root' -c ~/'.local/scripts/www/media/git-fix.sh' |
| [Service] | |
| Type=oneshot | |
| WorkingDirectory=/var/lib/mysql/tmp | |
| ExecStartPre='/usr/bin/mariadb-dump' --defaults-extra-file='/var/lib/mysql/auth/piwigo' --single-transaction 'piwigo' -r '/var/lib/mysql/tmp/piwigo.sql' | |
| ExecStart='/usr/bin/gzip' -f '/var/lib/mysql/tmp/piwigo.sql' | |
| ExecStart='/usr/bin/bash' -c '"/usr/bin/mv" "/var/lib/mysql/tmp/piwigo.sql.gz" "/home/CHANGEME/backups/piwigo-database-auto-"$$(date +%%Y-%%m-%%d)".sql.gz"' | |
| ExecStartPost='/usr/bin/sync'</code> | |
| |
| === Timer === | ====== cron ====== |
| |
| * Every day at ''05:45:00'' | ===== Updater ===== |
| |
| sudo -e '/etc/systemd/system/media-db.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'media-db.timer' --now && sudo systemctl start 'media-db' && sudo systemctl status 'media-db' -l | * 01:00AM Every day |
| | |
| | su - |
| | |
| | ee '/etc/cron.d/media-updater' |
| |
| <code> | <code> |
| [Unit] | # |
| Description=Piwigo Database Backup | SHELL=/bin/sh |
| After=mariadb.service | |
| |
| [Timer] | 0 1 * * * root '/home/espionage724/.local/scripts/www/media/updater.sh' |
| OnCalendar=*-*-* 05:45:00 | |
| Persistent=true | |
| |
| [Install] | # End</code> |
| WantedBy=timers.target</code> | |
| |
| ====== Backup ====== | ====== Backup ====== |
| |
| * Create backup archive on server and transfer to client computer | ===== Folder ===== |
| |
| ===== Server ===== | su - |
| |
| ==== Stop Services ==== | tar -czf '/home/espionage724/piwigo-files-manual-'$(date +%Y-%m-%d)'.tar.gz' -C '/usr/local/www' 'media' |
| |
| **** | ===== Database ===== |
| | |
| sudo systemctl stop nginx php-fpm | |
| | |
| ==== Backup Folder ==== | |
| |
| **** | **** |
| |
| cd '/var/www' && sudo tar -cvzf ~/'piwigo-files-manual-'$(date +%Y-%m-%d)'.tar.gz' 'media' && cd ~ && sync | mariadb-dump -u root -p --single-transaction --quick 'piwigo' -r '/home/espionage724/piwigo-database-manual-'$(date +%Y-%m-%d)'.sql' |
| |
| ==== Backup Database ==== | ===== scp ===== |
| | |
| **** | |
| | |
| sudo mariadb-dump --defaults-extra-file='/var/lib/mysql/auth/piwigo' --single-transaction 'piwigo' -r ~/'piwigo-database-manual-'$(date +%Y-%m-%d)'.sql' && sync | |
| | |
| ==== Start Services ==== | |
| | |
| **** | |
| | |
| sudo systemctl start nginx php-fpm | |
| | |
| ===== Client ===== | |
| | |
| ==== Transfer Files To Client ==== | |
| |
| **** | **** |
| ====== Restore ====== | ====== Restore ====== |
| |
| ===== Client ===== | ===== scp ===== |
| | |
| ==== Uncompress Database ==== | |
| | |
| * This is only needed if restoring an **automated** database backup ((manual doesn't gzip)) | |
| | |
| gunzip ~/'Downloads/piwigo-database-'*'.sql.gz' | |
| | |
| ==== Transfer Files To Server ==== | |
| |
| **** | **** |
| |
| scp ~/'Downloads/piwigo-files-'*'.tar.gz' ~/'Downloads/piwigo-database-'*'.sql' espionage724@192.168.1.152:~ | scp ~/'Downloads/piwigo-files-'*'.tar.gz' ~/'Downloads/piwigo'*'.sql' espionage724@192.168.1.152:~ |
| |
| ==== Remove Files ==== | ===== Folder ===== |
| |
| **** | su - |
| |
| rm -f ~/'Downloads/piwigo-files-'*'.tar.gz' ~/'Downloads/piwigo-database-'*'.sql' && sync | rm -Rf '/usr/local/www/media' |
| |
| ===== Server ===== | tar -xzf '/home/espionage724/piwigo-files-'*'.tar.gz' -C '/usr/local/www' 'media' && chown -R 'www':'www' '/usr/local/www/media' && sync |
| |
| ==== Stop Services ==== | ===== Database ===== |
| |
| **** | * [[#database|Initial set-up]] |
| |
| sudo systemctl stop nginx php-fpm | mariadb -u 'root' -p --execute='CREATE DATABASE piwigo;' |
| |
| ==== Remove Previous Folder ==== | cat ~/'piwigo'*'.sql' | mariadb -u 'root' -p 'piwigo' |
| |
| **** | ===== MySQL Connection ===== |
| | |
| sudo rm -Rf '/var/www/media' | |
| | |
| ==== Restore Piwigo Folder ==== | |
| | |
| **** | |
| | |
| cd '/var/www' && sudo tar -xvzf ~/'piwigo-files-'*'.tar.gz' 'media' && sudo semanage fcontext --add --type 'httpd_sys_rw_content_t' '/var/www/media(/.*)?' && sudo restorecon -F -I -R '/var/www/media' && sudo chown -R 'nginx':'nginx' '/var/www/media' && cd ~ && sync | |
| | |
| ==== Drop Previous Database ==== | |
| | |
| sudo mariadb | |
| | |
| DROP DATABASE piwigo; | |
| | |
| FLUSH TABLES; | |
| | |
| EXIT | |
| | |
| ==== Re-create Databases ==== | |
| | |
| sudo mariadb | |
| | |
| CREATE DATABASE piwigo; | |
| | |
| EXIT | |
| | |
| ==== Restore Database ==== | |
| | |
| **** | |
| | |
| sudo mariadb 'piwigo' < ~/'piwigo-database-'*'.sql' && sync | |
| | |
| ==== Reapply Permissions ==== | |
| | |
| sudo mariadb | |
| | |
| GRANT ALL PRIVILEGES ON piwigo.* to 'piwigo'@'localhost' IDENTIFIED BY 'x'; | |
| | |
| FLUSH PRIVILEGES; | |
| | |
| EXIT | |
| | |
| ==== Start Services ==== | |
| | |
| **** | |
| | |
| sudo systemctl start nginx php-fpm | |
| | |
| ==== Remove Backups ==== | |
| | |
| * Verify that Piwigo works before running | |
| | |
| rm ~/'piwigo-files-'*'.tar.gz' ~/'piwigo-database-'*'.sql' && sync | |
| | |
| ====== Restore ====== | |
| | |
| ===== Files ===== | |
| |
| su - | su - |
| |
| rm -Rf '/usr/local/www/media' | su -m 'www' -c "ee '/usr/local/www/media/local/config/database.inc.php'" |
| | |
| cd '/usr/local/www' && tar -xvzf '/home/'*'/piwigo-files-'*'.tar.gz' 'media' && chown -R 'www':'www' '/usr/local/www/media' && cd ~ && sync | |
| | |
| ===== Database ===== | |
| | |
| * [[#database|Initial set-up]] | |
| | |
| mariadb -u 'root' -p --execute='CREATE DATABASE piwigo;' | |
| |
| mariadb -u 'root' -p 'piwigo' < ~/'piwigo.sql' | <code>$conf['db_host'] = '127.0.0.1';</code> |
| |