User Tools

Site Tools


servers:linux:nginx:mybb

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:mybb [2025/12/22 03:51] – [Server Block] Sean Rhoneservers:linux:nginx:mybb [2026/05/01 06:22] (current) Sean Rhone
Line 1: Line 1:
 ====== Information ====== ====== Information ======
  
-  * MyBB+  * MyBB ((https://mybb.com/))
   * [[information:realm_of_espionage|Realm of Espionage]]   * [[information:realm_of_espionage|Realm of Espionage]]
   * https://forums.realmofespionage.xyz   * https://forums.realmofespionage.xyz
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://docs.mybb.com/1.8/install/anonymous-statistics/   * https://docs.mybb.com/1.8/install/anonymous-statistics/
  
-  sudo apt install php-gd php-mbstring php-xml php-mysql+  sudo zypper install php8-gd php8-mbstring php8-mysql
  
 ====== Download Source ====== ====== Download Source ======
  
   * https://github.com/mybb/mybb/commits/feature/   * https://github.com/mybb/mybb/commits/feature/
 +  * https://github.com/mybb/mybb/branches
  
-  sudo git clone --branch 'feature' --depth '1' --recurse-submodules 'https://github.com/mybb/mybb.git' '/var/www/forum' && sudo chown -R 'www-data':'www-data' '/var/www/forum' && sudo chmod -R '0755' '/var/www/forum'+  sudo git clone --branch 'feature' --depth '1' --recurse-submodules 'https://github.com/mybb/mybb.git' '/srv/www/forum' && sudo chown -R 'wwwrun':'www' '/srv/www/forum' && sudo chmod -R '0755' '/srv/www/forum'
  
 ====== Database ====== ====== Database ======
Line 41: Line 42:
 ===== PHP-FPM Socket ===== ===== PHP-FPM Socket =====
  
-  sudo -e '/etc/php/8.4/fpm/pool.d/forum.conf' && sudo systemctl restart 'php8.4-fpm'+  sudo -e '/etc/php8/fpm/php-fpm.d/forum.conf' && sudo systemctl restart 'php-fpm'
  
 <code> <code>
 [forum] [forum]
 +user = "wwwrun"
 +group = "www"
  
-; User/Group +listen = "/run/php-fpm/forum.sock" 
-user = "www-data" +listen.owner = "wwwrun
-group = "www-data" +listen.group = "www"
- +
-; Socket +
-listen = "/run/php/forum.sock" +
-listen.owner = "www-data+
-listen.group = "www-data"+
 listen.mode = "0662" listen.mode = "0662"
  
-; Process Management 
 pm = "ondemand" pm = "ondemand"
 pm.max_children = "4" pm.max_children = "4"
 pm.process_idle_timeout = "30" pm.process_idle_timeout = "30"
  
-; Logging 
 php_value[log_errors] = "0" php_value[log_errors] = "0"
 php_value[error_reporting] = "~E_ALL" php_value[error_reporting] = "~E_ALL"
 +php_value[display_errors] = "0"
 +php_value[display_startup_errors] = "0"
 +php_value[html_errors] = "0"
  
-; General+php_value[session.save_path] = "/var/lib/php8/sessions"
 php_value[date.timezone] = "America/New_York" php_value[date.timezone] = "America/New_York"
  
Line 72: Line 71:
 ===== FastCGI ===== ===== FastCGI =====
  
-  sudo -e '/etc/nginx/snippets/forum.conf'+  sudo -e '/etc/nginx/default.d/forum.conf'
  
 <code> <code>
-location '~' '\.(php|phar)(/.*)?$'+ location '~' '\.(php|phar)(/.*)?$'
- +  fastcgi_split_path_info '^(.+\.(?:php|phar))(/.*)$'; 
- fastcgi_split_path_info '^(.+\.(?:php|phar))(/.*)$'; +  fastcgi_intercept_errors 'on'; 
- fastcgi_intercept_errors 'on'; +  fastcgi_index 'index.php'; 
- fastcgi_index 'index.php'; +  include 'fastcgi_params'; 
- include '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 'unix:/run/php-fpm/forum.sock'; 
- + }
- fastcgi_pass 'unix:/run/php/forum.sock'; +
- +
-}+
  
 # End</code> # End</code>
Line 93: Line 89:
 ===== Server Block ====== ===== Server Block ======
  
