PrestaShop è una piattaforma di e-commerce gratuita e open source. È basato su PHP e MySQL e può essere esteso con plugin e temi gratuiti e premium.
Con funzionalità come interfaccia amministrativa intuitiva, gateway di pagamento multipli, multilingua, analisi e reportistica, PrestaShop è una piattaforma preferita da molti commercianti online.
In questo tutorial, ti mostreremo come installare PrestaShop sul server Ubuntu 18.04. Useremo Nginx come server web, l'ultimo PHP 7.2 e MySQL/MariaDB come server di database.
Prerequisiti #
Assicurati di aver soddisfatto i seguenti prerequisiti prima di continuare con questo tutorial:
- Disponi di un nome di dominio che punta all'IP del tuo server pubblico. Useremo
example.com
. - Nginx viene installato sul tuo server Ubuntu seguendo queste istruzioni.
- Un certificato SSL installato per il tuo dominio per crittografare le informazioni dell'utente. Puoi 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 upgrade
sudo apt install unzip
Creazione di un database MySQL #
PrestaShop memorizza le sue informazioni in un database MySQL.
Se MySQL o MariaDB sono installati sul tuo server puoi saltare questo passaggio. Altrimenti, installa il pacchetto del server MySQL 5.7 dai repository predefiniti di Ubuntu digitando:
sudo apt install mysql-server mysql-client
Per nuove installazioni MySQL, si consiglia di eseguire mysql_secure_installation
comando per migliorare la sicurezza del tuo server MySQL. Per creare un database, accedi alla shell mysql:
sudo mysql
Dall'interno della shell MySQL, esegui la seguente istruzione SQL per creare un nuovo database denominato prestashop
:
CREATE DATABASE prestashop;
Quindi, crea un account utente MySQL chiamato prestashop
e concedere le autorizzazioni necessarie all'utente eseguendo il comando seguente:
GRANT ALL ON prestashop.* TO 'prestashop'@'localhost' IDENTIFIED BY 'change-with-strong-password';
Non dimenticare di modificare change-with-strong-password
con una password complessa. Al termine, esci dalla console MySQL digitando:
EXIT;
Installazione e configurazione di PHP #
PHP 7.2 è la versione PHP predefinita in Ubuntu 18.04 ed è completamente supportata e consigliata per PrestaShop.
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
Una volta completato il processo di installazione, il servizio PHP-FPM si avvierà automaticamente. Puoi verificarlo digitando:
sudo systemctl status php7.2-fpm
L'output dovrebbe essere simile a questo:
* 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 Sun 2019-03-24 11:53:33 PDT; 14s ago
Docs: man:php-fpm7.2(8)
Main PID: 15853 (php-fpm7.2)
Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
Esegui il seguente sed
comandi per impostare le opzioni PHP consigliate:
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
Download di PrestaShop #
Al momento della stesura di questo articolo, l'ultima versione stabile di PrestaShop è la versione 1.7.6.2
.
Scarica l'ultima versione di PrestaShop dalla pagina dei download di PrestaShop utilizzando il seguente comando wget:
cd /tmp
wget https://download.prestashop.com/download/releases/prestashop_1.7.6.2.zip
Al termine del download, crea una directory che conterrà i nostri file PrestaShop:
sudo mkdir -p /var/www/html/example.com
Quindi, estrai l'archivio PrestaShop:
unzip prestashop_*.zip
Questo archivio contiene un altro file zip “prestashop.zip”, che contiene tutti i file PrestaShop. Estrarre i file nella directory principale dei documenti del dominio:
sudo unzip prestashop.zip -d /var/www/html/example.com
Imposta le autorizzazioni corrette in modo che il server web possa avere pieno accesso ai file e alle directory del sito utilizzando il seguente chown
comando:
sudo chown -R www-data: /var/www/html
Configurazione di Nginx #
A questo punto, dovresti già avere Nginx con un certificato SSL installato sul tuo server Ubuntu. In caso contrario, controlla i prerequisiti per questo tutorial.
Apri il tuo editor di testo e crea il seguente file:
sudo nano /etc/nginx/sites-available/example.com
/etc/nginx/sites-available/example.comserver {
listen 80;
listen 443 ssl http2;
server_name example.com www.example.com;
root /var/www/html/example.com;
index index.php;
# SSL parameters
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
include snippets/ssl.conf;
include snippets/letsencrypt.conf;
# Cloudflare / Max CDN fix
location ~* \.(eot|otf|ttf|woff(?:2)?)$ {
add_header Access-Control-Allow-Origin *;
}
# Do not save logs for these
location = /favicon.ico {
auth_basic off;
allow all;
log_not_found off;
access_log off;
}
location = /robots.txt {
auth_basic off;
allow all;
log_not_found off;
access_log off;
}
# Images
rewrite ^/([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$1$2$3.jpg last;
rewrite ^/([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$1$2$3$4.jpg last;
rewrite ^/([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$1$2$3$4$5.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$1$2$3$4$5$6.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7$8.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg last;
rewrite ^/c/([0-9]+)(-[.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+.jpg$ /img/c/$1$2$3.jpg last;
rewrite ^/c/([a-zA-Z_-]+)(-[0-9]+)?/.+.jpg$ /img/c/$1$2.jpg last;
# AlphaImageLoader for IE and fancybox
rewrite ^images_ie/?([^/]+)\.(jpe?g|png|gif)$ js/jquery/plugins/fancybox/images/$1.$2 last;
# Web service API
rewrite ^/api/?(.*)$ /webservice/dispatcher.php?url=$1 last;
# Installation sandbox
rewrite ^(/install(?:-dev)?/sandbox)/(.*) /$1/test.php last;
#Change this block to your admin folder
location /admin_CHANGE_ME {
if (!-e $request_filename) {
rewrite ^/.*$ /admin_CHANGE_ME/index.php last;
}
}
# File security
# .htaccess .DS_Store .htpasswd etc
location ~ /\. {
deny all;
}
# Source code directories
location ~ ^/(app|bin|cache|classes|config|controllers|docs|localization|override|src|tests|tools|translations|travis-scripts|vendor|var)/ {
deny all;
}
# Prevent exposing other sensitive files
location ~ \.(yml|log|tpl|twig|sass)$ {
deny all;
}
# Prevent injection of php files
location /upload {
location ~ \.php$ {
deny all;
}
}
location /img {
location ~ \.php$ {
deny all;
}
}
# PHP FPM part
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
}
Non dimenticare di sostituire example.com con il tuo dominio PrestaShop e "admin_CHANGE_ME" con la tua directory di amministrazione. Puoi trovare il nome della directory elencando il contenuto della directory principale di Prestashop:
sudo ls -l /var/www/html/example.com | grep admin
Assicurati inoltre di utilizzare il percorso corretto per i file del certificato SSL. Gli snippet utilizzati in questa configurazione vengono creati in questa guida.
Prima di riavviare il servizio Nginx controlla la configurazione per errori di sintassi:
sudo nginx -t
L'output dovrebbe essere simile a questo:
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
Installazione di PrestaShop #
Ora che PrestaShop è stato scaricato e la configurazione del server è completa, puoi completare l'installazione tramite l'interfaccia web.
Apri il browser, digita il tuo dominio e apparirà una schermata simile alla seguente:
Seleziona la lingua che desideri utilizzare e fai clic sul pulsante "Avanti".
Nella schermata successiva, ti verrà presentato il contratto di licenza PrestaShop. Leggi la licenza e seleziona "Accetto i termini e le condizioni di cui sopra". per continuare:
Successivamente, vedrai la seguente pagina di informazioni:
Assicurati che tutti i requisiti di preinstallazione siano soddisfatti e che il tuo sistema sia compatibile con PrestaShop.
Nella schermata successiva, dovrai inserire i dettagli del tuo negozio. L'indirizzo email è il nome utente per accedere al backend di amministrazione di PrestaShop.
Successivamente, la procedura guidata di configurazione ti chiederà di inserire i dettagli della connessione al database. Inserisci l'utente MySQL e i dettagli del database che hai creato in precedenza:
Fare clic sul pulsante "Avanti" e l'installazione inizierà:
L'installazione potrebbe richiedere alcuni minuti, una volta completata verrà visualizzata la pagina seguente che ti informa che PrestaShop è stato installato.
Per motivi di sicurezza, dovrai eliminare la directory di installazione. Per farlo, torna al terminale e inserisci il seguente rm
comando:
sudo rm -rf /var/www/html/example.com/install
Per accedere alla dashboard amministrativa di PrestaShop, fai clic sul pulsante "Gestisci il tuo negozio". Inserisci la tua email e password e verrai reindirizzato alla dashboard di amministrazione.
Da qui puoi iniziare a personalizzare la tua installazione di PrestaShop e aggiungere nuovi prodotti.