PrestaShop installeren met Apache en Let’s Encrypt SSL op CentOS 8

PrestaShop is een open-source winkelkarretje geschreven in het PHP dat gebruikt wordt om je online winkel op te zetten en te beheren. Het biedt een eenvoudige en gebruiksvriendelijke interface die je helpt om in een minimum van tijd je online winkel te starten. Het biedt een heleboel functies waaronder, een gebruiksvriendelijke interface, meerdere betalingsgateways (PayPal, Google Checkout), mobiel-responsief ontwerp, gratis ondersteuning, meertalig, analytisch, rapportage en meer.

In dit artikel laten we je zien hoe je PrestaShop met Apache en een gratis Let’s Encrypt SSL certificaat op CentOS 8 kunt installeren.

Vereisten

  • Een server die CentOS 8 draait.
  • Een geldige domeinnaam met het IP van je server.
  • Een root wachtwoord is op je server ingesteld.

Installeer de LAMP server

Alvorens te beginnen moet de LAMP server op je server geïnstalleerd zijn. Als hij niet geïnstalleerd is kun je hem samen met andere PHP uitbreidingen installeren met het volgende commando:

dnf install httpd mariadb-server php php-cli php-bcmath php-mysqli php-gd php-pdo php-xmlrpc php-intl php-posix php-json php-curl php-zip unzip -y

Nadat je alle vereiste pakketten geïnstalleerd hebt, bewerk je het php.ini bestand en verander je enkele standaard instellingen:

nano /etc/php.ini

Verander de volgende regels:

max_input_vars = 3000
post_max_size = 64M
upload_max_filesize = 64M
max_execution_time = 600
memory_limit = 256M
date.timezone = Asia/Kolkata

Bewaar en sluit het bestand en start dan de Apache en MariaDB service en zet ze aan om te starten bij het herstarten van het systeem:

systemctl start httpd
systemctl start mariadb
systemctl enable httpd
systemctl enable mariadb

Op dit punt is de LAMP server in je server geïnstalleerd.

Maak een databank voor PrestaShop

PrestaShop gebruikt een MySQL/MariaDB database om zijn gegevens in op te slaan. Je zult dus een database en suer voor PrestaShop moeten maken.

Meld je eerst aan bij MariaDB met het volgende commando:

mysql

Eenmaal ingelogd maak je een database en gebruiker aan met het volgende commando:

MariaDB [(none)]> CREATE DATABASE prestashopdb;
MariaDB [(none)]> CREATE USER 'prestashopuser'@'localhost' IDENTIFIED BY 'securepassword';

Verleen vervolgens alle privileges aan de prestashopdb met het volgende commando:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON prestashopdb. * TO 'prestashopuser'@'localhost';

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

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

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

Installeer PrestaShop

Vervolgens moet je de nieuwste versie van PrestaShop downloaden van hun officiële download pagina. Je kunt het downloaden met het volgende commando:

wget https://download.prestashop.com/download/releases/prestashop_1.7.7.3.zip

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

unzip prestashop_1.7.7.3.zip -d /var/www/html/prestashop

Zet vervolgens het juiste eigendom op de prestashop directory met het volgende commando:

chown -R apache:apache /var/www/html/prestashop

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

Configureer Apache voor PrestaShop

Vervolgens moet je een Apache virtual host configuratiebestand voor PrestaShop maken. Je kunt het maken met het volgende commando:

nano /etc/httpd/conf.d/prestashop.conf

Voeg de volgende regels toe:

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName prestashop.example.com
    DocumentRoot /var/www/html/prestashop

    <Directory /var/www/html/prestashop>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog /var/log/httpd/prestashop-error_log
    CustomLog /var/log/httpd/prestashop-access_log common
</VirtualHost>

Sla het bestand op en sluit het als je klaar bent. Herstart vervolgens de Apache dienst om de veranderingen toe te passen:

systemctl restart httpd

Controleer vervolgens de status van de Apache dienst met het volgende commando:

systemctl status httpd

Je zou de volgende uitvoer moeten krijgen:

? httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/httpd.service.d
           ??php-fpm.conf
   Active: active (running) since Wed 2021-04-07 01:04:19 EDT; 2h 2min ago
     Docs: man:httpd.service(8)
 Main PID: 47841 (httpd)
   Status: "Total requests: 313; Idle/Busy workers 100/0;Requests/sec: 0.0425; Bytes served/sec: 1.2KB/sec"
    Tasks: 278 (limit: 12524)
   Memory: 35.9M
   CGroup: /system.slice/httpd.service
           ??47841 /usr/sbin/httpd -DFOREGROUND
           ??47843 /usr/sbin/httpd -DFOREGROUND
           ??47844 /usr/sbin/httpd -DFOREGROUND
           ??47845 /usr/sbin/httpd -DFOREGROUND
           ??47846 /usr/sbin/httpd -DFOREGROUND
           ??48061 /usr/sbin/httpd -DFOREGROUND

Apr 07 01:04:19 centos8 systemd[1]: Stopped The Apache HTTP Server.
Apr 07 01:04:19 centos8 systemd[1]: Starting The Apache HTTP Server...

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

Configureer Firewall

Vervolgens moet je via de firewall poorten 80 en 443 toestaan. Je kunt ze toestaan met het volgende commando:

firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --zone=public --permanent --add-service=https

Herlaad vervolgens de firewall om de veranderingen toe te passen:

firewall-cmd --reload

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

Toegang tot PrestaShop

Open nu je web browser en ga naar de PrestaShop webinterface met de URL http://prestashop.example.com. Je wordt doorverwezen naar de volgende pagina:

Prestashop installatieprogramma

Kies taal

Kies je taal en klik op de Next knop. Je zou de volgende pagina moeten zien:

Licentieovereenkomst

Ga akkoord met de Licentie-overeenkomst en klik op de Volgende knop. Je zou de volgende pagina moeten zien:

Shop details

Admin account

Geef je winkelnaam, landinformatie, account informatie en klik op de Volgende knop. Je zou de volgende pagina moeten zien:

Database configuratie

Geef je databasenaam, databank gebruikersnaam, wachtwoord en klik op de Volgende knop. Als de installatie voltooid is, zou je de volgende pagina moeten zien:

Prestashop installatie met succes voltooid

Klik op de knop Manage your store. Je zou de volgende pagina moeten zien:

Verwijder het installatieprogramma

Verwijder nu de installatiemap met het volgende commando:

rm -rf /var/www/html/prestashop/install

Klik vervolgens op de PrestaShop admin URL. Je zou de volgende pagina moeten zien:

Prestashop admin login

Geef je beheerders gebruikersnaam en wachtwoord op en klik op de LOG IN knop. Je zou het PrestaShop dashboard moeten zien op de volgende pagina:

Prestashop dashboard

Beveilig PrestaShop met Let’s Encrypt SSL

Vervolgens moet je de Certbot client installeren om de Let’s Encrypt SSL voor PrestaShop te installeren. Je kunt het installeren met het volgende commando:

dnf install letsencrypt python3-certbot-apache

Verkrijg en installeer vervolgens een SSL certificaat voor je lets domein met het volgende commando:

certbot --apache -d prestashop.example.com

Je wordt gevraagd je email adres op te geven en de dienstverleningsvoorwaarden te accepteren:

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. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, 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
Account registered.
Requesting a certificate for prestashop.example.com
Performing the following challenges:
http-01 challenge for prestashop.example.com
Waiting for verification.
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/httpd/conf.d/prestashop.conf
Redirecting all traffic on port 80 to ssl in /etc/httpd/conf.d/prestashop.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://prestashop.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Subscribe to the EFF mailing list (email: [email protected]).


IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/prestashop.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/prestashop.example.com/privkey.pem
   Your certificate will expire on 2021-06-09. 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"
 - 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

Je kunt nu je website veilig benaderen met de URL https://prestashop.example.com.

Conclusie

Gefeliciteerd! Je hebt met succes PrestaShop met Apache en Let’s Encrypt SSL geïnstalleerd op CentOS 8. Je kunt nu je product aan PrestaShop toevoegen en beginnen met online verkopen.