User Tools

Site Tools


servers:linux:nginx:wordpress

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:wordpress [2025/09/11 09:33] Sean Rhoneservers:linux:nginx:wordpress [2025/10/16 23:21] (current) – [Database] Sean Rhone
Line 23: Line 23:
   * https://github.com/WordPress/WordPress/commits/master/   * https://github.com/WordPress/WordPress/commits/master/
  
-  sudo git clone --branch 'master' --depth '1' --recurse-submodules 'https://github.com/WordPress/WordPress.git' '/srv/www/blog' && sudo chown -R 'wwwrun':'www' '/srv/www/blog'+  sudo git clone --branch 'master' --depth '1' --recurse-submodules 'https://github.com/WordPress/WordPress.git' '/srv/www/blog' && sudo chown -R 'wwwrun':'www' '/srv/www/blog' && sudo chmod -R '0755' '/srv/www/blog'
  
 ====== Database ====== ====== Database ======
Line 35: Line 35:
   GRANT ALL PRIVILEGES ON wordpress.* to 'wordpress'@'localhost';   GRANT ALL PRIVILEGES ON wordpress.* to 'wordpress'@'localhost';
  
-  FLUSH PRIVILEGES; +  FLUSH PRIVILEGES;EXIT;
- +
-  EXIT+
  
 ====== nginx + PHP-FPM Configuration ====== ====== nginx + PHP-FPM Configuration ======
Line 67: Line 65:
  
 ; 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"
 php_value[max_execution_time] = "200" php_value[max_execution_time] = "200"
Line 132: Line 132:
  
   * Date Format: Y/m/d   * Date Format: Y/m/d
 +
 +===== wp-config.php =====
 +
 +  * :!: WordPress set-up needs to generate this file first ((put settings in the ''custom values'' section towards the bottom))
 +
 +  sudo -e '/srv/www/blog/wp-config.php' && sudo chown -v 'wwwrun':'www' '/srv/www/blog/wp-config.php'
 +
 +<code>
 +define( 'AUTOMATIC_UPDATER_DISABLED', true );
 +
 +define( 'WP_DEBUG', false );
 +define( 'WP_DEBUG_DISPLAY', false );
 +
 +/* End */</code>
  
 ====== Services ====== ====== Services ======
Line 174: Line 188:
 # End</code> # End</code>
  
-===== Maintenance =====+===== Backup =====
  
-==== Service ====+==== Files ====
  
-  sudo -e '/etc/systemd/system/blog-m.service'+=== Service === 
 + 
 +  mkdir -p ~/'backups' && sudo -e '/etc/systemd/system/blog-fb.service' && sudo sed -i 's/CHANGEME/'$USER'/g' '/etc/systemd/system/blog-fb.service'
  
 <code> <code>
 [Service] [Service]
-User=wwwrun 
-Group=www 
 Type=oneshot Type=oneshot
  
-ExecStart='/usr/bin/git' -'/srv/www/blog' gc --aggressive --prune='all' +ExecStart='/usr/bin/bash' -'"/usr/bin/tar" -czf "/home/CHANGEME/backups/wordpress-files-auto-"$$(date +%%Y-%%m-%%d)".tar.gz" -C "/srv/www" "blog"'
-ExecStart='/usr/bin/git' -C '/srv/www/blog' fsck --full --strict+
  
 ExecStartPost='/usr/bin/sync' ExecStartPost='/usr/bin/sync'
Line 193: Line 206:
 # End</code> # End</code>
  
-==== Timer ====+=== Timer ===
  
-  * ''01'' day of every month at ''02:30:00''+  * ''01'' day of every month at ''02:15:00''
  
-  sudo -e '/etc/systemd/system/blog-m.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'blog-m.timer' --now+  sudo -e '/etc/systemd/system/blog-fb.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'blog-fb.timer' --now
  
 <code> <code>
 [Unit] [Unit]
-Description=WordPress Maintenance +Description=WordPress Files Backup
-After=network-online.target +
-Wants=network-online.target+
  
 [Timer] [Timer]
-OnCalendar=*-*-01 02:30:00+OnCalendar=*-*-01 02:15:00
 Persistent=true Persistent=true
  
