User Tools

Site Tools


servers:nginx:mybb

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
servers:nginx:mybb [2016/11/22 06:01]
Sean Rhone
servers:nginx:mybb [2016/11/22 16:03] (current)
Sean Rhone
Line 1: Line 1:
 +====== Information ======
  
 +  * MyBB ((https://mybb.com/))
 +  * [[Information:Realm of Espionage]]
 +  * https://forums.realmofespionage.xyz
 +
 +===== Prerequisites =====
 +
 +  * [[distros:fedora_server | Fedora Server]]
 +  * [[servers:mariadb | MariaDB]]
 +  * [[servers:nginx_php_php-fpm | nginx + PHP + PHP-FPM]]
 +  * [[servers:nginx:lets_encrypt | Let's Encrypt]]
 +
 +====== Download Source ======
 +
 +****
 +
 +  sudo git clone -b 'feature' 'https://github.com/mybb/mybb.git' '/var/www/forums' && sudo chcon -R -t 'httpd_sys_rw_content_t' '/var/www/forums' && sudo chown -R 'nginx':'nginx' '/var/www/forums' && sync
 +
 +====== Database ======
 +
 +  mysql -u 'root' -p
 +
 +  CREATE DATABASE mybb;
 +
 +  GRANT ALL PRIVILEGES ON mybb.* to 'mybb'@'localhost' IDENTIFIED BY 'x';
 +
 +  FLUSH PRIVILEGES;
 +
 +====== nginx + PHP-FPM Configuration ======
 +
 +===== PHP-FPM Socket =====
 +
 +  sudo -e '/etc/php-fpm.d/forums.conf' && sudo systemctl reload 'php-fpm'
 +
 +  [forums]
 +  user = nginx
 +  group = nginx
 +  
 +  listen = /run/php-fpm/forums.sock
 +  listen.owner = nginx
 +  listen.group = nginx
 +  listen.allowed_clients = 127.0.0.1
 +  
 +  pm = dynamic
 +  pm.max_children = 5
 +  pm.start_servers = 2
 +  pm.min_spare_servers = 1
 +  pm.max_spare_servers = 3
 +  
 +  php_admin_value[error_log] = /var/log/php-fpm/www-error.log
 +  php_admin_flag[log_errors] = on
 +  
 +  php_value[session.save_handler] = files
 +  php_value[session.save_path] = /var/lib/nginx/session
 +
 +===== FastCGI =====
 +
 +  sudo -e '/etc/nginx/default.d/forums.conf'
 +
 +  location ~ \.php$ {
 +      fastcgi_split_path_info ^(.+\.php)(/.+)$;
 +      try_files $fastcgi_script_name =404;
 +      set $path_info $fastcgi_path_info;
 +      fastcgi_param PATH_INFO $path_info;
 +      include fastcgi.conf;
 +      fastcgi_intercept_errors on;
 +      fastcgi_index index.php;
 +      fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
 +      fastcgi_param HTTPS on;
 +      fastcgi_pass unix:/run/php-fpm/forums.sock;
 +  }
 +
 +===== Server Block =====
 +
 +  sudo -e '/etc/nginx/conf.d/forums.conf' && sudo systemctl reload 'nginx'
 +
 +  server {
 +      listen '443' 'ssl' 'http2';
 +      server_name 'forums.realmofespionage.xyz';
 +      root '/var/www/forums';
 +      index 'index.php';
 +  
 +      include '/etc/nginx/default.d/forums.conf';
 +      include '/etc/nginx/default.d/restrictions.conf';
 +  
 +      #access_log /var/log/nginx/forums-access.log;
 +      #error_log /var/log/nginx/forums-error.log;
 +  
 +      location / {
 +          rewrite ^/forum-([0-9]+)\.html$ /forumdisplay.php?fid=$1;
 +          rewrite ^/forum-([0-9]+)-page-([0-9]+)\.html$ /forumdisplay.php?fid=$1&page=$2;
 +          rewrite ^/thread-([0-9]+)\.html$ /showthread.php?tid=$1;
 +          rewrite ^/thread-([0-9]+)-page-([0-9]+)\.html$ /showthread.php?tid=$1&page=$2;
 +          rewrite ^/thread-([0-9]+)-lastpost\.html$ /showthread.php?tid=$1&action=lastpost;
 +          rewrite ^/thread-([0-9]+)-nextnewest\.html$ /showthread.php?tid=$1&action=nextnewest;
 +          rewrite ^/thread-([0-9]+)-nextoldest\.html$ /showthread.php?tid=$1&action=nextoldest;
 +          rewrite ^/thread-([0-9]+)-newpost\.html$ /showthread.php?tid=$1&action=newpost;
 +          rewrite ^/thread-([0-9]+)-post-([0-9]+)\.html$ /showthread.php?tid=$1&pid=$2;
 +          rewrite ^/post-([0-9]+)\.html$ /showthread.php?pid=$1;
 +          rewrite ^/announcement-([0-9]+)\.html$ /announcements.php?aid=$1;
 +          rewrite ^/user-([0-9]+)\.html$ /member.php?action=profile&uid=$1;
 +          rewrite ^/archive/index.php/forum-([0-9]+)\.html$ /archive/index.php?forum-$1.html;
 +          rewrite ^/archive/index.php/thread-([0-9]+)\.html$ /archive/index.php?thread-$1.html;
 +          rewrite ^/archive/index.php/forum-([0-9]+)-([0-9]+)\.html$ /archive/index.php?forum-$1-$2.html;
 +          rewrite ^/archive/index.php/thread-([0-9]+)-([0-9]+)\.html$ /archive/index.php?thread-$1-$2.html;
 +      }
 +  }
 +
 +====== Initial Setup ======
 +
 +  * Use 4-Byte UTF-8 Unicode Table Encoding
 +
 +  * https://forums.realmofespionage.xyz/install/index.php
 +
 +====== Services ======
 +
 +===== Updater =====
 +
 +==== Service ====
 +
 +  sudo -e '/etc/systemd/system/forums-up.service'
 +
 +  [Service]
 +  User=nginx
 +  Group=nginx
 +  Type=oneshot
 +  ExecStart='/usr/bin/git' -C '/var/www/forums' pull origin 'feature'
 +  ExecStart='/usr/bin/sync'
 +
 +==== Timer ====
 +
 +  sudo -e '/etc/systemd/system/forums-up.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'forums-up.timer' --now && sudo systemctl start 'forums-up' && sudo systemctl status 'forums-up' -l
 +
 +  [Unit]
 +  Description=MyBB Git Updater
 +  After=network-online.target
 +  Wants=network-online.target
 +  
 +  [Timer]
 +  OnCalendar=*-*-* 01:55:00
 +  Persistent=true
 +  
 +  [Install]
 +  WantedBy=timers.target
 +
 +===== Backup =====
 +
 +==== Database Auth ====
 +
 +  sudo -e '/var/lib/mysqlauth/mybb' && sudo chmod '600' '/var/lib/mysqlauth/mybb'
 +
 +  [mysqldump]
 +  user=mybb
 +  password=x
 +
 +==== Service ====
 +
 +  mkdir -p ~/'backups' && sudo mkdir -p '/var/lib/mysqltmp' && sudo -e '/etc/systemd/system/forums-b.service' && sudo sed -i 's/CHANGEME/'$USER'/g' '/etc/systemd/system/forums-b.service'
 +
 +  [Service]
 +  Type=oneshot
 +  WorkingDirectory=/var/lib/mysqltmp
 +  ExecStart='/usr/bin/mysqldump' --defaults-extra-file='/var/lib/mysqlauth/mybb' --single-transaction 'mybb' -r '/var/lib/mysqltmp/mybb.sql'
 +  ExecStart='/usr/bin/gzip' -f '/var/lib/mysqltmp/mybb.sql'
 +  ExecStart='/usr/bin/bash' -c '"/usr/bin/mv" "/var/lib/mysqltmp/mybb.sql.gz" "/home/CHANGEME/backups/mybb-"$$(date +%%Y-%%m-%%d)".sql.gz"'
 +  ExecStart='/usr/bin/sync'
 +
 +==== Timer ====
 +
 +  sudo -e '/etc/systemd/system/forums-b.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'forums-b.timer' --now && sudo systemctl start 'forums-b' && sudo systemctl status 'forums-b' -l
 +
 +  [Unit]
 +  Description=MyBB Database Backup
 +  After=mariadb.service
 +  
 +  [Timer]
 +  OnCalendar=*-*-* 02:00:00
 +  Persistent=true
 +  
 +  [Install]
 +  WantedBy=timers.target
 +
 +====== Backup ======
 +
 +  * Create backup archive on server and transfer to client computer
 +
 +===== Server =====
 +
 +==== Stop Services ====
 +
 +****
 +
 +  sudo systemctl stop nginx php-fpm
 +
 +==== Backup Folder ====
 +
 +****
 +
 +  cd '/var/www' && tar -cvzf ~/'forums-manual.tar.gz' 'forums' && cd ~ && sync
 +
 +==== Backup Database ====
 +
 +****
 +
 +  mysqldump --defaults-extra-file='/var/lib/mysqlauth/mybb' --single-transaction 'mybb' -r '~/'mybb-manual.sql' && sync
 +
 +==== Start Services ====
 +
 +****
 +
 +  sudo systemctl start nginx php-fpm
 +
 +===== Client =====
 +
 +==== Transfer Files To Client ====
 +
 +****
 +
 +  scp espionage724@192.168.1.153:~/'forums-manual.tar.gz' ~/'mybb-manual.sql' ~/'Downloads' && sync'
 +
 +====== Restore ======
 +
 +===== Client =====
 +
 +==== Transfer Files To Server ====
 +
 +****
 +
 +  scp ~/'Downloads/forums-manual.tar.gz' ~/'Downloads/mybb-manual.sql' espionage724@192.168.1.153:~
 +
 +==== Remove Files ====
 +
 +****
 +
 +  rm ~/'Downloads/forums-manual.tar.gz' ~/'Downloads/mybb-manual.sql' && sync
 +
 +===== Server =====
 +
 +==== Stop Services ====
 +
 +****
 +
 +  sudo systemctl stop nginx php-fpm
 +
 +==== Remove Previous Folder ====
 +
 +****
 +
 +  sudo rm -Rf '/var/www/forums'
 +
 +==== Restore MyBB Folder ====
 +
 +****
 +
 +  cd '/var/www' && sudo tar -xvzf ~/'forums-manual.tar.gz' 'forums' && sudo chcon -R -t 'httpd_sys_rw_content_t' '/var/www/forums' && sudo chown -R 'nginx':'nginx' '/var/www/forums' && cd ~ && sync
 +
 +==== Drop Previous Database ====
 +
 +  mysql -u 'root' -p
 +
 +  DROP DATABASE mybb;
 +
 +  FLUSH TABLES;
 +
 +==== Re-create Databases ====
 +
 +  mysql -u 'root' -p
 +
 +  CREATE DATABASE mybb;
 +
 +==== Restore Database ====
 +
 +****
 +
 +  mysql -u 'root' -p 'mybb' < ~/'mybb-manual.sql' && sync
 +
 +==== Reapply Permissions ====
 +
 +  mysql -u 'root' -p
 +
 +  GRANT ALL PRIVILEGES ON mybb.* to 'mybb'@'localhost' IDENTIFIED BY 'x';
 +
 +  FLUSH PRIVILEGES;
 +
 +==== Start Services ====
 +
 +****
 +
 +  sudo systemctl start nginx php-fpm
 +
 +==== Remove Backups ====
 +
 +  * Verify that MyBB works before running
 +
 +  rm -R ~/'forums-manual.tar.gz' ~/'mybb-manual.sql' && sync
servers/nginx/mybb.txt ยท Last modified: 2016/11/22 16:03 by Sean Rhone