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/12/20 23:00] Sean Rhoneservers:linux:nginx:wordpress [2026/01/06 02:23] (current) – [wp-config.php] SCRIPT_DEBUG needed to un-minify CSS and fix 2025 theme Sean Rhone
Line 7: Line 7:
 ===== Prerequisites ===== ===== Prerequisites =====
  
-  * [[linux:distros:server:ubuntu_server|Ubuntu Server]]+  * [[linux:distros:server:opensuse_tumbleweed_server|openSUSE Tumbleweed (Server)]]
   * [[servers:linux:nginx_php_php-fpm|nginx + PHP + PHP-FPM]]   * [[servers:linux:nginx_php_php-fpm|nginx + PHP + PHP-FPM]]
   * [[servers:linux:nginx:lets_encrypt|Certbot (Let's Encrypt)]]   * [[servers:linux:nginx:lets_encrypt|Certbot (Let's Encrypt)]]
Line 17: Line 17:
   * https://make.wordpress.org/hosting/handbook/server-environment/#php-extensions   * https://make.wordpress.org/hosting/handbook/server-environment/#php-extensions
  
-  sudo apt install php-curl php-imagick php-intl php-mbstring php-mysql php-xml php-zip php-bcmath+  sudo zypper install php8-curl php8-exif php8-fileinfo php-gd php8-intl php8-mbstring php8-mysql php8-openssl php8-sodium php8-dom php8-xmlreader php8-zip php8-bcmath php8-iconv php8-zlib
  
 ====== Download Source ====== ====== Download Source ======
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' '/var/www/blog' && sudo chown -R 'www-data':'www-data' '/var/www/blog' && sudo chmod -R '0755' '/var/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 41: Line 41:
 ===== PHP-FPM Socket ===== ===== PHP-FPM Socket =====
  
-  sudo -e '/etc/php/8.4/fpm/pool.d/blog.conf' && sudo systemctl restart 'php8.4-fpm'+  sudo -e '/etc/php8/fpm/php-fpm.d/blog.conf' && sudo systemctl restart 'php-fpm'
  
 <code> <code>
Line 47: Line 47:
  
 ; User/Group ; User/Group
-user = "www-data+user = "wwwrun
-group = "www-data"+group = "www"
  
 ; Socket ; Socket
-listen = "/run/php/blog.sock" +listen = "/run/php-fpm/blog.sock" 
-listen.owner = "www-data+listen.owner = "wwwrun
-listen.group = "www-data"+listen.group = "www"
 listen.mode = "0662" listen.mode = "0662"
  
Line 64: Line 64:
 php_value[log_errors] = "0" php_value[log_errors] = "0"
 php_value[error_reporting] = "~E_ALL" php_value[error_reporting] = "~E_ALL"
 +
 +; openSUSE php.ini Defaults
 +php_value[session.save_path] = "/var/lib/php8/sessions"
  
 ; General ; General
Line 72: Line 75:
 ===== FastCGI ===== ===== FastCGI =====
  
-  sudo -e '/etc/nginx/snippets/blog.conf'+  sudo -e '/etc/nginx/default.d/blog.conf'
  
 <code> <code>
Line 85: Line 88:
  fastcgi_param 'HTTPS' 'on';  fastcgi_param 'HTTPS' 'on';
  
- fastcgi_pass 'unix:/run/php/blog.sock';+ fastcgi_pass 'unix:/run/php-fpm/blog.sock';
  
 } }
  
 # End</code> # End</code>
- 
-===== Server Block ===== 
- 
- 
- 
-    location / { 
-        try_files $uri $uri/ /index.php?$args; 
-    } 
- 
-    rewrite /wp-admin$ $scheme://$host$uri/ permanent; 
- 
-} 
- 
  
 ===== Server Block ====== ===== Server Block ======
  
-  sudo -e '/etc/nginx/sites-available/blog.conf'+  sudo -e '/etc/nginx/vhosts.d/blog.conf' && sudo systemctl reload 'nginx'
  
 <code> <code>
