Magento è una delle piattaforme di e-commerce open source più popolari che ti consente di creare siti Web di e-commerce e negozi online in pochi minuti. È scritto in PHP, basato su Zend Framework e utilizza il modello di database Entity Attribute Value (EAV) per memorizzare i dati. Viene fornito con un'interfaccia semplice e intuitiva che ti consente di personalizzare il tuo negozio online e vendere facilmente i tuoi prodotti e servizi.
In questo tutorial, ti mostreremo come installare la piattaforma eCommerce Magento su CentOS 8 con Let's Encrypt SSL gratuito.
Requisiti
- Un server che esegue CentOS 8 con 2 GB di RAM.
- Un nome di dominio valido puntato all'IP del tuo server.
- Sul server è configurata una password di root.
Installa il server LEMP
Innanzitutto, installa il server Web Nginx, il server di database MariaDB, PHP e altre librerie PHP richieste eseguendo il comando seguente:
dnf install nginx mariadb-server php php-cli php-mysqlnd php-opcache php-xml php-gd php-soap php-bcmath php-intl php-mbstring php-json php-iconv php-fpm php-zip unzip git -y
Una volta installati tutti i pacchetti, avvia il servizio Nginx, MariaDB e PHP-FPM e abilita l'avvio dopo il riavvio del sistema con il seguente comando:
systemctl start nginx
systemctl start mariadb
systemctl start php-fpm
systemctl enable nginx
systemctl enable mariadb
systemctl enable php-fpm
Successivamente, dovrai modificare il file php.ini e modificare alcune impostazioni:
nano /etc/php.ini
Modifica le seguenti righe:
memory_limit =512M upload_max_filesize = 200M zlib.output_compression = On max_execution_time = 300 date.timezone = Asia/Kolkata
Salva e chiudi il file quando hai finito.
Configura database
Per impostazione predefinita, MariaDB non è protetto, quindi dovrai prima proteggerlo. Esegui il seguente script per proteggere MariaDB:
mysql_secure_installation
Rispondi a tutte le domande come mostrato di seguito:
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
Una volta terminato, accedi alla shell di MariaDB con il seguente comando:
mysql -u root -p
Fornisci la tua password di root quando richiesto, quindi crea un database e un utente per Magento come mostrato di seguito:
MariaDB [(none)]> CREATE DATABASE magentodb;
MariaDB [(none)]> GRANT ALL ON magentodb.* TO [email protected] IDENTIFIED BY 'password';
Quindi, svuota i privilegi ed esci dalla shell MariaDB con il seguente comando:
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
Configura PHP-FPM per Magento
Successivamente, dovrai configurare il pool PHP-FPM per la tua istanza Magento. Puoi configurarlo creando il seguente file:
nano /etc/php-fpm.d/magento.conf
Aggiungi le seguenti righe:
[magento] user = nginx group = nginx listen.owner = nginx listen.group = nginx listen = /run/php-fpm/magento.sock pm = ondemand pm.max_children = 50 pm.process_idle_timeout = 10s pm.max_requests = 500 chdir = /
Salva e chiudi il file, quindi riavvia il servizio PHP-FPM per implementare le modifiche:
systemctl restart php-fpm
Scarica Magento
Innanzitutto, scarica l'ultima versione di Magento dal repository Git usando il seguente comando:
cd /var/www/html
wget https://github.com/magento/magento2/archive/2.3.zip
Una volta scaricato, decomprimi il file scaricato come mostrato di seguito:
unzip 2.3.zip
Quindi, sposta la directory estratta su magento2 come mostrato di seguito:
mv magento2-2.3 magento2
Successivamente, dovrai installare Composer per installare le dipendenze PHP per Magento.
Puoi installare il Composer con il seguente comando:
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
Quindi, cambia la directory in magento2 e installa tutte le dipendenze Magento con il seguente comando:
cd /var/www/html/magento2
composer update
composer install
Successivamente, dovrai creare il crontab Magento per pianificare le attività. Puoi crearlo con il seguente comando:
./bin/magento cron:install
Puoi verificare crontab usando il seguente comando:
crontab -l
Dovresti ottenere il seguente output:
#~ MAGENTO START f73db5f5dcf223372d4c9fab56bef0c1730eece898fad5cbee0c313b46b0dd1f * * * * * /usr/bin/php /var/www/html/magento2/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /var/www/html/magento2/var/log/magento.cron.log * * * * * /usr/bin/php /var/www/html/magento2/update/cron.php >> /var/www/html/magento2/var/log/update.cron.log * * * * * /usr/bin/php /var/www/html/magento2/bin/magento setup:cron:run >> /var/www/html/magento2/var/log/setup.cron.log #~ MAGENTO END f73db5f5dcf223372d4c9fab56bef0c1730eece898fad5cbee0c313b46b0dd1f
Quindi, dai le autorizzazioni appropriate alla directory magento2:
chown -R nginx:nginx /var/www/html/magento2
chmod -R 755 /var/www/html/magento2
Configura Nginx per Magento
Successivamente, dovrai creare un file host virtuale Nginx per Magento. Puoi crearlo con il seguente comando:
nano /etc/nginx/conf.d/magento.conf
Aggiungi le seguenti righe:
upstream fastcgi_backend { server unix:/run/php-fpm/magento.sock; } server { listen 80; server_name magento.linuxbuz.com; set $MAGE_ROOT /var/www/html/magento2; set $MAGE_MODE developer; access_log /var/log/nginx/magento-access.log; error_log /var/log/nginx/magento-error.log; include /var/www/html/magento2/nginx.conf.sample; }
Salva e chiudi il file quando hai finito. Quindi, riavvia il servizio Nginx e PHP-FPM per implementare le modifiche:
systemctl restart php-fpm
systemctl restart nginx
Configura SELinux e Firewall
Per impostazione predefinita, SELinux è abilitato in CentOS 8. Quindi dovrai configurare SELinux affinché Magento funzioni correttamente.
Puoi configurare SELinux con il seguente comando:
semanage permissive -a httpd_t
Successivamente, dovrai creare una regola firewall per consentire il servizio HTTP e HTTPS da reti esterne. Puoi consentirlo con il seguente comando:
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
Proteggi Magento con Let's Encrypt SSL
Magento è ora installato e configurato. È ora di proteggerlo con Let's Encrypt SSL gratuito.
Per fare ciò, dovrai scaricare il client certbot sul tuo server. Puoi scaricare e impostare l'autorizzazione corretta eseguendo il comando seguente:
wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto
Ora, esegui il seguente comando per ottenere e installare un certificato SSL per il tuo sito Web Magento.
certbot-auto --nginx -d magento.linuxbuz.com
Il comando precedente installa prima tutte le dipendenze richieste come mostrato di seguito:
Installed: gcc-8.2.1-3.5.el8.x86_64 mod_ssl-1:2.4.37-12.module_el8.0.0+185+5908b0db.x86_64 python3-virtualenv-15.1.0-18.module_el8.0.0+33+0a10c0e1.noarch python36-devel-3.6.8-2.module_el8.0.0+33+0a10c0e1.x86_64 redhat-rpm-config-116-1.el8.0.1.noarch augeas-libs-1.10.1-8.el8.x86_64 libffi-devel-3.1-18.el8.x86_64 openssl-devel-1:1.1.1-8.el8.x86_64 annobin-8.64-1.el8.x86_64 cpp-8.2.1-3.5.el8.x86_64 dwz-0.12-9.el8.x86_64 efi-srpm-macros-3-2.el8.noarch ghc-srpm-macros-1.4.2-7.el8.noarch go-srpm-macros-2-16.el8.noarch isl-0.16.1-6.el8.x86_64 libmpc-1.0.2-9.el8.x86_64 ocaml-srpm-macros-5-4.el8.noarch openblas-srpm-macros-2-2.el8.noarch perl-srpm-macros-1-25.el8.noarch platform-python-devel-3.6.8-2.el8_0.0.1.x86_64 python-rpm-macros-3-37.el8.noarch python-srpm-macros-3-37.el8.noarch python3-rpm-generators-5-4.el8.noarch python3-rpm-macros-3-37.el8.noarch qt5-srpm-macros-5.11.1-2.el8.noarch rust-srpm-macros-5-2.el8.noarch glibc-devel-2.28-42.el8.1.x86_64 glibc-headers-2.28-42.el8.1.x86_64 kernel-headers-4.18.0-80.11.2.el8_0.x86_64 keyutils-libs-devel-1.5.10-6.el8.x86_64 krb5-devel-1.16.1-22.el8.x86_64 libcom_err-devel-1.44.3-2.el8.x86_64 libkadm5-1.16.1-22.el8.x86_64 libselinux-devel-2.8-6.el8.x86_64 libsepol-devel-2.8-2.el8.x86_64 libverto-devel-0.3.0-5.el8.x86_64 libxcrypt-devel-4.1.1-4.el8.x86_64 pcre2-devel-10.32-1.el8.x86_64 pcre2-utf16-10.32-1.el8.x86_64 pcre2-utf32-10.32-1.el8.x86_64 zlib-devel-1.2.11-10.el8.x86_64 Complete! Creating virtual environment... Installing Python packages... Installation succeeded.
Una volta installate tutte le dipendenze, ti verrà chiesto di fornire il tuo indirizzo email e di accettare i termini del servizio come mostrato di seguito:
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator nginx, Installer nginx 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 Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator nginx, Installer nginx Obtaining a new certificate Performing the following challenges: http-01 challenge for magento.linuxbuz.com Waiting for verification... Cleaning up challenges Deploying Certificate to VirtualHost /etc/nginx/conf.d/magento.conf
Successivamente, dovrai scegliere se reindirizzare o meno il traffico HTTP su HTTPS come mostrato di seguito:
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
Digita 2 e premi Invio per installare il certificato SSL Let's Encrypt per il tuo dominio come mostrato di seguito:
Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/magento.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-03-23. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot-auto 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
Accedi a Magento
Magento è ora installato e configurato. È ora di accedere alla procedura guidata di installazione di Magento.
Apri il tuo browser web e digita l'URL https://magento.linuxbuz.com. Verrai reindirizzato alla pagina di benvenuto di Magento:
Fai clic su Accetta e imposta Magento pulsante. Dovresti vedere la procedura guidata per il controllo della disponibilità di Magento:
Ora, fai clic su Avanti pulsante. Dovresti vedere la seguente pagina:
Fornisci i dettagli del tuo database e fai clic su Avanti pulsante. Dovresti vedere la seguente pagina:
Ora, fornisci il tuo negozio Magento e l'URL di amministrazione e fai clic su Avanti pulsante. Dovresti vedere la seguente pagina:
Seleziona il fuso orario, la valuta, la lingua desiderati e fai clic su Avanti pulsante. Dovresti vedere la seguente pagina:
Ora, fornisci il nome utente e la password dell'amministratore Magento e fai clic su Avanti pulsante. Dovresti vedere la seguente pagina:
Ora, fai clic su Installa Ora pulsante per avviare l'installazione di Magento. Una volta che l'installazione è stata completata con successo. Dovresti vedere la seguente pagina:
Ora, fai clic su Indirizzo del tuo negozio pulsante. Dovresti vedere il tuo negozio Magento nella pagina seguente:
Per accedere alla tua interfaccia di amministrazione Magento, digita l'URL https://magento.linuxbuz.com/admin_1teqss sul tuo browser web. Verrai reindirizzato alla pagina di accesso di Magento:
Fornisci il nome utente e la password dell'amministratore Magento e fai clic su Firma dentro pulsante. Dovresti vedere la tua interfaccia di amministrazione Magento nella pagina seguente:
Per ora è tutto. Il tuo Magento è ora protetto con Let's Encrypt SSL gratuito.