-  sudo -e '/etc/nginx/sites-available/forum.conf'+  * https://docs.mybb.com/1.8/administration/configuring-search-engine-friendly-URLs/ 
 + 
 +  sudo -e '/etc/nginx/vhosts.d/forum.conf' && sudo systemctl reload 'nginx'
  
 <code> <code>
 server { server {
- 
  listen '443' 'ssl';  listen '443' 'ssl';
  http2 'on';  http2 'on';
  server_name 'forums.realmofespionage.xyz';  server_name 'forums.realmofespionage.xyz';
- root '/var/www/forum';+ root '/srv/www/forum';
  index 'index.php';  index 'index.php';
  
- include '/etc/nginx/snippets/forum.conf'; + include '/etc/nginx/default.d/forum.conf'; 
- include '/etc/nginx/snippets/headers.conf';+ include '/etc/nginx/default.d/headers.conf';
  
 # access_log '/var/log/nginx/forum-access.log'; # access_log '/var/log/nginx/forum-access.log';
Line 111: Line 108:
  
  location '/' {  location '/' {
- rewrite ^/MyBB/forum-([0-9]+)\.html$ /MyBB/forumdisplay.php?fid=$1; +  rewrite '^/forum-([0-9]+)\.html$' '/forumdisplay.php?fid=$1'
- rewrite ^/MyBB/forum-([0-9]+)-page-([0-9]+)\.html$ /MyBB/forumdisplay.php?fid=$1&page=$2; +  rewrite '^/forum-([0-9]+)-page-([0-9]+)\.html$' '/forumdisplay.php?fid=$1&page=$2'
- rewrite ^/MyBB/thread-([0-9]+)\.html$ /MyBB/showthread.php?tid=$1; +  rewrite '^/thread-([0-9]+)\.html$' '/showthread.php?tid=$1'
- rewrite ^/MyBB/thread-([0-9]+)-page-([0-9]+)\.html$ /MyBB/showthread.php?tid=$1&page=$2; +  rewrite '^/thread-([0-9]+)-page-([0-9]+)\.html$' '/showthread.php?tid=$1&page=$2'
- rewrite ^/MyBB/thread-([0-9]+)-lastpost\.html$ /MyBB/showthread.php?tid=$1&action=lastpost; +  rewrite '^/thread-([0-9]+)-lastpost\.html$' '/showthread.php?tid=$1&action=lastpost'
- rewrite ^/MyBB/thread-([0-9]+)-nextnewest\.html$ /MyBB/showthread.php?tid=$1&action=nextnewest; +  rewrite '^/thread-([0-9]+)-nextnewest\.html$' '/showthread.php?tid=$1&action=nextnewest'
- rewrite ^/MyBB/thread-([0-9]+)-nextoldest\.html$ /MyBB/showthread.php?tid=$1&action=nextoldest; +  rewrite '^/thread-([0-9]+)-nextoldest\.html$' '/showthread.php?tid=$1&action=nextoldest'
- rewrite ^/MyBB/thread-([0-9]+)-newpost\.html$ /MyBB/showthread.php?tid=$1&action=newpost; +  rewrite '^/thread-([0-9]+)-newpost\.html$' '/showthread.php?tid=$1&action=newpost'
- rewrite ^/MyBB/thread-([0-9]+)-post-([0-9]+)\.html$ /MyBB/showthread.php?tid=$1&pid=$2;+  rewrite '^/thread-([0-9]+)-post-([0-9]+)\.html$' '/showthread.php?tid=$1&pid=$2';
  
- rewrite ^/MyBB/post-([0-9]+)\.html$ /MyBB/showthread.php?pid=$1;+  rewrite '^/post-([0-9]+)\.html$' '/showthread.php?pid=$1';
  
- rewrite ^/MyBB/announcement-([0-9]+)\.html$ /MyBB/announcements.php?aid=$1;+  rewrite '^/announcement-([0-9]+)\.html$' '/announcements.php?aid=$1';
  
- rewrite ^/MyBB/user-([0-9]+)\.html$ /MyBB/member.php?action=profile&uid=$1;+  rewrite '^/user-([0-9]+)\.html$' '/member.php?action=profile&uid=$1';
  
- rewrite ^/MyBB/calendar-([0-9]+)\.html$ /MyBB/calendar.php?calendar=$1; +  rewrite '^/calendar-([0-9]+)\.html$' '/calendar.php?calendar=$1'
- rewrite ^/MyBB/calendar-([0-9]+)-year-([0-9]+)\.html$ /MyBB/calendar.php?action=yearview&calendar=$1&year=$2; +  rewrite '^/calendar-([0-9]+)-year-([0-9]+)\.html$' '/calendar.php?action=yearview&calendar=$1&year=$2'
- rewrite ^/MyBB/calendar-([0-9]+)-year-([0-9]+)-month-([0-9]+)\.html$ /MyBB/calendar.php?calendar=$1&year=$2&month=$3; +  rewrite '^/calendar-([0-9]+)-year-([0-9]+)-month-([0-9]+)\.html$' '/calendar.php?calendar=$1&year=$2&month=$3'
- rewrite ^/MyBB/calendar-([0-9]+)-year-([0-9]+)-month-([0-9]+)-day-([0-9]+)\.html$ /MyBB/calendar.php?action=dayview&calendar=$1&year=$2&month=$3&day=$4; +  rewrite '^/calendar-([0-9]+)-year-([0-9]+)-month-([0-9]+)-day-([0-9]+)\.html$' '/calendar.php?action=dayview&calendar=$1&year=$2&month=$3&day=$4'
- rewrite ^/MyBB/calendar-([0-9]+)-week-(n?[0-9]+)\.html$ /MyBB/calendar.php?action=weekview&calendar=$1&week=$2;+  rewrite '^/calendar-([0-9]+)-week-(n?[0-9]+)\.html$' '/calendar.php?action=weekview&calendar=$1&week=$2';
  
- rewrite ^/MyBB/event-([0-9]+)\.html$ /MyBB/calendar.php?action=event&eid=$1;+  rewrite '^/event-([0-9]+)\.html$' '/calendar.php?action=event&eid=$1';
  }  }
- 
 } }
  
 # End</code> # End</code>