Line 214: Line 225:
 # End</code> # End</code>
  
-  sudo systemctl start 'blog-m' && sudo systemctl status 'blog-m' -l+  sudo systemctl start 'blog-fb' && sudo systemctl status 'blog-fb' -l
  
-===== Backup =====+==== Database ====
  
-==== Files ====+=== Database Auth === 
 + 
 +  sudo mkdir -p '/var/lib/mysql/auth' && sudo -e '/var/lib/mysql/auth/wordpress' && sudo chown 'mysql':'mysql' '/var/lib/mysql/auth/wordpress' && sudo chmod '0600' '/var/lib/mysql/auth/wordpress' 
 + 
 +<code> 
 +[mariadb-dump] 
 +user=wordpress 
 +password=
 + 
 +# End</code>
  
 === Service === === Service ===
  
-  mkdir -p ~/'backups' && sudo -e '/etc/systemd/system/blog-fb.service' && sudo sed -i 's/CHANGEME/'$USER'/g' '/etc/systemd/system/blog-fb.service'+  mkdir -p ~/'backups' && sudo mkdir -p '/var/lib/mysql/tmp' && sudo -e '/etc/systemd/system/blog-db.service' && sudo sed -i 's/'CHANGEME'/'$USER'/g' '/etc/systemd/system/blog-db.service'
  
 <code> <code>
 [Service] [Service]
 +Group=mysql
 Type=oneshot Type=oneshot
-WorkingDirectory=/var/www + 
-ExecStart='/usr/bin/bash' -c '"/usr/bin/tar" -czf "/home/CHANGEME/backups/wordpress-files-auto-"$$(date +%%Y-%%m-%%d)".tar.gz" "blog"' +ExecStart='/usr/bin/bash' -c '"/usr/bin/mariadb-dump" --defaults-extra-file="/var/lib/mysql/auth/wordpress" --single-transaction --quick "wordpress" -"/home/CHANGEME/backups/wordpress-database-auto-"$$(date +%%Y-%%m-%%d)".sql"' 
-ExecStartPost='/usr/bin/sync'</code>+ 
 +ExecStartPost='/usr/bin/sync' 
 + 
 +# End</code>
  
 === Timer === === Timer ===
  
-  * ''01'' day of every month at ''04:35:00''+  * ''01'' day of every month at ''02:10:00''
  
-  sudo -e '/etc/systemd/system/blog-fb.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'blog-fb.timer' --now && sudo systemctl start 'blog-fb' && sudo systemctl status 'blog-fb' -l+  sudo -e '/etc/systemd/system/blog-db.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'blog-db.timer' --now && sudo systemctl start 'blog-db' && sudo systemctl status 'blog-db' -l
  
 <code> <code>
 [Unit] [Unit]
-Description=WordPress Files Backup+Description=WordPress Database Backup 
 +After=mariadb.service
  
 [Timer] [Timer]
-OnCalendar=*-*-01 04:35:00+OnCalendar=*-*-01 02:10:00
 Persistent=true Persistent=true
  
 [Install] [Install]
-WantedBy=timers.target</code>+WantedBy=timers.target
  
-==== Database ====+# End</code>
  
-=== Database Auth ===+===== Maintenance =====
  
-  sudo mkdir -p '/var/lib/mysql/auth' && sudo -e '/var/lib/mysql/auth/wordpress' && sudo chown -R 'mysql':'mysql' '/var/lib/mysql/auth/wordpress' && sudo chmod '600' '/var/lib/mysql/auth/wordpress' && sync+==== Service ====
  
-<code> +  sudo -e '/etc/systemd/system/blog-m.service'
-[mariadb-dump] +
-user=wordpress +
-password=x</code> +
- +
-=== Service === +
- +
-  mkdir -p ~/'backups' && sudo mkdir -p '/var/lib/mysql/tmp' && sudo -e '/etc/systemd/system/blog-db.service' && sudo sed -i 's/'CHANGEME'/'$USER'/g' '/etc/systemd/system/blog-db.service'+
  
 <code> <code>
 [Service] [Service]
 +User=wwwrun
 +Group=www
 Type=oneshot Type=oneshot