Line 114: Line 104:
  http2 'on';  http2 'on';
  server_name 'blog.realmofespionage.xyz';  server_name 'blog.realmofespionage.xyz';
- root '/var/www/blog';+ root '/srv/www/blog';
  index 'index.php';  index 'index.php';
  
- include '/etc/nginx/snippets/blog.conf'; + include '/etc/nginx/default.d/blog.conf'; 
- include '/etc/nginx/snippets/headers.conf';+ include '/etc/nginx/default.d/headers.conf';
  
  client_max_body_size '10M';  client_max_body_size '10M';
Line 134: Line 124:
  
 # End</code> # End</code>
- 
-  sudo ln -s -f '/etc/nginx/sites-available/blog.conf' '/etc/nginx/sites-enabled/blog.conf' && sudo systemctl reload 'nginx' 
  
 ====== Initial Setup ====== ====== Initial Setup ======
Line 147: Line 135:
 ===== wp-config.php ===== ===== wp-config.php =====
  
-  * :!: WordPress set-up needs to generate this file first ((put settings in the ''custom values'' section towards the bottom))+  * https://github.com/WordPress/WordPress/blob/master/wp-config-sample.php 
 +  * https://github.com/WordPress/WordPress/blob/master/wp-includes/script-loader.php 
 +  * https://developer.wordpress.org/advanced-administration/wordpress/wp-config/
  
-  sudo -'www-data' -'/var/www/blog/wp-config.php'+  * :!: Change ''DB_PASSWORD'' 
 + 
 +  sudo -'/srv/www/blog/wp-config.php&& sudo chown -v 'wwwrun':'www' '/srv/www/blog/wp-config.php'
  
 <code> <code>
-define( 'AUTOMATIC_UPDATER_DISABLED', true );+<?php
  
 +define( 'DB_NAME', 'wordpress' );
 +define( 'DB_USER', 'wordpress' );
 +define( 'DB_PASSWORD', 'x' );
 +define( 'DB_HOST', 'localhost' );
 +define( 'DB_CHARSET', 'utf8mb4' );
 +$table_prefix = 'wp_';
 +
 +define( 'AUTOMATIC_UPDATER_DISABLED', true );
 define( 'WP_DEBUG', false ); define( 'WP_DEBUG', false );
 define( 'WP_DEBUG_DISPLAY', false ); define( 'WP_DEBUG_DISPLAY', false );
  