- 
-  sudo ln -s -f '/etc/nginx/sites-available/forum.conf' '/etc/nginx/sites-enabled/forum.conf' && sudo systemctl reload 'nginx' 
  
 ====== Initial Setup ====== ====== Initial Setup ======
Line 164: Line 158:
  
   * Disable Registrations: ''[x]'' Yes   * Disable Registrations: ''[x]'' Yes
 +
 +===== TODO =====
 +
 +  * Friendly Redirection Pages: Off
  
 ===== config.php ===== ===== config.php =====
Line 169: Line 167:
 **** ****
  
-  sudo -u 'www-data' -e '/var/www/forum/inc/config.php'ww/forum/inc/config.php'+  sudo -e '/srv/www/forum/inc/config.php' && sudo chown -v 'wwwrun':'www' '/srv/www/forum/inc/config.php'
  
 ====== Services ====== ====== Services ======
Line 181: Line 179:
 <code> <code>
 [Service] [Service]
-User=www-data+User=wwwrun
 Group=www Group=www
 Type=oneshot Type=oneshot
  
-Environment="COMPOSER_CACHE_DIR=/dev/null"+WorkingDirectory=/tmp
  
-ExecStart='/usr/bin/git' -C '/var/www/forum' pull origin 'feature' +ExecStart='/usr/bin/git' -C '/srv/www/forum' reset --hard 'origin/feature' 
- +ExecStart='/usr/bin/git' -'/srv/www/forum' pull origin 'feature' --rebase
-ExecStart='/usr/bin/composer' --working-dir='/var/www/forum' --no-cache install --no-dev +
- +
-ExecStartPost='/usr/bin/sync'+
  
 # End</code> # End</code>
Line 197: Line 192:
 ==== Timer ==== ==== Timer ====
  
-  * Every day at ''05:00:00''+  * Daily ''05:00:00 AM''
  
   sudo -e '/etc/systemd/system/forum-up.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'forum-up.timer' --now && sudo systemctl start 'forum-up' && sudo systemctl status 'forum-up' -l   sudo -e '/etc/systemd/system/forum-up.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'forum-up.timer' --now && sudo systemctl start 'forum-up' && sudo systemctl status 'forum-up' -l
Line 228: Line 223:
 Type=oneshot Type=oneshot
  
