User Tools

Site Tools


servers:nginx:joomla

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
Last revisionBoth sides next revision
servers:nginx:joomla [2019/06/28 21:43] – [Copyright] Sean Rhoneservers:nginx:joomla [2024/02/01 08:08] – No more keywords https://forum.joomla.org/viewtopic.php?t=989140 Sean Rhone
Line 1: Line 1:
 ====== Information ====== ====== Information ======
  
-  * Joomla((https://www.joomla.org)) +  * Joomla ((https://www.joomla.org)) 
-  * T3 Framework ((http://www.t3-framework.org)) +  * :!: 5.1-dev ((https://github.com/joomla/joomla-cms/tree/5.1-dev))
-  * Purity III ((https://www.joomlart.com/joomla/templates/purity-iii))+
   * [[Information:Realm of Espionage]]   * [[Information:Realm of Espionage]]
   * https://realmofespionage.xyz   * https://realmofespionage.xyz
Line 10: Line 9:
  
   * [[distros:fedora_server|Fedora Server]]   * [[distros:fedora_server|Fedora Server]]
-  * [[servers:mariadb | MariaDB]] +  * [[servers:mariadb|MariaDB]] 
-  * [[servers:nginx_php_php-fpm | nginx + PHP + PHP-FPM]] +  * [[servers:nginx_php_php-fpm|nginx + PHP + PHP-FPM]] 
-  * [[servers:nginx:lets_encrypt | Let's Encrypt]]+  * [[servers:nginx:lets_encrypt|Let's Encrypt]]
  
 ===== Notes ===== ===== Notes =====
  
-  * Use ''#'' as a URL when a blank menu item is needed +  * Purity III ThemeMagic is not available with Joomla 4.x ([[https://www.joomlart.com/forums/d/46542-theme-magic-option-is-not-visible/2|source]]) 
-  * New Window With Navigation is needed in order to have external links open in a new tab + 
-  * Icons should be 16x16 when shown in Menus and Titles need to have a space before them so the icon and text aren't too close to each other +====== Dependencies ====== 
-  * Youtube's and Facebook's menu icon has to be named something other than ''youtube'' and ''facebook'' for it to display for some reason ((youtub and faceboo work)) + 
-  * Optimizing CSS from Purity III/T3 Templates seems to cause the hamburger icon for mobile to not show+  * https://docs.joomla.org/Special:MyLanguage/J5.x:Setting_Up_Your_Local_Environment 
 +  * https://manual.joomla.org/docs/next/get-started/technical-requirements/ 
 +  * https://docs.joomla.org/J5.x:Optional_Technical_Requirements 
 +  * ''php8-ldap'' isn't required but ''composer install'' complains about it unless you ignore platform dependencies 
 + 
 +  sudo dnf install composer nodejs php-ldap php-mysqlnd 
 + 
 +===== Old openSUSE ===== 
 + 
 +**** 
 + 
 +  sudo zypper install php8-sodium nodejs-common php-composer2 php8-mysql php8-fileinfo php8-ldap
  
 ====== Download Source ====== ====== Download Source ======
Line 26: Line 36:
 **** ****
  
-  sudo git clone --branch 'staging' --depth '1' --recurse-submodules 'https://github.com/joomla/joomla-cms.git' '/var/www/main' && sudo chown -R 'nginx':'nginx' '/var/www/main' && sync+  sudo git clone --branch '5.1-dev' --depth '1' --recurse-submodules 'https://github.com/joomla/joomla-cms.git' '/var/www/main' && sudo semanage fcontext --add --type 'httpd_sys_rw_content_t' '/var/www/main(/.*)?' && sudo restorecon -F -I -R '/var/www/main' && sudo chown -R 'nginx':'nginx' '/var/www/main' && sync
  
-===== SELinux =====+====== Environment ======
  
-  sudo semanage fcontext --deleteall "/var/www/main(/.*)?"+  * https://docs.joomla.org/Special:MyLanguage/J5.x:Setting_Up_Your_Local_Environment
  
-  sudo semanage fcontext --add --type 'httpd_sys_rw_content_t' "/var/www/main(/.*)?"+===== Composer =====
  
-  sudo restorecon --'/var/www/main' && sync+  sudo su 'nginx' -s '/bin/bash' 
 + 
 +  cd '/var/www/main' && composer install 
 + 
 +===== Node.js ===== 
 + 
 +  sudo su 'nginx' -s '/bin/bash' 
 + 
 +  cd '/var/www/main' && npm ci && npm audit fix && sync
  
 ====== Database ====== ====== Database ======
  
-  mysql --user='root' --password+  sudo mariadb
  
-  CREATE DATABASE joomla;+  CREATE DATABASE joomla_db;
  
-  GRANT ALL PRIVILEGES ON joomla.* to 'joomla'@'localhost' IDENTIFIED BY 'x';+  GRANT ALL PRIVILEGES ON joomla_db.* to 'joomla'@'localhost' IDENTIFIED BY 'x';
  
   FLUSH PRIVILEGES;   FLUSH PRIVILEGES;
 +
 +  EXIT
  
 ====== nginx + PHP-FPM Configuration ====== ====== nginx + PHP-FPM Configuration ======
Line 54: Line 74:
 <code> <code>
 [main] [main]
 +
 +; User/Group
 user = nginx user = nginx
 group = nginx group = nginx
  
 +; Socket
 listen = /run/php-fpm/main.sock listen = /run/php-fpm/main.sock
-listen.owner = nginx +listen.acl_users = nginx
-listen.group = nginx+
 listen.allowed_clients = 127.0.0.1 listen.allowed_clients = 127.0.0.1
  
-pm = dynamic +; Process Management 
-pm.max_children = 8 +pm = ondemand 
-pm.start_servers +pm.max_children = 4 
-pm.min_spare_servers = 2 +pm.process_idle_timeout 30
-pm.max_spare_servers = 4+
  
 +; Fedora php.ini Defaults
 +php_value[session.save_handler] = "files"
 +php_value[session.save_path] = "/var/lib/php/session"
 +
 +; General
 php_value[date.timezone] = "America/New_York" php_value[date.timezone] = "America/New_York"
-php_value[upload_tmp_dir] = "/tmp" 
- 
 php_value[max_execution_time] = "200" php_value[max_execution_time] = "200"
 php_value[memory_limit] = "512M" php_value[memory_limit] = "512M"
-php_value[post_max_size] = "10M+php_value[post_max_size] = "30M
-php_value[upload_max_filesize] = "10M"+php_value[upload_max_filesize] = "30M" 
 +php_value[post_max_size] = "30M"
 php_value[max_file_uploads] = "100" php_value[max_file_uploads] = "100"
 +php_value[upload_tmp_dir] = "/tmp"
  
-php_value[session.save_handler] = files +; End</code>
-php_value[session.save_path] = /var/lib/php/session +
-php_value[soap.wsdl_cache_dir] = /var/lib/php/wsdlcache +
-php_value[opcache.file_cache] = /var/lib/php/opcache</code>+
  
 ===== FastCGI ===== ===== FastCGI =====
Line 90: Line 113:
 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_pass unix:/run/php-fpm/main.sock;     fastcgi_pass unix:/run/php-fpm/main.sock;
Line 101: Line 123:
 ===== Server Block ===== ===== Server Block =====
  
-  sudo -e '/etc/nginx/conf.d/main.conf' && sudo systemctl reload 'nginx'+  * 2023/09/12: CSPs disabled; TODO: Re-figure out CSPs 
 +  * [[https://docs.joomla.org/Nginx|Nginx - Joomla! Documentation]] 
 + 
 +  sudo -e '/etc/nginx/vhosts.d/main.conf' && sudo systemctl restart 'nginx' && sync
  
 <code> <code>
Line 113: Line 138:
     include '/etc/nginx/default.d/headers.conf';     include '/etc/nginx/default.d/headers.conf';
  
-    client_max_body_size '10M';+    client_max_body_size '30M';
  
-    add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'" always;+#    add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'" always;
  
 #    access_log  /var/log/nginx/main-access.log; #    access_log  /var/log/nginx/main-access.log;
 #    error_log  /var/log/nginx/main-error.log; #    error_log  /var/log/nginx/main-error.log;
 +
 +    location /api/ {
 + try_files $uri $uri/ /api/index.php?$args;
 +    }
  
     location / {     location / {
Line 128: Line 157:
         error_page 403 /403_error.html;         error_page 403 /403_error.html;
     }     }
 +
 +    location ~* \.(ico|pdf|flv)$ {
 +        expires 1y;
 +    }
 +
 +    location ~* \.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$ {
 +        expires 14d;
 +    }
 + 
 }</code> }</code>
  
Line 133: Line 171:
  
   * https://realmofespionage.xyz   * https://realmofespionage.xyz
 +  * :!: If Joomla gives a 500 error, it's likely the ''sessions'' folder not having the right permissions, see [[servers:nginx_php_php-fpm#permissions]]
  
-====== Plugins ====== +====== Settings ======
- +
-===== T3 Framework ===== +
- +
-  * https://github.com/t3framework/t3/archive/master.zip+
  
 ===== Purity III Template ===== ===== Purity III Template =====
  
-  * https://www.joomlart.com/joomla/templates/purity-iii ((only the template is needed)) +  * [[https://www.joomlart.com/joomla/templates/purity-iii|Purity III]]
-  * Requires [[servers:nginx:joomla#t3_framework T3 Framework]]+
  
-  * Latest known version: 1.1.8+==== Install ====
  
-====== Settings ======+  * [[https://www.joomlart.com/member/downloads/joomlart/free-templates/purity-iii|Downloads]] 
 +  * Install T3 Framework and Purity III from that downloads page
  
-===== Global Configuration =====+==== System Dashboard ====
  
-==== Site Meta Description ====+  * Templates -> Site Template Styles 
 +  * Set ''purity_III - Default'' to Default
  
-****+==== Theme Settings ====
  
-  Realm of Espionage is a personal project composed of various self-hosted services. All services are hosted in-house under secure conditions, and notes are provided for all services under the CC-BY-SA 4.0 license.+  * General -> Show T3 Logo: Off
  
-==== Site Meta Keywords ====+  * Theme -> Logo Type: Text 
 +  * Theme -> Site Name: ''Realm of Espionage''
  
-****+  Navigation -> Megamenu Configuration -> Animation: Fading 
 +  Navigation -> Megamenu Configuration -> Duration: ''300''
  
-  privacy,linux,floss,foss,free,open,open-source,gnu,secure,hardened,ubuntu,espionage724,gaming,realm of espionage,roe,free and open-source software,transparent,transparency,letsencrypt,freedom,decentralized,self-host,self-hosted,in-house,decentralization+  * Add-ons -> Off-canvas Sidebar -> Enable: Off
  
-==== Content Rights ====+  * Assignment -> Toggle Selection
  
-****+==== Footer ====
  
-  Creative Commons Attribution-ShareAlike 4.0 International+=== Copyright ===
  
-==== Articles ====+  * Last tested: 2024/02/01 on Joomla 5.1.0-dev, T3 Framework 3.2.0, and Purity III 2.1.0
  
-  * System > Global Configuration > Articles+== Logo ==
  
-  Show Title: Hide +****
-  Show Category: Hide +
-  Show Author: Hide +
-  Show Publish Date: Hide +
-  * Show Navigation: Hide +
-  * Show Print: Hide +
-  * Show Email: Hide +
-  * Show Hits: Hide+
  
-==== Menu ====+  wget -O '/tmp/cc-by-sa-40.png' 'https://licensebuttons.net/l/by-sa/4.0/80x15.png' && sudo mv '/tmp/cc-by-sa-40.png' '/var/www/main/images/cc-by-sa-40.png' && sudo chown 'nginx':'nginx' '/var/www/main/images/cc-by-sa-40.png' && sudo restorecon -F -I -R '/var/www/main/images/cc-by-sa-40.png' && sync
  
-  * Menus > Main Menu > Home > Page Display+== Text ==
  
-  * Show Page Heading: No+  * 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
  
-===== Purity III =====+  sudo -e '/var/www/main/templates/purity_iii/tpls/blocks/footer.php' && sudo chown 'nginx':'nginx' '/var/www/main/templates/purity_iii/tpls/blocks/footer.php'
  
-==== Edit Style ====+<code> 
 +          <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></code>
  
-  * 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)) +==== Custom CSS ====
-  * 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]] TODO: Verify this since the footer fix has been changed))+
  
-==== Theme Magic ====+  * :!: This shrinks the footer height, and places it back at the bottom of the screen instead of floating half-way up the page when little content exists ([[https://www.joomlart.com/forums/topic/footer-on-bottom-of-screen-not-sticky/#post-898349|source 1]], [[https://www.joomlart.com/documentation/joomla-faqs/css-related-issues#footer-sticky|source 2]]) 
 +  * Also replaces ThemeMagic for Brand Primary Color, Footer Background, and Footer Text Color
  
-=== Brand Primary Color ===+  * Last tested: 2024/02/01 on Joomla 5.1.0-dev, T3 Framework 3.2.0, and Purity III 2.1.0
  
-****+  sudo -e '/var/www/main/templates/purity_iii/css/custom.css' && sudo chown 'nginx':'nginx' '/var/www/main/templates/purity_iii/css/custom.css'
  
-  #3D8BFF+<code> 
 +html,
  
-=== Footer Background ===+body { 
 +  height: 100%; 
 +}
  
-****+a { 
 +  color: #3D8BFF; 
 +}
  
-  #484848+a:hover { 
 +  color: #196BE4; 
 +}
  
-=== Footer Text Color ===+.t3-mainnav { 
 +  background-color: #3D8BFF; 
 +}
  
-****+.logo a { 
 +  background: none; 
 +}
  
-  #FFFFFF+.logo a:hover { 
 +  background: #196BE4; 
 +}
  
-===== Footer =====+.t3-wrapper { 
 +  position: relative; 
 +  min-height: 100%; 
 +}
  
-==== Copyright ====+.t3-footer { 
 +  position: absolute; 
 +  bottom: 0; 
 +  left: 0; 
 +  right: 0; 
 +  background-color: #484848; 
 +  color: #FFFFFF; 
 +}
  
-  * Requires [[servers:nginx:joomla#purity_iii|Purity III Template]]+.t3-copyright { 
 +  padding-top20px; 
 +  padding-bottom0px; 
 +}</code>
  
-=== Logo ===+===== Articles =====
  
-****+==== Home ====
  
-  sudo -H -u 'nginxwget 'https://licensebuttons.net/l/by-sa/4.0/80x15.png-O '/var/www/main/images/cc-by-sa-40.png'+  * The line-breaks are intentional and are there to make how it displays look nicer 
 +  * Add links to ''RoE | Wiki'' and ''CC BY-SA 4.0 license''
  
-=== Text ===+<code>  
 + 
  
-  * Place text within the ''<section class="t3-copyright">'' section underneath the ''Bootstrap by Twitter'' and ''Font Awesome'' mentions +Welcome! Realm of Espionage is a personal project composed of various services. All services on RoE are free and open-source, self-hosted, and configured with strict security in-mind. My most prominent project currently is RoE | Wiki, a DokuWiki instance that holds my notes on all sorts of operating system, client, and server deployments, free for anyone to view and redistribute under the CC BY-SA 4.0 license.
-  * Remove ''Bootstrap by Twitter'' and ''Font Awesome'' mentions+
  
-  sudo -H -u 'nginx' -e '/var/www/main/templates/purity_iii/tpls/blocks/footer.php'+ 
  
-<code> +This domain serves as a landing page and provides links to my most-used profiles and projectsTo view them, use the navigation bar (desktop) or the ≡ hamburger icon (mobile) at the top of the screen.
-          <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></code>+
  
-=== Position Fix ===+ </code>
  
-  * This places the footer back at the bottom of the screen instead of floating half-way up the page when little content exists +===== Menus =====
-  * This also shrinks the footer height a bit +
-  * Fix adapted from https://www.joomlart.com/forums/topic/footer-on-bottom-of-screen-not-sticky/#post-898349 +
-  * Requires [[servers:nginx:joomla#purity_iii | Purity III Template]]+
  
-  sudo --'nginx' -'/var/www/main/templates/purity_iii/css/custom.css'+  * Main menu headers are: System Links -> URL -''#'' to allow tapping as-expected on mobile 
 +  * Icon sizes are 24x24 
 +  * Menu entries should be named normally before saving for a proper ''alias'', and then add a space on the title afterwards to make it look better with the icon
  
-  html, +===== Global Configuration =====
-   +
-  body { +
-    height: 100%; +
-  } +
-   +
-  .t3-wrapper { +
-    position: relative; +
-    min-height: 100%; +
-  } +
-   +
-  .t3-footer { +
-    position: absolute; +
-    bottom: 0; +
-    left: 0; +
-    right: 0; +
-  } +
-   +
-  .t3-copyright { +
-    padding-top: 20px; +
-    padding-bottom: 0px; +
-  }+
  
-==== T3 Footer Remove ====+==== Site Meta Description ====
  
-  Unused currently, but may be useful if Joomla's native footer is to be used in-place of t3's+****
  
-  .t3-copyright { +  Realm of Espionage is a personal project composed of various self-hosted servicesAll services are hosted in-house under secure conditions, and notes are provided for all services under the CC-BY-SA 4.0 license.
-      display: none; +
-  }+
  
-===== Articles =====+==== Content Rights ====
  
-==== Home ====+****
  
-  * The line-breaks are intentional and are there to make how it displays look nicer +  Creative Commons Attribution-ShareAlike 4.0 International
-  * Add links to ''RoE | Wiki'' and ''CC BY-SA 4.0 license''+
  
-<code>  +==== Articles ====
- +
  
-Welcome! Realm of Espionage is a personal project composed of various services. All services on RoE are free and open-source, self-hosted, and configured with strict security in-mind. My most prominent project currently is RoE | Wiki, a DokuWiki instance that holds my notes on all sorts of operating system, client, and server deployments, free for anyone to view and redistribute under the CC BY-SA 4.0 license.+  * System -> Global Configuration -> Articles
  
- +  * Show Title: Hide 
 +  * Show Category: Hide 
 +  * Show Author: Hide 
 +  * Show Publish Date: Hide 
 +  * Show Navigation: Hide 
 +  * Show Print: Hide 
 +  * Show Email: Hide 
 +  * Show Hits: Hide
  
-This domain serves as a landing page and provides links to my most-used profiles and projects. To view them, use the navigation bar (desktop) or the hamburger icon (mobile) at the top of the screen.+==== Menu ====
  
- </code>+  * Menus -> Main Menu -> Home -> Link Type -> Display in Menu: No 
 +  * Menus -> Main Menu -> Home -> Page Display -Show Page Heading: Hide
  
 ====== Services ====== ====== Services ======
Line 304: Line 343:
  
 ==== Service ==== ==== Service ====
 +
 +  * 2023/09/12: TODO: SELinux prevents various actions with ''npm''; is it even needed?
  
   sudo -e '/etc/systemd/system/main-up.service'   sudo -e '/etc/systemd/system/main-up.service'
Line 312: Line 353:
 Group=nginx Group=nginx
 Type=oneshot Type=oneshot
-ExecStart='/usr/bin/git' -C '/var/www/main' pull origin 'staging'+WorkingDirectory=/var/www/main 
 +Environment="COMPOSER_CACHE_DIR=/dev/null" 
 +ExecStart='/usr/bin/git' -C '/var/www/main' pull origin '4.4-dev' 
 +ExecStart='/usr/bin/composer' install 
 +#ExecStart='/usr/bin/npm' ci --logs-max='0' 
 +#ExecStart='/usr/bin/npm' audit fix --audit-level='none' --logs-max='0'
 ExecStartPost='/usr/bin/sync'</code> ExecStartPost='/usr/bin/sync'</code>
  
Line 319: Line 365:
   * Every day at ''03:00:00''   * Every day at ''03:00:00''
  
-  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+  sudo -e '/etc/systemd/system/main-up.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'main-up.timer' --now
  
 <code> <code>
 [Unit] [Unit]
-Description=JoomlaGit Updater+Description=Joomla Git Updater
 After=network-online.target After=network-online.target
 Wants=network-online.target Wants=network-online.target
Line 357: Line 403:
 <code> <code>
 [Unit] [Unit]
-Description=JoomlaMaintenance+Description=Joomla Maintenance
 After=network-online.target After=network-online.target
 Wants=network-online.target Wants=network-online.target
Line 380: Line 426:
 Type=oneshot Type=oneshot
 WorkingDirectory=/var/www WorkingDirectory=/var/www
-ExecStart='/usr/bin/bash' -c '"/usr/bin/tar" -cvzf "/home/CHANGEME/backups/joomla-files-auto-"$$(date +%%Y-%%m-%%d)".tar.gz" "main"'+ExecStart='/usr/bin/bash' -c '"/usr/bin/tar" -czf "/home/CHANGEME/backups/joomla-files-auto-"$$(date +%%Y-%%m-%%d)".tar.gz" "main"'
 ExecStartPost='/usr/bin/sync'</code> ExecStartPost='/usr/bin/sync'</code>
  
Line 391: Line 437:
 <code> <code>
 [Unit] [Unit]
-Description=JoomlaFiles Backup+Description=Joomla Files Backup
  
 [Timer] [Timer]
Line 404: Line 450:
 === Database Auth === === Database Auth ===
  
-  sudo -'mysql' -e '/var/lib/mysql/auth/joomla' && sudo chmod '600' '/var/lib/mysql/auth/joomla'+  sudo mkdir -'/var/lib/mysql/auth&& sudo -e '/var/lib/mysql/auth/joomla' && sudo chown -R 'mysql':'mysql' '/var/lib/mysql/auth/joomla' && sudo chmod '600' '/var/lib/mysql/auth/joomla' && sync
  
 <code> <code>
-[mysqldump]+[mariadb-dump]
 user=joomla user=joomla
 password=x</code> password=x</code>
Line 413: Line 459:
 === Service === === Service ===
  
-  * :!: TODO: Figure out folder struture here +  mkdir -p ~/'backups' && sudo mkdir -'/var/lib/mysql/tmp&& sudo chown -R 'mysql':'mysql' '/var/lib/mysql/tmp' && sudo chmod '600' '/var/lib/mysql/tmp' && sudo -e '/etc/systemd/system/main-db.service' && sudo sed -i 's/'CHANGEME'/'$USER'/g' '/etc/systemd/system/main-db.service'
- +
-  mkdir -p ~/'backups' && sudo -'mysql' mkdir -'/var/lib/mysql/tmp' && sudo -e '/etc/systemd/system/main-db.service' && sudo sed -i 's/'CHANGEME'/'$USER'/g' '/etc/systemd/system/main-db.service'+
  
 <code> <code>
Line 421: Line 465:
 Type=oneshot Type=oneshot
 WorkingDirectory=/var/lib/mysql/tmp WorkingDirectory=/var/lib/mysql/tmp
-ExecStartPre='/usr/bin/mysqldump' --defaults-extra-file='/var/lib/mysql/auth/joomla' --single-transaction 'joomla' -r '/var/lib/mysql/tmp/joomla.sql'+ExecStartPre='/usr/bin/mariadb-dump' --defaults-extra-file='/var/lib/mysql/auth/joomla' --single-transaction 'joomla_db' -r '/var/lib/mysql/tmp/joomla.sql'
 ExecStart='/usr/bin/gzip' -f '/var/lib/mysql/tmp/joomla.sql' ExecStart='/usr/bin/gzip' -f '/var/lib/mysql/tmp/joomla.sql'
 ExecStart='/usr/bin/bash' -c '"/usr/bin/mv" "/var/lib/mysql/tmp/joomla.sql.gz" "/home/CHANGEME/backups/joomla-database-auto-"$$(date +%%Y-%%m-%%d)".sql.gz"' ExecStart='/usr/bin/bash' -c '"/usr/bin/mv" "/var/lib/mysql/tmp/joomla.sql.gz" "/home/CHANGEME/backups/joomla-database-auto-"$$(date +%%Y-%%m-%%d)".sql.gz"'
Line 434: Line 478:
 <code> <code>
 [Unit] [Unit]
-Description=JoomlaDatabase Backup+Description=Joomla Database Backup
 After=mariadb.service After=mariadb.service
  
Line 466: Line 510:
 **** ****
  
-  sudo -u 'mysql' mysqldump --defaults-extra-file='/var/lib/mysql/auth/joomla' --single-transaction 'joomla' -r ~/'joomla-database-manual-'$(date +%Y-%m-%d)'.sql' && sync+  sudo mariadb-dump --defaults-extra-file='/var/lib/mysql/auth/joomla' --single-transaction 'joomla_db' -r ~/'joomla-database-manual-'$(date +%Y-%m-%d)'.sql' && sync
  
 ==== Start Services ==== ==== Start Services ====
Line 480: Line 524:
 **** ****
  
-  scp espionage724@192.168.1.153:~/'joomla-files-'*'.tar.gz' espionage724@192.168.1.153:~/'joomla-database-'*'.sql' ~/'Downloads' && sync+  scp espionage724@192.168.1.152:~/'joomla-files-'*'.tar.gz' espionage724@192.168.1.152:~/'joomla-database-'*'.sql' ~/'Downloads' && sync
  
 ====== Restore ====== ====== Restore ======
Line 496: Line 540:
 **** ****
  
-  scp ~/'Downloads/joomla-files-'*'.tar.gz' ~/'Downloads/joomla-database-'*'.sql' espionage724@192.168.1.153:~+  scp ~/'Downloads/joomla-files-'*'.tar.gz' ~/'Downloads/joomla-database-'*'.sql' espionage724@192.168.1.152:~
  
 ==== Remove Files ==== ==== Remove Files ====
Line 512: Line 556:
   sudo systemctl stop nginx php-fpm   sudo systemctl stop nginx php-fpm
  
-==== Restore JoomlaFolder ====+==== Restore Joomla Folder ====
  
 **** ****
  
-  cd '/var/www' && sudo tar -xvzf ~/'joomla-files-'*'.tar.gz' 'main' && sudo chown -'nginx':'nginx' '/var/www/main' && cd ~ && sync +  cd '/var/www' && sudo tar -xvzf ~/'joomla-files-'*'.tar.gz' 'main' && sudo semanage fcontext --add --type 'httpd_sys_rw_content_t' '/var/www/main(/.*)?' && sudo restorecon ---'/var/www/main' && sudo chown -R 'nginx':'nginx' '/var/www/main' && cd ~ && sync
- +
-==== SELinux ==== +
- +
-  sudo semanage fcontext --deleteall "/var/www/main(/.*)?+
- +
-  sudo semanage fcontext --add --type 'httpd_sys_rw_content_t"/var/www/main(/.*)?" +
- +
-  sudo restorecon -R -v '/var/www/main' && sync+
  
 ==== Drop Previous Database ==== ==== Drop Previous Database ====
  
-  mysql --user='root' --password+  sudo mariadb
  
-  DROP DATABASE joomla;+  DROP DATABASE joomla_db;
  
   FLUSH TABLES;   FLUSH TABLES;
 +
 +  EXIT
  
 ==== Re-create Databases ==== ==== Re-create Databases ====
  
-  mysql --user='root' --password+  sudo mariadb
  
-  CREATE DATABASE joomla;+  CREATE DATABASE joomla_db; 
 + 
 +  EXIT
  
 ==== Restore Database ==== ==== Restore Database ====
Line 544: Line 584:
 **** ****
  
-  mysql --user='root' --password 'joomla' < ~/'joomla-database-'*'.sql' && sync+  sudo mariadb 'joomla_db' < ~/'joomla-database-'*'.sql' && sync
  
 ==== Reapply Permissions ==== ==== Reapply Permissions ====
  
-  mysql --user='root' --password+  sudo mariadb
  
-  GRANT ALL PRIVILEGES ON joomla.* to 'joomla'@'localhost' IDENTIFIED BY 'x';+  GRANT ALL PRIVILEGES ON joomla_db.* to 'joomla'@'localhost' IDENTIFIED BY 'x';
  
   FLUSH PRIVILEGES;   FLUSH PRIVILEGES;
 +
 +  EXIT
  
 ==== Start Services ==== ==== Start Services ====
Line 562: Line 604:
 ==== Remove Backups ==== ==== Remove Backups ====
  
-  * Verify that Joomlaworks before running+  * Verify that Joomla works before running
  
   rm ~/'joomla-files-'*'.tar.gz' ~/'joomla-database-'*'.sql' && sync   rm ~/'joomla-files-'*'.tar.gz' ~/'joomla-database-'*'.sql' && sync
 +
/var/www/wiki/data/pages/servers/nginx/joomla.txt · Last modified: 2024/02/01 08:15 by Sean Rhone