User Tools

Site Tools


servers:windows: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:windows:nginx:wordpress [2025/01/17 15:14] – [Server Block] Sean Rhoneservers:windows:nginx:wordpress [2025/11/29 00:43] (current) – [Back-up] Sean Rhone
Line 7: Line 7:
 ===== Prerequisites ===== ===== Prerequisites =====
  
-  * [[windows;10|Windows 10]] +  * [[windows;10|Windows 10 (21H2)]] 
-  * [[servers;windows;freenginx_php_php-cgi|freenginx + PHP + PHP-CGI]]+  * [[servers;windows;nginx_php_php-cgi|nginx + PHP + PHP-CGI]]
   * [[servers;windows;nginx;lets_encrypt|Certbot (Let's Encrypt)]]   * [[servers;windows;nginx;lets_encrypt|Certbot (Let's Encrypt)]]
 +  * [[programs;windows;git|Git]]
 +  * [[servers;windows;mariadb|MariaDB]]
  
 ====== Dependencies ====== ====== Dependencies ======
Line 15: Line 17:
   * https://wordpress.org/about/requirements/   * https://wordpress.org/about/requirements/
   * https://make.wordpress.org/hosting/handbook/server-environment/#php-extensions   * https://make.wordpress.org/hosting/handbook/server-environment/#php-extensions
- 
-===== Git ===== 
- 
-  * https://www.git-scm.com/download/win 
-  * Last tested: ''Git-2.47.1.2-64-bit.exe'' 
- 
-  * Git from the command line and also from 3rd-party software 
- 
-===== MariaDB Server ===== 
- 
-  * https://mariadb.org/download/ 
-  * Last tested: ''mariadb-11.6.2-winx64.msi'' 
- 
-  * No Development components or Third party tools 
-  * Use UTF8 as default server's character set 
-  * [x] Enable Networking 
  
 ====== Download Source ====== ====== Download Source ======
Line 37: Line 23:
  
   "%ProgramFiles%\Git\bin\git.exe" clone --branch "master" --depth "1" --recurse-submodules "https://github.com/WordPress/WordPress.git" "%SystemDrive%\www\blog"   "%ProgramFiles%\Git\bin\git.exe" clone --branch "master" --depth "1" --recurse-submodules "https://github.com/WordPress/WordPress.git" "%SystemDrive%\www\blog"
- 
-  explorer "%SystemDrive%\www\blog" 
  
 ====== Database ====== ====== Database ======
  
-  "%ProgramFiles%\MariaDB 11.6\bin\mariadb.exe" -u "root" -p+  "%ProgramFiles%\MariaDB 12.2\bin\mariadb.exe" -u "root" -p
  
   CREATE DATABASE wordpress;   CREATE DATABASE wordpress;
Line 50: Line 34:
   GRANT ALL PRIVILEGES ON wordpress.* to 'wordpress'@'localhost';   GRANT ALL PRIVILEGES ON wordpress.* to 'wordpress'@'localhost';
  
-  FLUSH PRIVILEGES; +  FLUSH PRIVILEGES;EXIT;
- +
-  EXIT+
  
 ====== Environment ====== ====== Environment ======
Line 58: Line 40:
 ===== PHP ===== ===== PHP =====
  
-  notepad "%SystemDrive%\www\php\blog.ini"+  "notepad.exe" "%SystemDrive%\www\php\blog.ini"
  
 <code> <code>
 [PHP] [PHP]
-; Modules 
 extension_dir = ".\ext" extension_dir = ".\ext"
 extension = "curl" extension = "curl"
Line 73: Line 54:
 extension = "openssl" extension = "openssl"
 extension = "sodium" extension = "sodium"
-zend_extension = "opcache" 
  
-; Settings +error_reporting = "~E_ALL"
-error_reporting = "E_ERROR"+
 display_errors = "Off" display_errors = "Off"
 +log_errors = "Off"
  
 [Date] [Date]
Line 84: Line 64:
 ; End</code> ; End</code>
  
-  CD "%SystemDrive%\" && "php.exe" -c "%SystemDrive%\www\php\blog.ini" -m+  "php.exe" -c "%SystemDrive%\www\php\blog.ini" -m
  
-====== freenginx + PHP-CGI Configuration ======+====== nginx + PHP-CGI Configuration ======
  
 ===== PHP-CGI ===== ===== PHP-CGI =====
  
-  * :!: ''fastcgi_params'' include hard-coded to freenginx version path +  "notepad.exe" "%SystemDrive%\www\nginx\default.d\blog.conf"
- +
-  notepad "%SystemDrive%\www\nginx\default.d\blog.conf"+
  
 <code> <code>