-ExecStart='/usr/bin/bash' -c '"/usr/bin/tar" -czf "/home/CHANGEME/backups/mybb-files-auto-"$$(date +%%Y-%%m-%%d)".tar.gz" -C "/var/www" "forum"'+WorkingDirectory=/srv/www/forum 
 + 
 +ExecStart='/usr/bin/bash' -c '"/usr/bin/tar" -czf "/home/CHANGEME/backups/mybb-files-auto-"$$(date +%%Y-%%m-%%d)".tar.gz" -C "/srv/www" "forum"'
  
 ExecStartPost='/usr/bin/sync' ExecStartPost='/usr/bin/sync'
Line 236: Line 233:
 === Timer === === Timer ===
  
-  * ''01'' day of every month at ''05:15:00''+  * Monthly (6th) ''05:15:00 AM''
  
   sudo -e '/etc/systemd/system/forum-fb.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'forum-fb.timer' --now   sudo -e '/etc/systemd/system/forum-fb.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'forum-fb.timer' --now
Line 245: Line 242:
  
 [Timer] [Timer]
-OnCalendar=*-*-01 05:15:00+OnCalendar=*-*-06 05:15:00
 Persistent=true Persistent=true
  
Line 259: Line 256:
 === Database Auth === === Database Auth ===
  
-  sudo mkdir -p '/var/lib/mysql/auth' && sudo -e '/var/lib/mysql/auth/mybb' && sudo chown 'mysql':'mysql' '/var/lib/mysql/auth/mybb' && sudo chmod '0600' '/var/lib/mysql/auth/mybb'+  sudo mkdir -p '/srv/lib/mysql/auth' && sudo -e '/srv/lib/mysql/auth/mybb' && sudo chown 'mysql':'mysql' '/srv/lib/mysql/auth/mybb' && sudo chmod '0600' '/srv/lib/mysql/auth/mybb'
  
 <code> <code>
Line 270: Line 267:
 === Service === === Service ===
  
-  mkdir -p ~/'backups' && sudo mkdir -p '/var/lib/mysql/tmp' && sudo -e '/etc/systemd/system/forum-db.service' && sudo sed -i 's/'CHANGEME'/'$USER'/g' '/etc/systemd/system/forum-db.service'+  mkdir -p ~/'backups' && sudo mkdir -p '/srv/lib/mysql/tmp' && sudo -e '/etc/systemd/system/forum-db.service' && sudo sed -i 's/'CHANGEME'/'$USER'/g' '/etc/systemd/system/forum-db.service'
  
 <code> <code>
Line 277: Line 274:
 Type=oneshot Type=oneshot
  
-ExecStart='/usr/bin/bash' -c '"/usr/bin/mariadb-dump" --defaults-extra-file="/var/lib/mysql/auth/mybb" --single-transaction --quick "mybb" -r "/home/CHANGEME/backups/mybb-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/mybb" --single-transaction --quick "mybb" -r "/home/CHANGEME/backups/mybb-database-auto-"$$(date +%%Y-%%m-%%d)".sql"'
  
 ExecStartPost='/usr/bin/sync' ExecStartPost='/usr/bin/sync'
Line 285: Line 284:
 === Timer === === Timer ===
  
-  * ''01'' day of every month at ''05:10:00''+  * Monthly (6th) ''05:10:00 AM''
  
   sudo -e '/etc/systemd/system/forum-db.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'forum-db.timer' --now && sudo systemctl start 'forum-db' && sudo systemctl status 'forum-db' -l   sudo -e '/etc/systemd/system/forum-db.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'forum-db.timer' --now && sudo systemctl start 'forum-db' && sudo systemctl status 'forum-db' -l
Line 295: Line 294:
  
 [Timer] [Timer]
-OnCalendar=*-*-01 05:10:00+OnCalendar=*-*-06 05:10:00
 Persistent=true Persistent=true
  
Line 311: Line 310:
 <code> <code>
 [Service] [Service]
-User=www-data+User=wwwrun
 Group=www Group=www
 Type=oneshot Type=oneshot
  
-ExecStart='/usr/bin/git' -C '/var/www/forum' reset --hard +WorkingDirectory=/srv/www/forum 
-ExecStart='/usr/bin/git' -C '/var/www/forum' gc --aggressive --prune='all' + 
-ExecStart='/usr/bin/git' -C '/var/www/forum' fsck --full --strict+ExecStart='/usr/bin/git' -C '/srv/www/forum' gc --aggressive --prune='all' 
 +ExecStart='/usr/bin/git' -C '/srv/www/forum' fsck --full --strict
  
 ExecStartPost='/usr/bin/sync' ExecStartPost='/usr/bin/sync'
