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 [email protected]_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 [email protected]_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 [email protected]_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.