User Tools

Site Tools


servers:bsd:nginx:drupal

Differences

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

Link to this comparison view

servers:bsd:nginx:drupal [2025/05/16 23:25] – created Sean Rhoneservers:bsd:nginx:drupal [2025/08/28 22:16] (current) – removed Sean Rhone
Line 1: Line 1:
-====== Information ====== 
- 
-  * Drupal ((https://www.drupal.org)) 
-  * [[Information:Realm of Espionage]] 
-  * https://realmofespionage.xyz 
- 
-  * :!: WIP 
- 
-===== Prerequisites ===== 
- 
-  * [[bsd:server:freebsd_14.2|FreeBSD 14.2]] 
-  * [[servers:bsd:mariadb|MariaDB]] 
-  * [[servers:bsd:nginx_php_php-fpm|nginx + PHP + PHP-FPM]] 
-  * [[servers:bsd:nginx:lets_encrypt|Let's Encrypt]] 
- 
-====== Dependencies ====== 
- 
-  su - 
- 
-  pkg install git-lite php84-composer php84-dom php84-tokenizer php84-pdo php84-simplexml php84-xmlwriter php84-pdo_mysql php84-opcache 
- 
-====== Download Source ====== 
- 
-  * https://git.drupalcode.org/project/drupal/-/commits/11.x?ref_type=heads 
-  * https://git.drupalcode.org/project/drupal/-/branches 
- 
-  git clone --branch '11.x' --depth '1' --recurse-submodules 'https://git.drupalcode.org/project/drupal.git' '/usr/local/www/main' && chown -R 'www':'www' '/usr/local/www/main' && sync 
- 
-====== Database ====== 
- 
-  sudo mysql 
- 
-  CREATE DATABASE drupal; 
- 
-  GRANT ALL PRIVILEGES ON drupal.* to 'drupal'@'localhost' IDENTIFIED BY 'x'; 
- 
-  FLUSH PRIVILEGES; 
- 
-====== nginx + PHP-FPM Configuration ====== 
- 
-===== PHP-FPM Socket ===== 
- 
-  sudo -e '/etc/php/7.0/fpm/pool.d/main.conf' && sudo systemctl restart 'php7.0-fpm' 
- 
-  [main] 
-  user = www-data 
-  group = www-data 
-   
-  listen = /run/php/main.sock 
-  listen.owner = www-data 
-  listen.group = www-data 
-  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_value[max_execution_time] = 300 
-  php_value[request_terminate_timeout] = 300 
- 
-===== FastCGI ===== 
- 
-  sudo -e '/etc/nginx/snippets/main.conf' 
- 
-  location ~ '\.php$|^/update.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/main.sock; 
-      fastcgi_read_timeout 300; 
-  } 
- 
-===== Server Block ===== 
- 
-  sudo -e '/etc/nginx/sites-available/main.conf' 
- 
-  server { 
-      listen '443' 'ssl' 'http2'; 
-      server_name 'realmofespionage.xyz'; 
-      root '/var/www/main'; 
-      index 'index.php'; 
-   
-      include '/etc/nginx/snippets/main.conf'; 
-      include '/etc/nginx/snippets/restrictions.conf'; 
-   
-      #access_log /var/log/nginx/main-access.log; 
-      #error_log /var/log/nginx/main-error.log; 
-   
-      location / { 
-          try_files $uri /index.php?$query_string; 
-      } 
-   
-      location @rewrite { 
-          rewrite ^/(.*)$ /index.php?q=$1; 
-      } 
-   
-      location ~ /vendor/.*\.php$ { 
-          deny all; 
-          return 404; 
-      } 
-   
-      location ~ ^/sites/.*/files/styles/ { 
-          try_files $uri @rewrite; 
-      } 
-   
-      location ~ ^/system/files/ { 
-          try_files $uri /index.php?$query_string; 
-      } 
-  } 
- 
- 
-==== Enable Server Block ===== 
- 
-**** 
- 
-  sudo rm -f '/etc/nginx/sites-enabled/main.conf' && sudo ln -s '/etc/nginx/sites-available/main.conf' '/etc/nginx/sites-enabled' && sudo systemctl reload 'nginx' 
- 
-====== Initial Setup ====== 
- 
-  * https://realmofespionage.xyz/core/install.php 
- 
-====== Plugins ====== 
- 
-===== T3 Framework ===== 
- 
-  * https://github.com/t3framework/t3/releases 
-  * 2.6.1 
- 
-===== Purity III Template ===== 
- 
-  * https://www.joomlart.com/joomla/templates/purity-iii ((only the template is needed)) 
-  * Requires [[servers:nginx:joomla#t3_framework | T3 Framework]] 
-  * 1.1.7 
- 
-====== Settings ====== 
- 
-===== Global Configuration ===== 
- 
-==== Site Meta Description ==== 
- 
-**** 
- 
-  Realm of Espionage is an internet community with the main focus points of gaming, transparency, and the promotion of open-source technologies and security. 
- 
-==== Site Meta Keywords ==== 
- 
-**** 
- 
-  privacy,linux,floss,foss,free,open,open-source,gnu,secure,hardened,ubuntu,espionage724,gw2,wow,gaming,realm of espionage,roe,free and open-source software,transparent,transparency,letsencrypt,freedom,decentralized,self-host,self-hosted,in-house,decentralization 
- 
-==== Content Rights ==== 
- 
-**** 
- 
-  Creative Commons Attribution-ShareAlike 4.0 International 
- 
-===== Articles ===== 
- 
-  * TODO (there's a lot of things to make hidden) 
- 
-===== Purity III ===== 
- 
-==== Edit Style ==== 
- 
-  * Show T3 Logo = Off ((if shown, it causes a 3rd-party asset to be loaded; why they didn't just include it in the theme files is beyond me)) 
-  * Logo Type = Text 
-  * Megamenu Animation = Fading (300ms) 
-  * Off-canvas Sidebar = Off ((it doesn't play nicely with the [[servers:nginx:joomla#position_fix | footer position fix]])) 
- 
-==== Theme Magic ==== 
- 
-  * Brand Primary Color = ''#3D8BFF'' 
-  * Footer Background = ''#484848'' 
-  * Footer Text Color = ''#FFFFFF'' 
- 
-====== Footer ====== 
- 
-==== Copyright ==== 
- 
-  * Requires [[servers:nginx:joomla#purity_iii | Purity III Template]] 
- 
-=== Logo === 
- 
-**** 
- 
-  sudo -u 'www-data' wget 'https://licensebuttons.net/l/by-sa/4.0/80x15.png' -O '/var/www/main/images/cc-by-sa-40.png' 
- 
-=== Text === 
- 
-  * Place text within the ''<section class="t3-copyright">'' section underneath the ''Bootstrap by Twitter'' and ''Font Awesome'' mentions 
-  * Remove ''Bootstrap by Twitter'' and ''Font Awesome'' mentions 
- 
-  sudo -u 'www-data' -e '/var/www/main/templates/purity_iii/tpls/blocks/footer.php' 
- 
-            <small> 
-              This site is powered by <a href="https://www.joomla.org" target="_blank">Joomla!</a>, <a href="http://www.t3-framework.org" target="_blank">T3 Framework</a>, <a href="https://www.joomlart.com/joomla/templates/purity-iii" target="_blank">Purity III</a>, <a href="https://getbootstrap.com" target="_blank">Bootstrap</a>, and <a href="http://fontawesome.io" target="_blank">Font Awesome</a>. 
-            </small> 
-            <small> 
-              Dark <a href="https://wiki.realmofespionage.xyz/servers:nginx:joomla" target="_blank">words of power</a> were used in order to spawn this site. <div style="display:none;">(beware of imps)</div> 
-            </small> 
-            <small> 
-              <img src="https://realmofespionage.xyz/images/cc-by-sa-40.png" width="80" height="15" /> All content and data available on Realm of Espionage is available under the <a href="https://creativecommons.org/licenses/by-sa/4.0" target="_blank">Creative Commons Attribution-ShareAlike 4.0 International</a> license. 
-            </small> 
- 
-==== Position Fix ==== 
- 
-  * This places the footer back at the bottom of the screen instead of floating half-way up the page when little content exists 
-  * Requires [[servers:nginx:joomla#purity_iii | Purity III Template]] 
- 
-  sudo -u 'www-data' -e '/var/www/main/templates/purity_iii/css/custom.css' 
- 
-  /* Footer Styling */ 
-   
-  .t3-copyright { 
-  background: #484848 none repeat scroll 0 0; 
-  border-top: 1px solid #eeeeee; 
-  bottom: 0; 
-  font-size: 12px; 
-  left: 0; 
-  padding: 15px 0 0px; 
-  position: fixed; 
-  width: 100%; 
-  } 
-   
-  .t3-footer { 
-  /*padding-bottom: 209px;*/ 
-  bottom: 0; 
-  font-size: 12px; 
-  left: 0; 
-  } 
- 
-====== Services ====== 
- 
-===== Updater ===== 
- 
-==== Service ==== 
- 
-  sudo -e '/etc/systemd/system/main-up.service' 
- 
-  [Service] 
-  User=www-data 
-  Group=www-data 
-  Type=oneshot 
-  ExecStart='/usr/bin/git' -C '/var/www/main' pull origin 'staging' 
-  ExecStart='/bin/sync' 
- 
-==== Timer ==== 
- 
-  sudo -e '/etc/systemd/system/main-up.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'main-up.timer' --now && sudo systemctl start 'main-up' && sudo systemctl status 'main-up' -l 
- 
-  [Unit] 
-  Description=Joomla! Git Updater 
-  Wants=network-online.target 
-   
-  [Timer] 
-  OnCalendar=*-*-* 01:35:00 
-  Persistent=true 
-   
-  [Install] 
-  WantedBy=timers.target 
- 
-===== Backup ===== 
- 
-==== Database Auth ==== 
- 
-  sudo -e '/var/lib/mysqlauth/joomla' && sudo chmod '600' '/var/lib/mysqlauth/joomla' 
- 
-  [mysqldump] 
-  user=joomla 
-  password=x 
- 
-==== Service ==== 
- 
-  mkdir -p ~/'backups' && sudo mkdir -p '/var/lib/mysqltmp' && sudo -e '/etc/systemd/system/main-b.service' && sudo sed -i 's/CHANGEME/'$USER'/g' '/etc/systemd/system/main-b.service' 
- 
-  [Service] 
-  Type=oneshot 
-  WorkingDirectory=/var/lib/mysqltmp 
-  ExecStart='/usr/bin/mysqldump' --defaults-extra-file='/var/lib/mysqlauth/joomla' --single-transaction 'joomla' -r '/var/lib/mysqltmp/joomla.sql' 
-  ExecStart='/bin/gzip' -f '/var/lib/mysqltmp/joomla.sql' 
-  ExecStart='/bin/bash' -c '"/bin/mv" "/var/lib/mysqltmp/joomla.sql.gz" "/home/CHANGEME/backups/joomla-"$$(date +%%Y-%%m-%%d)".sql.gz"' 
-  ExecStart='/bin/sync' 
- 
-==== Timer ==== 
- 
-  sudo -e '/etc/systemd/system/main-b.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'main-b.timer' --now && sudo systemctl start 'main-b' && sudo systemctl status 'main-b' -l 
- 
-  [Unit] 
-  Description=Joomla! Database Backup 
-  After=mysql.service 
-   
-  [Timer] 
-  OnCalendar=*-*-* 01:40: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 php7.0-fpm 
- 
-==== Backup Folder ==== 
- 
-**** 
- 
-  cd '/var/www' && tar -cvzf ~/'main-manual.tar.gz' 'main' && cd ~ && sync 
- 
-==== Backup Database ==== 
- 
-**** 
- 
-  mysqldump --defaults-extra-file='/var/lib/mysqlauth/joomla' --single-transaction 'joomla' -r '~/'joomla-manual.sql' && sync 
- 
-==== Start Services ==== 
- 
-**** 
- 
-  sudo systemctl start nginx php7.0-fpm 
- 
-===== Client ===== 
- 
-==== Transfer Files To Client ==== 
- 
-**** 
- 
-  scp espionage724@192.168.1.153:~/'main-manual.tar.gz' ~/'joomla-manual.sql' ~/'Downloads' && sync' 
- 
-====== Restore ====== 
- 
-===== Client ===== 
- 
-==== Transfer Files To Server ==== 
- 
-**** 
- 
-  scp  ~/'Downloads/main-manual.tar.gz' ~/'Downloads/joomla-manual.sql' espionage724@192.168.1.153:~ 
- 
-==== Remove Files ==== 
- 
-**** 
- 
-  rm ~/'Downloads/main-manual.tar.gz' ~/'Downloads/joomla-manual.sql' && sync 
- 
-===== Server ===== 
- 
-==== Stop Services ==== 
- 
-**** 
- 
-  sudo systemctl stop nginx php7.0-fpm 
- 
-==== Remove Previous Folder ==== 
- 
-**** 
- 
-  sudo rm -Rf '/var/www/main' 
- 
-==== Restore Joomla! Folder ==== 
- 
-**** 
- 
-  cd '/var/www' && sudo tar -xvzf ~/'main-manual.tar.gz' 'main' && sudo chown -R 'www-data':'www-data' '/var/www/main' && cd ~ && sync 
- 
-==== Drop Previous Database ==== 
- 
-  sudo mysql 
- 
-  DROP DATABASE joomla; 
- 
-  FLUSH TABLES; 
- 
-==== Re-create Databases ==== 
- 
-  sudo mysql 
- 
-  CREATE DATABASE joomla; 
- 
-==== Restore Database ==== 
- 
-**** 
- 
-  sudo mysql 'joomla' < ~/'joomla-manual.sql' && sync 
- 
-==== Reapply Permissions ==== 
- 
-  sudo mysql 
- 
-  GRANT ALL PRIVILEGES ON joomla.* to 'joomla'@'localhost' IDENTIFIED BY 'x'; 
- 
-  FLUSH PRIVILEGES; 
- 
-==== Start Services ==== 
- 
-**** 
- 
-  sudo systemctl start nginx php7.0-fpm 
- 
-==== Remove Backups ==== 
- 
-  * Verify that Joomla! works before running 
- 
-  rm ~/'main-manual.tar.gz' ~/'joomla-manual.sql' && sync 
  
/usr/local/www/wiki/data/attic/servers/bsd/nginx/drupal.1747452332.txt.gz · Last modified: by Sean Rhone