#pragma section-numbers 2 ||<>|| {{attachment:IconsPage/important.png}} This guide was written for Ubuntu Server 20.04 and Joomla 4.0 The guide may be applicable for other version of Joomla!, Ubuntu or other Debian based distributions, but they have not been tested. If you have success with using this guide on other versions of Ubuntu or other Debian based distributions please feel free to add a note to this document. == Joomla! Community Documentation == Joomla! provides an [[http://docs.joomla.org/|online collaborative community manual]] for Joomla! users, developers or anyone interested in learning more about Joomla! Currently, they have over 4000 articles written and maintained by Joomla! community members. == PREPARE FOR INSTALLATION == '''This guide assumes you have installed a LAMP SERVER.''' See: [[https://ubuntu.com/server/docs/lamp-applications/|LAMP_SERVER]]. '''NOTE:''' The command line in the instructions to install the LAMP SERVER are incorrect, the correct command line is: sudo tasksel install lamp-server^ (Note the caret ^ at the end of the command line.) There are several prerequisites before you start installing Joomla!. === Recommended PHP.INI Settings === PHP settings must be adjusted to install. The settings are usually in "/etc/php/7.4/apache2/php.ini" The values for PHP.INI below are suggested values only. {{{ memory_limit - Minimum: 64M Recommended: 128M or better upload_max_filesize - Minimum: 30M post_max_size - Minimum: 30M max_execution_time: Recommended: 30 }}} === Create the MySql Database, the "JoomlaUser" and Grant Permissions to the Database === '''_Write this Information Down_''' {{{ sudo mysql -u root -p CREATE DATABASE joomla; CREATE USER 'joomlauser'@'localhost' IDENTIFIED BY 'new_password_here'; GRANT ALL ON joomla.* TO 'joomlauser'@'localhost'; FLUSH PRIVILEGES; EXIT; }}} '''SECURITY NOTE''' You do not want Joomla to use the mysql ''''root user'''' to access the database. The above command creates a mysql user (other than the mysql root user) with privileges to use the ''joomla'' database. You will need to chose the ''yourusername'' and ''yourpassword''. === Activate Uncomplicated FireWall === {{{ sudo ufw enable sudo ufw allow 'Apache Full' }}} An introduction to UFW can be found here: [[https://ubuntu.com/server/docs/security-firewall/|UFW]] == DOWNLOAD JOOMLA! == === Create a temporary directory to download and extract the Joomla package. === {{{ mkdir joomla cd joomla sudo wget -O joomla4.zip https://downloads.joomla.org/cms/joomla4/4-0-3/Joomla_4-0-3-Stable-Full_Package.zip?format=zip unzip joomla4.zip rm -f joomla4.zip }}} === Move the files and change ownership === {{{ cd .. sudo mv joomla /var/www sudo chown -R www-data:www-data /var/www/joomla }}} === Change File, Directory Permissions, Owner and Group === {{{ sudo find /var/www/joomla/ -type f -exec chmod 644 {} + sudo find /var/www/joomla/ -type d -exec chmod 755 {} + sudo chown -R www-data:www-data /var/www/joomla }}} == YOUR APACHE VIRTUAL HOST == === Create your Virtual Host === {{{ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/mynewsite.conf sudo nano /etc/apache2/sites-available/mynewsite.conf }}} === Copy the following into your newly created Virtual Host === {{{ ServerName mynewsite.com ServerAlias www.mynewsite.com ServerAdmin webmaster@mynewsite.com DocumentRoot /var/www/joomla LogLevel error }}} === Enable your Virtual Host === {{{ sudo a2ensite mynewsite sudo a2dissite 00-default.conf sudo systemctl restart apache2.service }}} == START INSTALL == Once the above requirements are met, a database created and the required Joomla! files in place, you are ready to install Joomla!. Enter https://www.yoursitename.com into your browser, and you should see the installation screen. === MAIN CONFIGURATION === Joomla will try to '''Select the Language''' automatically from your browser's language. You can change this if needed. Fill in the following information. * '''Site Name:''' The name of your website — this can be changed at any point later in the Site Global Configuration page. When everything on the first page is completed, click the '''Setup Login Data''' button to proceed: {{attachment:joomla1.png||align="top"}} === LOGIN DATA === You should now see the login data screen. Fill in the following information. * '''Real Name:''' The name of the Super User. This is how Joomla will greet you when you log in! * '''Super User account username:''' The username for the '''Super User'''. Avoid using admin (a good Security measure) or use My Profile in the Administration interface to change it later. * '''Admin Password:''' Remember that Super User has maximum control of the site (frontend & backend), so try to use a difficult password. Use My Profile in the Administration interface to change it later. * '''Super User Email Address:''' The Super User email address. Enter a valid email in case you forget your password. This is the email address where you'll receive a link to change the admin password. When everything on the second page is completed, click the '''Setup Database Connection''' button to proceed. {{attachment:joomla2.png||align="top"}} === DATABASE CONFIGURATION === Grab the information you wrote down when you Created your MySql Database, above. These instructions are a reference to installing with a MySQLi database. They are on the installation page and are self explanatory, but here they are for reference: * '''Database Type:''' MySQLi is the common database used * '''Hostname:''' Where your database is located. Common is localhost, but some hosts use a specific database server such as dbserver1.yourhost.com * '''Username:''' The username used to connect to the database * '''Password:''' The password for the database's user * '''Database Name:''' The name of the database * '''Table Prefix:''' This is generated automatically and can be a helpful security step, but you can change it. For example, jos3_ can be used. Just don't forget to put the underscore character (_) at the end of the prefix. * '''Connection Encryption:''' specifies how the connection to the database should be encrypted. If you don't know - then it's best to stick to the default. However, this allows enterprises with two way SSL encryption to the database to provide it. All these choices and more can be edited on the Site Global Configuration page, under Server Options after the installation is completed. Note, you will break your installation if you change these settings after installation unless you have a complete copy of the current database being used by the Joomla installation. Common uses would be to update the username and password of the database or to complete a move of an existing installation to a new host with different parameters. After you click the '''Install Joomla''' button, you should see the Joomla logo spinning. Once the installation completes, you should see the success page! {{attachment:joomla3.png||align="top"}} == FINISHING UP THE INSTALLAION == Congratulations! Joomla! 4 is now installed. If you want to start using Joomla right way without installing extra languages there is one last step to complete the installation. You must delete the '''Installation Folder'''. Click on '''Remove installation folder''' and a success message will appear. Now you can navigate to the '''Administrator Dashboard''' log in by clicking '''Complete & Open Admin''' or go right to your site by clicking '''Complete & Open Site'''. You may see a section with recommended PHP settings. * '''Recommended Settings:''' These settings are recommended in your PHP configuration, but will not prevent Joomla! from being installed. You can refer to the above instructions on how they may be changed if there is a need to do so. {{attachment:joomla4.png||align="top"}} '''INSTALLING EXTRA LANGUAGES''' Now you have a decision to make. If you wish to complete the installation without Installation Extra Languages,delete the 'installation folder'. As part of the Joomla installation process you are given the opportunity to install additional languages before you complete the installation by deleting the Installation Folder.To do this click on the Install Additional Languages button. This will take you to an extra installation page allowing you to select the languages you require. A list of language packs is displayed. Select up to 3 languages you wish to install (more than 3 at once can cause timeout issues - you can install more later). Remember the following: * Language packs included in custom distributions will not be listed at this stage as they are already installed. * A version of the packs proposed will match the Joomla Major version (4.0.x, 4.1.x, etc.). The minor version of the pack may not correspond, e.g. you are installing version 4.0.3 and a 4.0.2 language pack is shown. * Unmatched language packs may have un-translated strings. * The unmatched language packs will be offered as an update when the packs are updated by the registered Translation teams. The available update will be shown in the Control panel as well as in '''Extensions''' '''Manager → Update.''' This behaviour is similar to '''Extensions Manager → Install Languages.''' Click '''Next''' and a progress bar will be display while the language pack or packs are installed. {{attachment:joomla5.png||align="top"}} '''1. CHOOSE DEFAULT LANGUAGE.''' When the installation of the languages is complete you will now be presented with a very similar '''Congratulations,Your Joomla site is ready'''. The difference will be a list of the installed languages allowing you to select the default language for the Site and the Administrator interface. * Select the default language you wish to use. * When you have selected the default language, click the '''Set default language''' button to confirm. * A system message will be displayed confirming Joomla has set the default ADMINISTRATOR and SITE language. That message can be closed. {{attachment:joomla6.png||align="top"}} '''2. FINALISE''' You must now delete the '''Installation Folder'''. Click on '''Remove Installation folder.''' You will get a confirmation message and now can navigate to the Administrator Dashboard log in by clicking '''Complete & Open Admin''' or go right to your site by clicking '''Complete & Open Site.''' _________ '''Congratulations and welcome to the world of Joomla!'''