Magento E-Commerce Platform installatie met Apache2 en Let’s Encrypt op Ubuntu 20.04

Magento is een gratis en open-source e-commerce webapplicatie waarmee je in enkele minuten een volledig functionele eCommerce winkel kunt maken. Het is geschreven in PHP en combineert krachtige functies met flexibiliteit en een gebruikersvriendelijke interface. Het is een van de populairste oplossingen voor zelf gehoste webwinkels, dankzij zijn eenvoud en krachtige beheerpaneel. Het wordt geleverd met een rijke reeks functies, waaronder, Site Beheer, SEO, Catalogus Beheer, Producten en Catalogus Bladeren, Bestelbeheer, Kassa, Promoties en Conversie Hulpmiddelen, en nog veel meer.

In deze handleiding laten we je zien hoe je het Magento E-commerce platform installeert met Apache en Let’s Encrypt SSL op Ubuntu 20.04.

Vereisten

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

Installeer een LAMP server

Magento draait op de webserver, geschreven in PHP, en gebruikt MariaDB als databank. Je zult dus een LAMP stack in je server moeten installeren.

Installeer eerst de Apache webserver en de MariaDB server met het volgende commando:

apt-get install apache2 mariadb-server mariadb-client -y

De nieuwste versie van Magento is alleen compatibel met PHP 7.1.3+ en 7.2.x. Je moet dus de ondersteunde PHP versies met de vereiste extensies in je server installeren.

Standaard wordt Ubuntu 20.04 geleverd met PHP versie 7.4. Je zult dus de Ondrej PPA aan je systeem moeten toevoegen om andere PHP versies te kunnen installeren.

Je kunt de Ondrej PHP PPA toevoegen met het volgende commando:

apt-get install software-properties-common -y
add-apt-repository ppa:ondrej/php

Werk vervolgens de repository bij en installeer PHP met andere vereiste uitbreidingen met het volgende commando:

apt-get install php7.2 libapache2-mod-php7.2 php7.2-bcmath php7.2-common php7.2-mbstring php7.2-xmlrpc php7.2-soap php7.2-gd php7.2-xml php7.2-intl php7.2-mysql php7.2-cli php7.2-ldap php7.2-zip php7.2-curl wget curl unzip -y

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

Configureer de MariaDB Database

Standaard is de MariaDB niet beveiligd. Het is dus een goed idee om het MariaDB root wachtwoord te beveiligen en in te stellen. Je kunt dat doen 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

Zodra de MariaDB beveiligd is, log je in op MariaDB shell:

mysql -u root -p

Geef je MariaDB root wachtwoord op en maak dan een database en gebruiker voor Magento:

MariaDB [(none)]> CREATE DATABASE magentodb;
MariaDB [(none)]> CREATE USER 'magento'@'localhost' IDENTIFIED BY 'password';

Verleen vervolgens alle privileges aan de Magento database met het volgende commando:

MariaDB [(none)]> GRANT ALL ON magentodb.* TO 'magento'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

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

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

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

Magento downloaden

Op het moment van schrijven van deze handleiding is de nieuwste versie van Magento 2.3.5. Je kunt hem downloaden van de officiële Magento download pagina.

Eenmaal gedownload pak je het gedownloade bestand uit in de Apache web root directory met het volgende commando:

mkdir /var/www/html/magento
tar -xvjf magento-ce* -C /var/www/html/magento/

Geef vervolgens het juiste eigendom en de juiste toestemming aan de map magento:

chown -R www-data:www-data /var/www/html/magento/
chmod -R 755 /var/www/html/magento/

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

Configureer Apache voor Magento

Maak vervolgens een nieuw Apache virtual host configuratiebestand om de Magento website te bedienen.

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

Voeg de volgende regels toe:

<VirtualHost *:80>
     ServerAdmin [email protected]
     DocumentRoot /var/www/html/magento/
     ServerName magento.linuxbuz.com
     <Directory /var/www/html/magento/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
     </Directory>
     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

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

a2ensite magento.conf
a2enmod rewrite

Herstart tenslotte de Apache dienst om de veranderingen door te voeren:

systemctl restart apache2

Op dit punt is de Apache webserver geconfigureerd om Magento te serveren.

Beveilig Magento met Let’s Encrypt SSL

Het is altijd een goed idee om je website te beveiligen met Let’s Encrypt gratis SSL. Installeer eerst de Certbot client op je server om Let’s Encrypt SSL voor je website te downloaden en in te stellen.

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

Zodra 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 magento.linuxbuz.com

Je wordt gevraagd je geldige 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 magento.linuxbuz.com
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/magento-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/magento-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/magento-le-ssl.conf

Vervolgens wordt je gevraagd te kiezen of je HTTP verkeer al dan niet wilt omleiden naar HTTPS:

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.

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

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

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

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/magento.linuxbuz.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/magento.linuxbuz.com/privkey.pem
   Your cert will expire on 2020-08-11. 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

Toegang tot de Magento website

Op dit punt is je Magento website beveiligd met Let’s Encrypt SSL.

Open nu je web browser en typ de URL https://magento.linuxbuz.com. Je wordt doorgestuurd naar de Magento web-gebaseerde installatie wizard:

Magento setup

Klik op de knop Agree and Setup Magento. Je zou het Magento Gereedheidsscherm moeten zien:

Gereedheidscontrole

Klik op de knop Gereedheidscontrole starten. Als de Gereedheidscontrole voltooid is, zou je het volgende scherm moeten zien:

Aan alle voorwaarden is voldaan

Klik op de knop Volgende. Je zou het scherm Database setup moeten zien:

Configureer de databank

Geef je Magento databasenaam, databank gebruikersnaam en wachtwoord op en klik op de Volgende knop. Je zou de Magento web configuratie wizard moeten zien:

webconfiguratie

Geef je Magento Store en Admin adres op, schakel HTTPS in en klik op de knop Volgende. Je zou nu het scherm Winkel aanpassen moeten zien:

Aangepaste winkelinstellingen

Stel je voorkeur in voor Tijdzone, Valuta, Taal en klik op de Volgende knop. Je zou het scherm voor het aanmaken van een admin gebruiker moeten zien:

Maak een admin gebruiker aan

Geef je admin gebruikersnaam, e-mail, wachtwoord op en klik op de knop Volgende. Je zou het volgende scherm moeten zien:

Installeer nu

Klik op de Install Now knop om de installatie te starten. Als de installatie met succes voltooid is, zou je het volgende scherm moeten zien:

Installatie geslaagd

Klik op het Magento admin adres. Je zou de Magento admin pagina moeten zien:

Magento Inloggen

Geef je Magento admin gebruikersnaam en wachtwoord op en klik op de Log in knop. Je zou het Magento dashboard moeten zien in het volgende scherm:

Magento Dashboard

Je kunt de Magento winkel ook openen met de URL https://magento.linuxbuz.com. Je zou het volgende scherm moeten zien:

Magento startpagina

Conclusie

Gefeliciteerd! Je hebt met succes Magento met Let’s Encrypt SSL geïnstalleerd op Ubuntu 20.04. Je kunt nu gemakkelijk je eigen online winkel opzetten. Voel je vrij om me te vragen als je vragen hebt.