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
Next revisionBoth sides next revision
servers:nginx:joomla [2019/06/28 21:46] – [Database] Sean Rhoneservers:nginx:joomla [2024/02/01 08:04] 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 =====+===== Purity III Template =====
  
-  * https://github.com/t3framework/t3/archive/master.zip+  * [[https://www.joomlart.com/joomla/templates/purity-iii|Purity III]]
  
-===== Purity III Template =====+==== Install ====
  
-  * https://www.joomlart.com/joomla/templates/purity-iii ((only the template is needed)) +  * [[https://www.joomlart.com/member/downloads/joomlart/free-templates/purity-iii|Downloads]] 
-  * Requires [[servers:nginx:joomla#t3_framework | T3 Framework]]+  * Install T3 Framework and Purity III from that downloads page
  
-  * Latest known version: 1.1.8+==== System Dashboard ====
  
-====== Settings ======+  * Templates -> Site Template Styles 
 +  * Set ''purity_III - Default'' to Default
  
-===== Global Configuration =====+==== Theme Settings ====
  
-==== Site Meta Description ====+  * General -> Show T3 Logo: Off
  
-****+  Theme -> Logo Type: Text 
 +  Theme -> Site Name: ''Realm of Espionage''
  
-  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.+  * Navigation -> Megamenu Configuration -> Animation: Fading 
 +  * Navigation -> Megamenu Configuration -> Duration: ''300''
  
-==== Site Meta Keywords ====+  * Add-ons -> Off-canvas Sidebar -> Enable: Off
  
-****+  Assignment -> Toggle Selection
  
-  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+==== Footer ====
  
-==== Content Rights ====+=== Copyright ===
  
-****+  Last tested: 2024/02/01 on Joomla 5.1.0-dev, T3 Framework 3.2.0, and Purity III 2.1.0
  
-  Creative Commons Attribution-ShareAlike 4.0 International+== Logo ==
  
-==== Articles ====+****
  
-  * System > Global Configuration > Articles+  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
  
-  * Show Title: Hide +== Text ==
-  * Show Category: Hide +
-  * Show Author: Hide +
-  * Show Publish Date: Hide +
-  * Show Navigation: Hide +
-  * Show Print: Hide +
-  * Show Email: Hide +
-  * Show Hits: Hide+
  
-==== Menu ====+  * 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
  
-  * Menus > Main Menu > Home > Page Display+  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'
  
-  * Show Page HeadingNo+<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>
  
-===== Purity III =====+==== Custom CSS ====
  
-==== Edit Style ====+  * :!: 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
  
-  * Show T3 Logo = Off ((if shownit causes a 3rd-party asset to be loaded; why they didn't just include it in the theme files is beyond me)) +  * Last tested: 2024/02/01 on Joomla 5.1.0-dev, T3 Framework 3.2.0and Purity III 2.1.0
-  * 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 ====+  sudo -e '/var/www/main/templates/purity_iii/css/custom.css' && sudo chown 'nginx':'nginx' '/var/www/main/templates/purity_iii/css/custom.css'
  
-=== Brand Primary Color ===+<code> 
 +html,
  
-****+body { 
 +  height: 100%; 
 +}
  
-  #3D8BFF+a { 
 +  color: #3D8BFF
 +}
  
-=== Footer Background ===+a:hover { 
 +  color: #196BE4; 
 +}
  
-****+.t3-mainnav { 
 +  background-color: #3D8BFF; 
 +}
  
-  #484848+.logo a { 
 +  background: none; 
 +}
  
-=== Footer Text Color ===+.logo a:hover { 
 +  background: #196BE4; 
 +}
  
-****+.t3-wrapper { 
 +  position: relative; 
 +  min-height: 100%; 
 +}
  
-  #FFFFFF+.t3-footer { 
 +  position: absolute; 
 +  bottom: 0; 
 +  left: 0; 
 +  right: 0; 
 +  background-color: #484848; 
 +  color: #FFFFFF
 +}
  
-===== Footer =====+.t3-copyright { 
 +  padding-top: 20px; 
 +  padding-bottom: 0px; 
 +}</code>
  
-==== Copyright ====+===== Articles =====
  
-  * Requires [[servers:nginx:joomla#purity_iii|Purity III Template]]+==== Home ====
  
-=== Logo ===+  * 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''
  
-****+<code>  
 + 
  
-  sudo --u 'nginx' wget 'https://licensebuttons.net/l/by-sa/4.0/80x15.png' -O '/var/www/main/images/cc-by-sa-40.png'+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-mindMy 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.
  
-=== Text ===+ 
  
-  * Place text within the ''<section class="t3-copyright">'' section underneath the ''Bootstrap by Twitter'' and ''Font Awesome'' mentions +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.
-  * Remove ''Bootstrap by Twitter'' and ''Font Awesome'' mentions+
  
-  sudo -H -u 'nginx' -e '/var/www/main/templates/purity_iii/tpls/blocks/footer.php'+ </code>
  
-<code> +===== Menus =====
-          <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 ===+  * 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
  
-  * This places the footer back at the bottom of the screen instead of floating half-way up the page when little content exists +===== Global Configuration =====
-  * 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 -H -u 'nginx' -e '/var/www/main/templates/purity_iii/css/custom.css'+==== Site Meta Description ====
  
-  html, +****
-   +
-  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 ====+  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.
  
-  * Unused currently, but may be useful if Joomla's native footer is to be used in-place of t3's+==== Site Meta Keywords ====
  
-  .t3-copyright { +****
-      display: none; +
-  }+
  
-===== Articles =====+  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
  
-==== Home ====+==== Content Rights ====
  
-  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''+
  
-<code>  +  Creative Commons Attribution-ShareAlike 4.0 International
- +
  
-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.+==== Articles ====
  
- +  * System -> Global Configuration -> Articles
  
-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.+  * 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
  
- </code>+==== Menu ==== 
 + 
 +  * 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 349:
  
 ==== 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 359:
 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 371:
   * 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 409:
 <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 432:
 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 443:
 <code> <code>
 [Unit] [Unit]
-Description=JoomlaFiles Backup+Description=Joomla Files Backup
  
 [Timer] [Timer]
Line 404: Line 456:
 === 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 465:
 === Service === === 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'+  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'
  
 <code> <code>
Line 419: Line 471:
 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 432: Line 484:
 <code> <code>
 [Unit] [Unit]
-Description=JoomlaDatabase Backup+Description=Joomla Database Backup
 After=mariadb.service After=mariadb.service
  
Line 464: Line 516:
 **** ****
  
-  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 478: Line 530:
 **** ****
  
-  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 494: Line 546:
 **** ****
  
-  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 510: Line 562:
   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 542: Line 590:
 **** ****
  
-  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 560: Line 610:
 ==== 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