-# PHP-CGI +location "~" "\.(php)(/.*)?$
-location ~ \.(php)(/.*)?$ { + 
-    fastcgi_split_path_info ^(.+\.(?:php))(/.*)$; + fastcgi_split_path_info "^(.+\.(?:php))(/.*)$"
-    fastcgi_intercept_errors "on"; + fastcgi_intercept_errors "on"; 
-    fastcgi_index "index.php"; + fastcgi_index "index.php"; 
-    include "C:/freenginx-1.27.4/conf/fastcgi_params"; + include "C:/www/nginx/conf/fastcgi_params"; 
-    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_param "HTTPS" "on"; + fastcgi_param "HTTPS" "on"; 
-    fastcgi_pass "127.0.0.1:9004";+ 
 + fastcgi_pass "127.0.0.1:9004"; 
 + 
 } }
 +
 +# End</code>
 +
 +===== Themes Deny =====
 +
 +  * https://github.com/WordPress/WordPress/tree/master/wp-content/themes
 +  * Deny all except ''twentytwentyfive''
 +  * 2025/11/21: No ''twentytwentysix'' (2026) yet
 +
 +  "notepad.exe" "%SystemDrive%\www\nginx\default.d\wp-themes-deny.conf"
 +
 +<code>
 + location "~" "/wp-content/themes/(twentyeleven|twentyfifteen|twentyfourteen|twentynineteen|twentyseventeen|twentysixteen|twentyten|twentythirteen|twentytwelve|twentytwentyfour|twentytwentyone|twentytwentythree|twentytwentytwo|twentytwenty)/" {
 +  deny "all";
 + }
  
 # End</code> # End</code>
Line 111: Line 106:
 ===== Server Block ===== ===== Server Block =====
  
-  notepad "%SystemDrive%\www\nginx\vhosts.d\blog.conf"+  "notepad.exe" "%SystemDrive%\www\nginx\vhosts.d\blog.conf"
  
 <code> <code>
 server { server {
-    listen "443" "ssl"; 
-    http2 "on"; 
-    server_name "blog.realmofespionage.xyz"; 
-    root "C:/www/blog"; 
-    index "index.php"; 
  
-    include C:/www/nginx/default.d/blog.conf+ listen "443" "ssl"; 
-    include C:/www/nginx/default.d/headers.conf;+ http2 "on"; 
 + server_name "blog.realmofespionage.xyz"
 + root "C:/www/blog"; 
 + index "index.php";
  
-    client_max_body_size "10M";+ include "C:/www/nginx/default.d/blog.conf"; 
 + include "C:/www/nginx/default.d/headers.conf"; 
 + include "C:/www/nginx/default.d/wp-themes-deny.conf";
  
-#    add_header Content-Security-Policy "default-src "self"; script-src "self" "unsafe-inline" "unsafe-eval"; style-src "self" "unsafe-inline"" always;+ client_max_body_size "10M";
  
-   access_log  logs/blog-access.log; +# access_log "logs/blog-access.log"
-   error_log  logs/blog-error.log;+# error_log "logs/blog-error.log";
  
-    location / { + location "/
-        try_files $uri $uri/ /index.php?$args; +  try_files "$uri" "$uri/" "/index.php?$args"
-    }+ }
  
-    rewrite /wp-admin$ $scheme://$host$uri/ permanent;+ rewrite "/wp-admin$" "$scheme://$host$uri/" "permanent";
  
-    location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ { 
-          access_log off; log_not_found off; expires max; 
-    } 
 } }
  
 # End</code> # End</code>
  
-  "%SystemDrive%\www\scripts\freenginx\Reload.bat"+  "%SystemDrive%\www\scripts\nginx\Reload.bat"
  
-====== Batch Files ======+====== Scripts ======
  
   MKDIR "%SystemDrive%\www\scripts\blog"   MKDIR "%SystemDrive%\www\scripts\blog"
  
-  explorer "%SystemDrive%\www\scripts\blog"+  "explorer.exe" "%SystemDrive%\www\scripts\blog"
  
 ===== PHP-CGI ===== ===== PHP-CGI =====
  
-  notepad "%SystemDrive%\www\scripts\blog\PHP-CGI.bat"+  "notepad.exe" "%SystemDrive%\www\scripts\blog\PHP-CGI.bat"
  
 <code> <code>