Line 325: Line 325:
 ==== Timer ==== ==== Timer ====
  
-  * ''01'' day of every month at ''05:30:00''+  * Monthly (6th) ''05:30:00 AM''
  
   sudo -e '/etc/systemd/system/forum-m.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'forum-m.timer' --now   sudo -e '/etc/systemd/system/forum-m.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'forum-m.timer' --now
Line 336: Line 336:
  
 [Timer] [Timer]
-OnCalendar=*-*-01 05:30:00+OnCalendar=*-*-06 05:30:00
 Persistent=true Persistent=true
  
Line 352: Line 352:
 **** ****
  
-  sudo tar -czf ~/'mybb-files-manual-'$(date +%Y-%m-%d)'.tar.gz' -C '/var/www' 'forum'+  sudo tar -czf ~/'mybb-files-manual-'$(date +%Y-%m-%d)'.tar.gz' -C '/srv/www' 'forum'
  
 ===== Database ===== ===== Database =====
Line 384: Line 384:
 **** ****
  
-  ls ~/'mybb-files-'*'.tar.gz' && sudo rm -Rf '/var/www/forum'+  ls ~/'mybb-files-'*'.tar.gz' && sudo rm -Rf '/srv/www/forum'
  
 ===== Restore Files ===== ===== Restore Files =====
Line 390: Line 390:
 **** ****
  
-  sudo tar -xzf ~/'mybb-files-'*'.tar.gz' -C '/var/www' 'forum' && sudo chown -R 'www-data':'www' '/var/www/forum' && sudo chmod -R '0755' '/var/www/forum'+  sudo tar -xzf ~/'mybb-files-'*'.tar.gz' -C '/srv/www' 'forum' && sudo chown -R 'wwwrun':'www' '/srv/www/forum' && sudo chmod -R '0755' '/srv/www/forum'
  
-===== Git Fix =====+===== Restore Database =====
  
-  * :!: Set email for ''user.email''+  * [[#database|Initial set-up]]
  
-  sudo su 'www-data' -'/bin/bash'+  sudo mariadb --execute='DROP DATABASE mybb;'
  
-  rm -Rf '/var/www/forum/.git'+  sudo mariadb --execute='CREATE DATABASE mybb;'
  
-  git -C '/var/www/foruminit --initial-branch='feature'+  sudo mariadb 'mybb' < ~/'mybb'*'.sql'
  
-  git -C '/var/www/forum' add '.'+===== Git Fix =====
  
-  git -C '/var/www/forum' config 'user.email' 'espionage724@x'+  * :!: Set email for ''user.email''
  
-  git -'/var/www/forum' commit --message='x'+  sudo su 'wwwrun' -'/bin/bash'
  
-  git -'/var/www/forum' remote add 'origin' 'https://github.com/mybb/mybb.git'+  cd '/tmp' && rm -Rf '/srv/www/forum/.git'
  
-  git -C '/var/www/forum' pull --depth '1' --recurse-submodules 'origin' 'feature' --rebase+  git -C '/srv/www/forum' init --initial-branch='feature'
  
-  git -C '/var/www/forum' reset --hard 'origin/feature'+  git -C '/srv/www/forum' add '.'
  
-  git -C '/var/www/forum' gc --aggressive --prune='all'+  git -C '/srv/www/forum' config 'user.email' 'espionage724@x'
  
-  git -C '/var/www/forum' fsck --full --strict+  git -C '/srv/www/forum' commit --message='x'
  
-  exit+  git -C '/srv/www/forum' remote add 'origin' 'https://github.com/mybb/mybb.git'
  
-===== Restore Database =====+  git -C '/srv/www/forum' pull --depth '1' --recurse-submodules 'origin' 'feature' --rebase
  
-  * [[#database|Initial set-up]]+  git -C '/srv/www/forum' reset --hard 'origin/feature'
  
-  sudo mariadb --execute='DROP DATABASE mybb;'+  git -C '/srv/www/forum' gc --aggressive --prune='all'
  
-  sudo mariadb --execute='CREATE DATABASE mybb;'+  git -'/srv/www/forumfsck --full --strict
  
-  sudo mariadb 'mybb' < ~/'mybb'*'.sql'+  exit
  
 ===== Start nginx ===== ===== Start nginx =====
/srv/www/wiki/data/attic/servers/linux/nginx/mybb.1766393513.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