Introduzione
OpenCart è una piattaforma di e-commerce scritta in PHP gratuita e open source che combina potenti funzionalità con flessibilità e interfaccia intuitiva.
Con funzionalità come Gestione utenti, Multi-Store, Affiliati, Sconti, Recensioni di prodotti, Gateway di pagamento multilingue e multipli, OpenCart è una piattaforma di scelta per molti commercianti online.
In questo tutorial, ti mostreremo come installare OpenCart sul server Ubuntu 18.04. Useremo Nginx come server Web, l'ultimo PHP 7.2 e MySQL/MariaDB come server database.
Se desideri installare OpenCart su un server in remoto continua a leggere, altrimenti salta il primo paragrafo "Connessione al Server" e leggi il successivo.
Connessione al Server
Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:
ssh root@IP_DEL_SERVER
Successivamente sarà necessario inserire la password dell'utente root.
Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:
ssh nome_utente@IP_DEL_SERVER
Successivamente vi verrà chiesto di inserire la password del vostro utente.
La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Prerequisiti
Assicurati di aver soddisfatto i seguenti prerequisiti prima di continuare con questo tutorial:
- Avere un nome di dominio che punta all'IP del server pubblico. Useremo
example.com
. - Nginx è installato sul tuo server Ubuntu seguendo queste istruzioni.
- Un certificato SSL installato per il tuo dominio per crittografare le informazioni dell'utente. È possibile installare un certificato SSL Let's Encrypt gratuito seguendo queste istruzioni.
Aggiorna i pacchetti di sistema alle versioni più recenti e installa l'utilità di decompressione:
sudo apt update
sudo apt install unzip
Creare il database MySQL
Se hai MySQL o MariaDB installato sul tuo server, puoi saltare questo passaggio, altrimenti puoi installare il pacchetto del server MySQL 5.7 dai repository predefiniti di Ubuntu digitando:
sudo apt install mysql-server mysql-client
Per le nuove installazioni di MySQL, si consiglia di eseguire il comando mysql_secure_installation
per migliorare la sicurezza del server MySQL.
Accedi alla shell MySQL usando il seguente comando:
sudo mysql
Se hai seguito la nostra guida per installare MySQL o MariaDB avrai impostato una password per l'utente root, in tal caso usare il seguente comando per accedere a MySQL:
sudo mysql -u root -p
Dall'interno della shell MySQL, eseguire la seguente istruzione SQL per creare un nuovo database denominato opencart
:
CREATE DATABASE opencart;
Successivamente, crea un account utente MySQL denominato opencart
e concedi le autorizzazioni necessarie all'utente eseguendo il comando seguente:
GRANT ALL ON opencart.* TO 'opencart'@'localhost' IDENTIFIED BY 'change-with-strong-password';
Assicurati di cambiare change-with-strong-password
con una password complessa.
Una volta terminato, esci dalla console mysql digitando:
exit;
Installare e configurazione di PHP
PHP 7.2, che è la versione PHP predefinita in Ubuntu 18.04, è completamente supportata e consigliata per OpenCart. Poiché utilizzeremo Nginx come server Web, installeremo anche il pacchetto PHP-FPM.
Esegui il comando seguente per installare PHP e tutti i moduli PHP richiesti:
sudo apt install php7.2-common php7.2-cli php7.2-fpm php7.2-opcache php7.2-gd php7.2-mysql php7.2-curl php7.2-intl php7.2-xsl php7.2-mbstring php7.2-zip php7.2-bcmath php7.2-soap
Il servizio PHP-FPM si avvierà automaticamente al termine del processo di installazione, è possibile verificarlo stampando lo stato del servizio:
sudo systemctl status php7.2-fpm
L'output dovrebbe indicare che il servizio fpm è attivo e in esecuzione.
● php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-02-11 19:55:49 CET; 15s ago
Docs: man:php-fpm7.2(8)
Main PID: 30915 (php-fpm7.2)
Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
Tasks: 3 (limit: 2298)
CGroup: /system.slice/php7.2-fpm.service
├─30915 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf)
├─30931 php-fpm: pool www
└─30932 php-fpm: pool www
Imposta le opzioni PHP richieste e consigliate modificando il file php.ini
con sed
:
sudo sed -i "s/memory_limit = .*/memory_limit = 1024M/" /etc/php/7.2/fpm/php.ini
sudo sed -i "s/upload_max_filesize = .*/upload_max_filesize = 256M/" /etc/php/7.2/fpm/php.ini
sudo sed -i "s/zlib.output_compression = .*/zlib.output_compression = on/" /etc/php/7.2/fpm/php.ini
sudo sed -i "s/max_execution_time = .*/max_execution_time = 18000/" /etc/php/7.2/fpm/php.ini
sudo sed -i "s/;date.timezone.*/date.timezone = UTC/" /etc/php/7.2/fpm/php.ini
sudo sed -i "s/;opcache.save_comments.*/opcache.save_comments = 1/" /etc/php/7.2/fpm/php.ini
Installare OpenCart
Al momento della stesura di questo articolo, l'ultima versione stabile di OpenCart è la versione 3.0.3.2
.
Prima di scaricare l'archivio OpenCart, crea una directory che conterrà i nostri file OpenCart:
sudo mkdir -p /var/www/example.com/public_html
Scarica l'ultima versione di OpenCart dal repository OpenCart Github usando il seguente comando wget :
cd /tmp
wget https://github.com/opencart/opencart/releases/download/3.0.3.2/opencart-3.0.3.2.zip
Una volta completato il download, estrarre l'archivio OpenCart e spostare i file estratti nella directory principale dei documenti del dominio:
unzip opencart-*.zip
sudo mv /tmp/upload/* /var/www/example.com/public_html
Copia i file di configurazione usando il comando cp
:
sudo cp /var/www/example.com/public_html/{config-dist.php,config.php}
sudo cp /var/www/example.com/public_html/admin/{config-dist.php,config.php}
Impostare le autorizzazioni corrette in modo che il server Web possa avere pieno accesso ai file e alle directory del sito usando il seguente comando chown:
sudo chown -R www-data: /var/www/example.com
Configurare Nginx
Se hai letto i prerequisiti di questo tutorial dovresti già avere Nginx con certificato SSL installato sul tuo server Ubuntu.
Apri il tuo editor di testo e crea/modifica il file in questo modo:
sudo nano /etc/nginx/sites-available/example.com
server {
root /var/www/example.com/public_html;
index index.php;
server_name example.com www.example.com;
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
expires max;
log_not_found off;
}
listen [::]:443 ssl ipv6only=on;
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
server {
if ($host = www.example.com) {
return 301 https://$host$request_uri;
}
if ($host = example.com) {
return 301 https://$host$request_uri;
}
listen 80;
listen [::]:80;
server_name example.com www.example.com;
return 404;
}
Non dimenticare di sostituire example.com con il tuo dominio OpenCart e impostare il percorso corretto per i file del certificato SSL. Tutte le richieste HTTP verranno reindirizzate a HTTPS.
Prima di riavviare il servizio Nginx, eseguire un test per accertarsi che non vi siano errori di sintassi:
sudo nginx -t
Se non ci sono errori, l'output dovrebbe apparire così:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Infine, riavvia il servizio Nginx digitando:
sudo systemctl restart nginx
Completamento dell'installazione OpenCart
Ora che OpenCart è stato scaricato e la configurazione del server è completa, è possibile completare l'installazione tramite l'interfaccia Web.
Apri il tuo browser, digita il tuo dominio https://DOMINIO_O_IP
e apparirà la prima schermata di installazione di OpenCart.
Leggi il contratto di licenza OpenCart, seleziona la lingua che desideri utilizzare e fai clic sul pulsante Continue
.
Assicurarsi che siano soddisfatti tutti i requisiti di preinstallazione e fare clic sul pulsante Continue
.
Nella schermata successiva, la procedura guidata di configurazione ti chiederà di inserire i dettagli della connessione al database
. Immettere i dettagli dell'utente
e del database MySQL precedentemente creato
.
Immettere un nome utente, una password
e un indirizzo e-mail
per l'amministrazione
e avviare l'installazione facendo clic sul pulsante Continue
.
Una volta completata l'installazione, verrai indirizzato a una pagina che ti informa che OpenCart è stato installato.
Per accedere alla dashboard amministrativa di OpenCart fai clic sul pulsante Login to your Administration
. Inserisci il tuo nome utente e password e verrai reindirizzato alla dashboard di amministrazione.
Al primo accesso, verrà visualizzato un popup che richiede di spostare la directory di archiviazione all'esterno della directory Web.
Mantieni l'opzione predefinita Automatically Move
e fai clic sul pulsante Move
rosso. La directory in cui si sta spostando la directory storage
deve essere accessibile dal server Web.
Da qui puoi iniziare a personalizzare l'installazione di OpenCart e aggiungere nuovi prodotti.
Dovrai anche eliminare la directory di installazione. Per fare ciò, torna al terminale e digita il seguente comando rm
:
sudo rm -rf /var/www/example.com/public_html/install
Conclusione
Congratulazioni, hai installato OpenCart con successo sul tuo server Ubuntu 18.04.
La documentazione di OpenCart è un buon punto di partenza per ulteriori informazioni su come gestire l'installazione di OpenCart.