Line 160: Line 152:
 SET "PHP_FCGI_CHILDREN=1" SET "PHP_FCGI_CHILDREN=1"
  
-START "Blog PHP-CGI" "php-cgi.exe" -b "127.0.0.1:9004" -c "%SystemDrive%\www\php\blog.ini" -q+START "Blog PHP-CGI" /MIN "php-cgi.exe" -b "127.0.0.1:9004" -c "%SystemDrive%\www\php\blog.ini" -q
  
 :: End</code> :: End</code>
Line 166: Line 158:
   "%SystemDrive%\www\scripts\blog\PHP-CGI.bat"   "%SystemDrive%\www\scripts\blog\PHP-CGI.bat"
  
-==== Autostart ====+===== Update =====
  
-  explorer "%ProgramData%\Microsoft\Windows\Start Menu\Programs\StartUp"+  "notepad.exe" "%SystemDrive%\www\scripts\blog\Update.bat"
  
-  "%SystemDrive%\www\scripts\blog\PHP-CGI.bat"+<code> 
 +@echo off
  
-  Blog PHP-CGI+TITLE Blog Updater
  
-===== Update =====+"%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\blog" reset --hard "origin/master" 
 +"%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\blog" pull origin "master" --rebase
  
-  * https://github.com/WordPress/WordPress/commits/master/+:: End</code>
  
-  notepad "%SystemDrive%\www\scripts\blog\Update.bat"+  "%SystemDrive%\www\scripts\blog\Update.bat" 
 + 
 +===== Back-up ===== 
 + 
 +  * ''D:\Servers\Scheduled Backups'' 
 + 
 +  "notepad.exe" "%SystemDrive%\www\scripts\blog\Back-up.bat"
  
 <code> <code>
 @echo off @echo off
  
-"%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\blog" reset --hard +TITLE Blog Back-up 
-"%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\blog" pull origin "master" --rebase+ 
 +:: User\Downloads 
 +::"tar.exe" -czf "%UserProfile%\Downloads\wordpress-files-auto-%RANDOM%.tar.gz" -C "%SystemDrive%\www" "blog" 
 +::"%ProgramFiles%\MariaDB 12.2\bin\mariadb-dump.exe" -u "root" --opt -r "%UserProfile%\Downloads\%RANDOM%-wordpress.sql" "wordpress" 
 + 
 +:: NAS 
 +"tar.exe" -czf "D:\Servers\Scheduled Backups\wordpress-files-auto-%RANDOM%.tar.gz" -C "%SystemDrive%\www" "blog" 
 +"%ProgramFiles%\MariaDB 12.2\bin\mariadb-dump.exe" -u "root" --opt -r "D:\Servers\Scheduled Backups\%RANDOM%-wordpress.sql" "wordpress"
  
 :: End</code> :: End</code>
 +
 +  "%SystemDrive%\www\scripts\blog\Back-up.bat"
  
 ===== Maintenance ===== ===== Maintenance =====
  