-/End */</code>+define( 'SCRIPT_DEBUG', true ); 
 + 
 +if ( ! defined( 'ABSPATH' ) ) { 
 +        define( 'ABSPATH', __DIR__ . '/' ); 
 +
 + 
 +require_once ABSPATH . 'wp-settings.php'; 
 + 
 +// End</code> 
 + 
 +====== Scripts ====== 
 + 
 +===== Git Fix ===== 
 + 
 +  :!: Set email for ''user.email'' 
 + 
 +  sudo mkdir -p '/etc/nginx/scripts/blog' && sudo -e '/etc/nginx/scripts/blog/git-fix.sh' && sudo chmod '0500' '/etc/nginx/scripts/blog/git-fix.sh' && sudo chown 'wwwrun':'www' '/etc/nginx/scripts/blog/git-fix.sh' 
 + 
 +<code> 
 +#!/bin/bash 
 + 
 +cd '/tmp' 
 + 
 +'/usr/bin/rm' -Rf '/tmp/blog' 
 +'/usr/bin/mkdir' -p '/tmp/blog' 
 +'/usr/bin/cp' -Rf '/srv/www/blog/wp-content/uploads' '/srv/www/blog/wp-config.php' '/tmp/blog' 
 + 
 +'/usr/bin/rm' -Rf '/srv/www/blog/.git' 
 +'/usr/bin/git' -C '/srv/www/blog' init --initial-branch='master' 
 +'/usr/bin/git' -C '/srv/www/blog' add '.' 
 + 
 +######################################## 
 +'/usr/bin/git' -C '/srv/www/blog' config 'user.email' 'espionage724@x' 
 +######################################## 
 + 
 +'/usr/bin/git' -C '/srv/www/blog' commit --message='x' 
 + 
 +'/usr/bin/git' -C '/srv/www/blog' remote add 'origin' 'https://github.com/WordPress/WordPress.git' 
 +'/usr/bin/git' -C '/srv/www/blog' pull --depth '1' --recurse-submodules 'origin' 'master' --rebase 
 + 
 +'/usr/bin/git' -C '/srv/www/blog' reset --hard 'origin/master' 
 +'/usr/bin/git' -C '/srv/www/blog' gc --aggressive --prune='all' 
 +'/usr/bin/git' -C '/srv/www/blog' fsck --full --strict 
 + 
 +'/usr/bin/cp' -Rf '/tmp/blog/uploads' '/srv/www/blog/wp-content' 
 +'/usr/bin/cp' -f '/tmp/blog/wp-config.php' '/srv/www/blog/wp-config.php' 
 +'/usr/bin/rm' -Rf '/tmp/blog' 
 + 
 +# End</code> 
 + 
 +==== Execute ==== 
 + 
 +  sudo su 'wwwrun' -s '/bin/bash' 
 + 
 +  '/etc/nginx/scripts/blog/git-fix.sh' 
 + 
 +  exit
  
 ====== Services ====== ====== Services ======
Line 169: Line 225:
 <code> <code>
 [Service] [Service]
-User=www-data +User=wwwrun 
-Group=www-data+Group=www
 Type=oneshot Type=oneshot
  
-ExecStart='/usr/bin/git' -C '/var/www/blog' pull origin 'master'+WorkingDirectory=/srv/www/blog 
 + 
 +ExecStart='/usr/bin/git' -C '/srv/www/blog' reset --hard 'origin/master' 
 +ExecStart='/usr/bin/git' -C '/srv/www/blog' pull origin 'master' --rebase
  
 ExecStartPost='/usr/bin/sync' ExecStartPost='/usr/bin/sync'
Line 181: Line 240:
 ==== Timer ==== ==== Timer ====
  
-  * Every day at ''02:00:00''+  * Daily ''02:00:00 AM''
  
   sudo -e '/etc/systemd/system/blog-up.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'blog-up.timer' --now && sudo systemctl start 'blog-up' && sudo systemctl status 'blog-up' -l   sudo -e '/etc/systemd/system/blog-up.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'blog-up.timer' --now && sudo systemctl start 'blog-up' && sudo systemctl status 'blog-up' -l
Line 212: Line 271:
 Type=oneshot Type=oneshot
  
-ExecStart='/usr/bin/bash' -c '"/usr/bin/tar" -czf "/home/CHANGEME/backups/wordpress-files-auto-"$$(date +%%Y-%%m-%%d)".tar.gz" -C "/var/www" "blog"'+WorkingDirectory=/srv/www/blog 
 + 
 +ExecStart='/usr/bin/bash' -c '"/usr/bin/tar" -czf "/home/CHANGEME/backups/wordpress-files-auto-"$$(date +%%Y-%%m-%%d)".tar.gz" -C "/srv/www" "blog"'
  
 ExecStartPost='/usr/bin/sync' ExecStartPost='/usr/bin/sync'
Line 220: Line 281:
 === Timer === === Timer ===
  
-  * ''01'' day of every month at ''02:15:00''+  * Monthly (3rd) ''02:15:00 AM''
  
   sudo -e '/etc/systemd/system/blog-fb.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'blog-fb.timer' --now   sudo -e '/etc/systemd/system/blog-fb.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'blog-fb.timer' --now
Line 229: Line 290:
  
 [Timer] [Timer]
-OnCalendar=*-*-01 02:15:00+OnCalendar=*-*-03 02:15:00
 Persistent=true Persistent=true
  
Line 243: Line 304:
 === Database Auth === === 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'+  sudo mkdir -p '/srv/lib/mysql/auth' && sudo -e '/srv/lib/mysql/auth/wordpress' && sudo chown 'mysql':'mysql' '/srv/lib/mysql/auth/wordpress' && sudo chmod '0600' '/srv/lib/mysql/auth/wordpress'
  
 <code> <code>
Line 254: Line 315:
 === Service === === 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'+  mkdir -p ~/'backups' && sudo mkdir -p '/srv/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>
Line 261: Line 322:
 Type=oneshot Type=oneshot
  
-ExecStart='/usr/bin/bash' -c '"/usr/bin/mariadb-dump" --defaults-extra-file="/var/lib/mysql/auth/wordpress" --single-transaction --quick "wordpress" -r "/home/CHANGEME/backups/wordpress-database-auto-"$$(date +%%Y-%%m-%%d)".sql"'+WorkingDirectory=/srv/lib/mysql 
 + 
 +ExecStart='/usr/bin/bash' -c '"/usr/bin/mariadb-dump" --defaults-extra-file="/srv/lib/mysql/auth/wordpress" --single-transaction --quick "wordpress" -r "/home/CHANGEME/backups/wordpress-database-auto-"$$(date +%%Y-%%m-%%d)".sql"'
  
 ExecStartPost='/usr/bin/sync' ExecStartPost='/usr/bin/sync'
Line 269: Line 332:
 === Timer === === Timer ===
  
-  * ''01'' day of every month at ''02:10:00''+  * Monthly (3rd) ''02:10:00 AM''
  
   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   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
Line 279: Line 342:
  
 [Timer] [Timer]
-OnCalendar=*-*-01 02:10:00+OnCalendar=*-*-03 02:10:00
 Persistent=true Persistent=true
  
Line 295: Line 358:
 <code> <code>
 [Service] [Service]
-User=www-data +User=wwwrun 
-Group=www-data+Group=www
 Type=oneshot Type=oneshot
  
-ExecStart='/usr/bin/git' -C '/var/www/blog' reset --hard +WorkingDirectory=/srv/www/blog 
-ExecStart='/usr/bin/git' -C '/var/www/blog' gc --aggressive --prune='all' + 
-ExecStart='/usr/bin/git' -C '/var/www/blog' fsck --full --strict+ExecStart='/usr/bin/git' -C '/srv/www/blog' gc --aggressive --prune='all' 
 +ExecStart='/usr/bin/git' -C '/srv/www/blog' fsck --full --strict
  
 ExecStartPost='/usr/bin/sync' ExecStartPost='/usr/bin/sync'
Line 309: Line 373:
 ==== Timer ==== ==== Timer ====
  
-  * ''01'' day of every month at ''02:30:00''+  * Monthly (3rd) ''02:30:00 AM''
  
   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-m.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'blog-m.timer' --now
Line 320: Line 384:
  
 [Timer] [Timer]
-OnCalendar=*-*-01 02:30:00+OnCalendar=*-*-03 02:30:00
 Persistent=true Persistent=true
  
Line 336: Line 400:
 **** ****
  
-  sudo tar -czf ~/'wordpress-files-manual-'$(date +%Y-%m-%d)'.tar.gz' -C '/var/www' 'blog'+  sudo tar -czf ~/'wordpress-files-manual-'$(date +%Y-%m-%d)'.tar.gz' -C '/srv/www' 'blog'
  
 ===== Database ===== ===== Database =====
Line 363: Line 427:
  
   sudo systemctl stop 'nginx'   sudo systemctl stop 'nginx'
- 
-==== Disable vhost ==== 
- 
-**** 
- 
-  sudo rm '/etc/nginx/sites-enabled/blog.conf' && sudo systemctl reload 'nginx' 
  
 ===== Remove Existing Files ===== ===== Remove Existing Files =====
Line 374: Line 432:
 **** ****
  
-  ls ~/'wordpress-files-'*'.tar.gz' && sudo rm -Rf '/var/www/blog'+  ls ~/'wordpress-files-'*'.tar.gz' && sudo rm -Rf '/srv/www/blog'
  
 ===== Restore Files ===== ===== Restore Files =====
Line 380: Line 438:
 **** ****
  
-  sudo tar -xzf ~/'wordpress-files-'*'.tar.gz' -C '/var/www' 'blog' && sudo chown -R 'www-data':'www-data' '/var/www/blog' && sudo chmod -R '0755' '/var/www/blog'+  sudo tar -xzf ~/'wordpress-files-'*'.tar.gz' -C '/srv/www' 'blog' && sudo chown -R 'wwwrun':'www' '/srv/www/blog' && sudo chmod -R '0755' '/srv/www/blog'
  
 ===== Restore Database ===== ===== Restore Database =====
Line 394: Line 452:
 ===== Git Fix ===== ===== Git Fix =====
  
-==== Back-up ====+==== Back-up Files ====
  
 **** ****
  
-  rm -Rf '/tmp/www/blog' && mkdir -p '/tmp/www/blog' && sudo cp -Rf '/var/www/blog/wp-content/uploads' '/var/www/blog/wp-config.php' '/tmp/www/blog'+  sudo rm -Rf '/tmp/www/blog' && mkdir -p '/tmp/www/blog' && sudo cp -Rf '/srv/www/blog/wp-content/uploads' '/srv/www/blog/wp-config.php' '/tmp/www/blog'
  
 ==== Git Fix ==== ==== Git Fix ====
  
   * :!: Set email for ''user.email''   * :!: Set email for ''user.email''
-  * :!: [[#initial_setup|Initial set-up]] needs re-completed for database connection ((re-use existing details)) 
  
-  sudo su 'www-data' -s '/bin/bash'+  sudo su 'wwwrun' -s '/bin/bash'
  
-  rm -Rf '/var/www/blog/.git'+  rm -Rf '/srv/www/blog/.git'
  
-  git -C '/var/www/blog' init --initial-branch='master'+  git -C '/srv/www/blog' init --initial-branch='master'
  
-  git -C '/var/www/blog' add '.'+  git -C '/srv/www/blog' add '.'
  
-  git -C '/var/www/blog' config 'user.email' 'espionage724@x'+  git -C '/srv/www/blog' config 'user.email' 'espionage724@x'
  
-  git -C '/var/www/blog' commit --message='x'+  git -C '/srv/www/blog' commit --message='x'
  
-  git -C '/var/www/blog' remote add 'origin' 'https://github.com/WordPress/WordPress.git'+  git -C '/srv/www/blog' remote add 'origin' 'https://github.com/WordPress/WordPress.git'
  
-  git -C '/var/www/blog' pull --depth '1' --recurse-submodules 'origin' 'master' --rebase+  git -C '/srv/www/blog' pull --depth '1' --recurse-submodules 'origin' 'master' --rebase
  
-  git -C '/var/www/blog' reset --hard 'origin/master'+  git -C '/srv/www/blog' reset --hard 'origin/master'
  
-  git -C '/var/www/blog' gc --aggressive --prune='all'+  git -C '/srv/www/blog' gc --aggressive --prune='all'
  
-  git -C '/var/www/blog' fsck --full --strict+  git -C '/srv/www/blog' fsck --full --strict
  
   exit   exit
  
-==== Restore ====+==== Restore Files ====
  
-  TODO+**** 
 +   
 +  sudo cp -Rf '/tmp/www/blog/uploads' '/srv/www/blog/wp-content' && sudo cp -f '/tmp/www/blog/wp-config.php' '/srv/www/blog/wp-config.php' && sudo rm -Rf '/tmp/www/blog' && sudo chown -R 'wwwrun':'www' '/srv/www/blog' && sudo chmod -R '0755' '/srv/www/blog'
  
 ===== MySQL Connection ===== ===== MySQL Connection =====
Line 437: Line 496:
   * Windows uses ''127.0.0.1''   * Windows uses ''127.0.0.1''
  
-  sudo -'www-data' -'/var/www/blog/wp-config.php'+  sudo -'/srv/www/blog/wp-config.php&& sudo chown -v 'wwwrun':'www' '/srv/www/blog/wp-config.php'
  
   define( 'DB_HOST', 'localhost' );   define( 'DB_HOST', 'localhost' );
/usr/local/www/wiki/data/attic/servers/linux/nginx/wordpress.1766289648.txt.gz · Last modified: by Sean Rhone