-WorkingDirectory=/var/lib/mysql/tmp 
-ExecStartPre='/usr/bin/mariadb-dump' --defaults-extra-file='/var/lib/mysql/auth/wordpress' --single-transaction 'wordpress' -r '/var/lib/mysql/tmp/wordpress.sql' 
-ExecStart='/usr/bin/gzip' -f '/var/lib/mysql/tmp/wordpress.sql' 
-ExecStart='/usr/bin/bash' -c '"/usr/bin/mv" "/var/lib/mysql/tmp/wordpress.sql.gz" "/home/CHANGEME/backups/wordpress-database-auto-"$$(date +%%Y-%%m-%%d)".sql.gz"' 
-ExecStartPost='/usr/bin/sync'</code> 
  
-=== Timer ===+ExecStart='/usr/bin/git' -C '/srv/www/blog' reset --hard 
 +ExecStart='/usr/bin/git' -C '/srv/www/blog' gc --aggressive --prune='all' 
 +ExecStart='/usr/bin/git' -C '/srv/www/blog' fsck --full --strict
  
-  * Every day at ''04:45:00''+ExecStartPost='/usr/bin/sync'
  
-  sudo -e '/etc/systemd/system/blog-db.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'blog-db.timer' --now && sudo systemctl start 'blog-db' && sudo systemctl status 'blog-db' -l+# End</code> 
 + 
 +==== Timer ==== 
 + 
 +  * ''01'' day of every month at ''02:30:00'' 
 + 
 +  sudo -e '/etc/systemd/system/blog-m.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'blog-m.timer' --now
  
 <code> <code>
 [Unit] [Unit]
-Description=WordPress Database Backup +Description=WordPress Maintenance 
-After=mariadb.service+After=network-online.target 
 +Wants=network-online.target
  
 [Timer] [Timer]
-OnCalendar=*-*-* 04:45:00+OnCalendar=*-*-01 02:30:00
 Persistent=true Persistent=true
  
 [Install] [Install]
-WantedBy=timers.target</code>+WantedBy=timers.target 
 + 
 +# End</code> 
 + 
 +  sudo systemctl start 'blog-m' && sudo systemctl status 'blog-m' -l
  
 ====== Backup ====== ====== Backup ======
Line 346: Line 374:
   sudo mariadb 'wordpress' < ~/'wordpress'*'.sql'   sudo mariadb 'wordpress' < ~/'wordpress'*'.sql'
  
-===== dos2unix =====+===== Git Fix =====
  
-****+  :!: Set email for ''user.email'' 
 +  :!: [[#initial_setup|Initial set-up]] needs re-completed for database connection ((re-use existing details)) 
 + 
 +  sudo su 'wwwrun' -s '/bin/bash' 
 + 
 +  rm -Rf '/srv/www/blog/.git' 
 + 
 +  git -C '/srv/www/blog' init --initial-branch='master' 
 + 
 +  git -C '/srv/www/blog' add '.' 
 + 
 +  git -C '/srv/www/blog' config 'user.email' 'espionage724@x' 
 + 
 +  git -C '/srv/www/blog' commit --message='x' 
 + 
 +  git -C '/srv/www/blog' remote add 'origin' 'https://github.com/WordPress/WordPress.git' 
 + 
 +  git -C '/srv/www/blog' pull --depth '1' --recurse-submodules 'origin' 'master' --rebase 
 + 
 +  git -C '/srv/www/blog' reset --hard 'origin/master' 
 + 
 +  git -C '/srv/www/blog' gc --aggressive --prune='all' 
 + 
 +  git -C '/srv/www/blog' fsck --full --strict
  
-  find '/srv/www/blog' -type f -print0 | sudo xargs -0 dos2unix -- && sudo chown -R 'wwwrun':'www' '/srv/www/blog' && sudo chmod -R '0755' '/srv/www/blog'+  exit
  
 ===== MySQL Connection ===== ===== MySQL Connection =====
/srv/www/wiki/data/attic/servers/linux/nginx/wordpress.1757597601.txt.gz · Last modified: by Sean Rhone