-  notepad "%SystemDrive%\www\scripts\blog\Maintenance.bat"+  "notepad.exe" "%SystemDrive%\www\scripts\blog\Maintenance.bat"
  
 <code> <code>
 @echo off @echo off
 +
 +TITLE Blog Maintenance
 +
 +MKDIR "%SystemDrive%\www\temp\blog"
 +MOVE /Y "%SystemDrive%\www\blog\wp-content\uploads" "%SystemDrive%\www\temp\blog"
 +COPY /Y "%SystemDrive%\www\blog\wp-config.php" "%SystemDrive%\www\temp\blog"
 +
 +CALL "%SystemDrive%\www\scripts\blog\Git Fix.bat"
 +
 +MOVE /Y "%SystemDrive%\www\temp\blog\uploads" "%SystemDrive%\www\blog\wp-content"
 +MOVE /Y "%SystemDrive%\www\temp\blog\wp-config.php" "%SystemDrive%\www\blog\wp-config.php"
 +RMDIR /S /Q "%SystemDrive%\www\temp\blog"
 +
 +:: End</code>
 +
 +  "%SystemDrive%\www\scripts\blog\Maintenance.bat"
 +
 +===== Git Fix =====
 +
 +  * :!: ''wp-content\uploads'' needs backed-up and restored (see [[#maintenance|Maintenance.bat]])
 +  * :!: [[#wp-configphp|wp-config.php]] needs re-applied afterwards
 +
 +  * :!: Set email for ''user.email''
 +
 +  "notepad.exe" "%SystemDrive%\www\scripts\blog\Git Fix.bat"
 +
 +<code>
 +@echo off
 +
 +TITLE Blog Git Fix
 +
 +RMDIR /S /Q "%SystemDrive%\www\blog\.git"
 +
 +"%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\blog" init --initial-branch="master"
 +"%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\blog" add "."
 +"%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\blog" config "user.email" "espionage724@x"
 +"%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\blog" commit --message="x"
 +
 +"%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\blog" remote add "origin" "https://github.com/WordPress/WordPress.git"
 +"%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\blog" pull --depth "1" --recurse-submodules "origin" "master" --rebase
 +"%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\blog" reset --hard "origin/master"
  
 "%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\blog" gc --aggressive --prune="all" "%ProgramFiles%\Git\bin\git.exe" -C "%SystemDrive%\www\blog" gc --aggressive --prune="all"
Line 199: Line 249:
  
 :: End</code> :: End</code>
 +
 +  "%SystemDrive%\www\scripts\blog\Git Fix.bat"
 +
 +====== Shortcuts ======
 +
 +===== Autostart =====
 +
 +==== PHP-CGI ====
 +
 +  "explorer.exe" "%AppData%\Microsoft\Windows\Start Menu\Programs\StartUp"
 +
 +  "%SystemDrive%\www\scripts\blog\PHP-CGI.bat"
 +
 +  Blog PHP-CGI
 +
 +====== Task Scheduler ======
 +
 +****
 +
 +  taskschd.msc
 +
 +===== Update =====
 +
 +  * ''2:00:00 AM'' daily
 +
 +  Blog Update
 +
 +  "%SystemDrive%\www\scripts\blog\Update.bat"
 +
 +===== Back-up =====
 +
 +  * Monthly -> All months -> Days: ''3''
 +  * ''2:15:00 AM''
 +
 +  Blog Back-up
 +
 +  "%SystemDrive%\www\scripts\blog\Back-up.bat"
 +
 +===== Maintenance =====
 +
 +  * Monthly -> All months -> Days: ''3''
 +  * ''2:30:00 AM''
 +
 +  Blog Maintenance
 +
 +  "%SystemDrive%\www\scripts\blog\Maintenance.bat"
  
 ====== Initial Setup ====== ====== Initial Setup ======
Line 210: Line 306:
 ===== wp-config.php ===== ===== wp-config.php =====
  
-  * Add around line 90 ((convenient ''Add any custom values between this line and the "stop editingline.''))+  * https://github.com/WordPress/WordPress/blob/master/wp-config-sample.php 
 +  * https://developer.wordpress.org/advanced-administration/wordpress/wp-config/ 
 + 
 +  * :!: Change ''DB_PASSWORD'' 
 + 
 +  "notepad.exe"%SystemDrive%\www\blog\wp-config.php" 
 + 
 +<code> 
 +<?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_DISPLAY', false ); 
 + 
 +if ( ! defined( 'ABSPATH' ) ) { 
 + define( 'ABSPATH', __DIR__ . '/' ); 
 +
 + 
 +require_once ABSPATH . 'wp-settings.php'; 
 + 
 +// End</code> 
 + 
 +====== Files ====== 
 + 
 +===== Backup ===== 
 + 
 +**** 
 + 
 +  "tar.exe" -czf "%UserProfile%\Downloads\wordpress-files-manual-%RANDOM%.tar.gz" -C "%SystemDrive%\www" "blog" 
 + 
 +====== Database ====== 
 + 
 +===== Backup ===== 
 + 
 +**** 
 + 
 +  CD "%USERPROFILE%\Downloads" && "%PROGRAMFILES%\MariaDB 12.2\bin\mariadb-dump.exe" -u "root" -p --opt -r "wordpress.sql" "wordpress" 
 + 
 +===== Restore ===== 
 + 
 +  * [[#database|Initial set-up]]
  
-  notepad "%SystemDrive%\www\blog\wp-config.php"+  "%ProgramFiles%\MariaDB 12.2\bin\mariadb.exe" -u "root" -p --execute="CREATE DATABASE wordpress"
  
-<code>define( 'WP_AUTO_UPDATE_CORE', false );</code>+  "%ProgramFiles%\MariaDB 12.2\bin\mariadb.exe" -u "root" -p "wordpress" "%UserProfile%\Downloads\wordpress.sql"
  
/srv/www/wiki/data/attic/servers/windows/nginx/wordpress.1737144874.txt.gz · Last modified: by Sean Rhone

Except where otherwise noted, content on this wiki is licensed under the following license: CC0 1.0 Universal
CC0 1.0 Universal Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki