Joomla met Apache2 en Let’s Encrypt installeren op Ubuntu 20.04

Joomla is een open-source inhoudsbeheersysteem dat gebruikt wordt voor het publiceren van online toepassingen en websites. Het is geschreven in PHP en gebruikt MySQL/MariaDB als database back-end. Het is een eenvoudig, gebruiksvriendelijk en op een mobiel-ready model-view-controller web applicatie raamwerk gebouwd. Joomla heeft een heleboel mogelijkheden en ontwerpen die het een goede keus maken voor het bouwen van professionele sites.

In deze handleiding laten we je zien hoe je Joomla CMS met Apache installeert en met Let’s Encrypt SSL beveiligt op Ubuntu 20.04.

Vereisten

  • Een server met Ubuntu 20.04 met 2 GB RAM.
  • Een geldige domeinnaam die met je server is verbonden.
  • Een root wachtwoord is op je server ingesteld.

Installeer LAMP server

Eerst moet je de Apache webserver, MariaDB, PHP en andere PHP uitbreidingen in je systeem installeren. Je kunt ze installeren met het volgende commando:

apt-get install apache2 mariadb-server php7.4 libapache2-mod-php7.4 php7.4-cli php7.4-mysql php7.4-json php7.4-opcache php7.4-mbstring php7.4-intl php7.4-xml php7.4-gd php7.4-zip php7.4-curl php7.4-xmlrpc unzip -y

Als alle pakketten geïnstalleerd zijn, bewerk je het php.ini bestand en wijzig je enkele instellingen.

nano /etc/php/7.4/apache2/php.ini

Verander de volgende waarden:

memory_limit = 512M
upload_max_filesize = 256M
post_max_size = 256M
output_buffering = Off
max_execution_time = 300
date.timezone = Asia/Kolkata

Sla het bestand op en sluit het als je klaar bent.

Maak een Database

Beveilig eerst de MariaDB installatie en stel het MariaDB root wachtwoord in met het volgende commando:

mysql_secure_installation

Beantwoord alle vragen zoals hieronder aangegeven:

Enter current password for root (enter for none):
Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Log vervolgens in op de MariaDB shell met het volgende commando:

mysql -u root -p

Geef je MariaDB root wachtwoord als daarom gevraagd wordt en maak dan een databank en gebruiker voor Joomla met het volgende commando:

MariaDB [(none)]> CREATE DATABASE joomladb CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
MariaDB [(none)]> GRANT ALL ON joomladb.* TO 'joomla'@'localhost' IDENTIFIED BY 'password';

Spoel vervolgens de privileges door en verlaat de MariaDB shell met het volgende commando:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Download en installeer Joomla

Download eerst de nieuwste versie van de Joomla van zijn officiële website met het volgende commando:

wget https://downloads.joomla.org/cms/joomla3/3-9-18/Joomla_3-9-18-Stable-Full_Package.zip

Als de download voltooid is, pak je het gedownloade bestand uit in de Apache web root directory met het volgende commando:

unzip Joomla_3-9-18-Stable-Full_Package.zip -d /var/www/html/joomla

Verander vervolgens het eigendom van de joomla directory in www-data met het volgende commando:

chown -R www-data:www-data /var/www/html/joomla

Als je klaar bent, kun je verder gaan met de volgende stap.

Configureer Apache voor Joomla

Maak vervolgens een nieuw Apache virtual host configuratiebestand om Joomla te serveren.

nano /etc/apache2/sites-available/joomla.conf

Voeg de volgende inhoud toe:

<VirtualHost *:80>
  ServerName joomla.linuxbuz.com
  DirectoryIndex index.html index.php
  DocumentRoot /var/www/html/joomla

  ErrorLog ${APACHE_LOG_DIR}/joomla-error.log
  CustomLog ${APACHE_LOG_DIR}/joomla-access.log combined

  <Directory /var/www/html/joomla>
      Options FollowSymLinks
      AllowOverride All
      Require all granted
  </Directory>

</VirtualHost>

Sla het bestand op en sluit het af, schakel dan de Apache virtuele host in en herstart de Apache dienst met het volgende commando:

a2ensite joomla
systemctl restart apache2

Als je klaar bent, kun je verder gaan met de volgende stap.

Beveilig Joomla met Let’s Encrypt SSL

Eerst moet je het Certbot programma installeren om de Let’s Encrypt SSL te installeren en te beheren. Je kunt het installeren met het volgende commando:

apt-get install certbot python3-certbot-apache -y

Als de Certbot geïnstalleerd is, voer je het volgende commando uit om Let’s Encrypt SSL voor je website te downloaden en te installeren:

certbot --apache -d joomla.linuxbuz.com

Je wordt gevraagd je e-mail adres op te geven en de servicevoorwaarden te accepteren, zoals hieronder:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

Obtaining a new certificate
Performing the following challenges:
http-01 challenge for joomla.linuxbuz.com
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/joomla-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/joomla-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/joomla-le-ssl.conf

Kies vervolgens of je HTTP verkeer al dan niet naar HTTPS wilt omleiden, zoals hieronder:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Typ 2 en druk op Enter om de installatie te voltooien zoals hieronder.

Redirecting vhost in /etc/apache2/sites-enabled/joomla.conf to ssl vhost in /etc/apache2/sites-available/joomla-le-ssl.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://joomla.linuxbuz.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=joomla.linuxbuz.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/joomla.linuxbuz.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/joomla.linuxbuz.com/privkey.pem
   Your cert will expire on 2020-08-19. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

 - We were unable to subscribe you the EFF mailing list because your
   e-mail address appears to be invalid. You can try again later by
   visiting https://act.eff.org.

Op dit punt is je Joomla website beveiligd met Let’s Encrypt SSL. Je kunt nu verder gaan met de volgende stap.

Toegang tot het Joomla CMS

Open nu je web browser en typ de URL https://joomla.linuxbuz.com. Je wordt doorgestuurd naar de web-gebaseerde installatiewizard van Joomla:

Geef je sitenaam, admin e-mail, wachtwoord en klik op de knop Volgende. Je ziet nu de wizard voor de configuratie van de databank:

Geef de naam van je Joomla database, de gebruikersnaam, het wachtwoord en klik op de knop Volgende. Je zou de afrondingspagina van Joomla moeten zien:

Kies de gewenste optie en klik op de Installeren knop. Je zou de volgende pagina moeten zien:

Bekijk alle configuraties en klik op de knop Installeren. Als Joomla geïnstalleerd is, zou je het volgende scherm moeten zien:

Verwijder nu de installatiedirectory en klik op de Administrator knop. Je zou nu de login pagina van Joomla moeten zien:

Geef je Joomla gebruikersnaam en wachtwoord op en klik op de knop Log in. Je zou nu het Joomla dashboard moeten zien op de volgende pagina:

Je kunt ook naar je Joomla website gaan door de URL https://joomla.linuxbuz.com te bezoeken. Je zou je Joomla website in de volgende pagina moeten zien:

Conclusie

Gefeliciteerd! Je hebt met succes Joomla geïnstalleerd en beveiligd met Let’s Encrypt op Ubuntu 20.04. Je kunt nu gemakkelijk je eCommerce winkel, persoonlijke website, sociale site of blog bouwen. Voel je vrij me te vragen als je vragen hebt.