In questa guida ti mostreremo come installare e configurare l'ultima versione di Prestashop su Debian 9.1 per creare il tuo carrello online gratuito.
Prestashop è una piattaforma di gestione dei contenuti di e-commerce open source gratuita scritta in linguaggio di programmazione PHP che viene spesso implementata su Linux sotto server Web Apache/Nginx, sistema di gestione di database PHP e MySQL/MariaDB. Prestashop CMS è oggi molto utilizzato per creare negozi online per diverse attività e pubblicizzare e vendere servizi e merce.
Requisiti
- Installazione minima di Debian 9 su una macchina bare-metal o su un server privato virtuale.
- Un indirizzo IP statico configurato per una delle tue schede di interfaccia di rete del sistema.
- privilegi sudo root per un account locale o remoto o accesso diretto all'account root.
- Un nome di dominio, privato o pubblico, a seconda della distribuzione, con i record DNS corretti configurati.
Configurazione iniziale
Prima di iniziare a installare e configurare Prestashop dall'origine sul tuo server, assicurati innanzitutto che il sistema soddisfi tutti i requisiti software per la compilazione e l'installazione dell'applicazione. Nel primo passaggio, aggiorna i repository di sistema e i pacchetti software eseguendo il comando seguente.
aggiornamento adatto
aggiornamento appropriato
Nel passaggio successivo, esegui il comando seguente per installare alcune utilità necessarie che verranno utilizzate per gestire ulteriormente il tuo sistema dalla riga di comando.
apt install wget bash-completion zip unzip
Quindi, imposta il nome per il tuo sistema eseguendo il comando seguente. Sostituisci la tua variabile hostname di conseguenza.
negozio hostnamectl set-hostname
Verifica il nome host della macchina e il file hosts eseguendo i comandi seguenti.
nomehost
cat /etc/hostname
nome host –s
nome host –f
Infine, riavvia il server Debian per applicare correttamente gli aggiornamenti del kernel e il nome host.
riavvio systemctl
Prestashop è una piattaforma di e-commerce CMS basata sul web scritta principalmente in linguaggio di programmazione lato server PHP. Per eseguire gli script di file PHP di Prestashop, sul server devono essere installati e operativi un server Web, come il server HTTP Apache, e un gateway di elaborazione PHP. Per installare il server Web Apache e l'interprete PHP insieme a tutti i moduli PHP richiesti da Prestashop per funzionare correttamente, emetti il seguente comando nella console del tuo server.
apt install apache2 libapache2-mod-php7.0 php7.0 php7.0-xml php7.0-gd php7.0-json php7.0-zip php7.0-intl php7.0-mcrypt php7.0- curl php7.0-intl php7.0-opcache
Dopo aver installato Apache e PHP, verifica se il server web è attivo e funzionante e in attesa di connessioni di rete sulla porta 80 eseguendo il comando seguente con privilegi di root.
netstat –tlpn
Nel caso in cui l'utilità di rete netstat non sia installata per impostazione predefinita sul tuo sistema Debian, esegui il comando seguente per installarla.
apt install net-tools
Ispezionando l'output del comando netstat puoi vedere che il server web apache è in ascolto per le connessioni di rete in entrata sulla porta 80. Per la stessa attività puoi anche usare il ss comando, che viene installato automaticamente per impostazione predefinita in Debian 9.
ss -tlpn
Nel caso in cui tu abbia un firewall abilitato sul tuo sistema, come l'applicazione firewall UFW, dovresti aggiungere una nuova regola per consentire al traffico HTTP di passare attraverso il firewall emettendo il seguente comando.
ufw consenti WWW
o
ufw consente 80/tcp
Se stai utilizzando iptables regole grezze per gestire le regole del firewall nel tuo server Debian, aggiungi la seguente regola per consentire il traffico in entrata sulla porta 80 sul firewall in modo che i visitatori possano navigare nel negozio online di Prestashop.
apt-get install -y iptables-persistent
iptables -I INPUT -p tcp --destination-port 80 -j ACCEPT
systemctl iptables-salvataggio persistente
systemctl iptables-ricarica persistente
Quindi, abilita e applica i seguenti moduli Apache richiesti da Prestashop CMS per funzionare correttamente, eseguendo il comando seguente.
a2enmod riscrittura
systemctl riavvia apache2
Infine, verifica se la pagina Web predefinita del server Web Apache può essere visualizzata nei browser del tuo client visitando l'indirizzo IP della tua macchina Debian o il tuo nome di dominio o FQDN del server tramite il protocollo HTTP, come mostrato nell'immagine seguente. Se non conosci l'indirizzo IP della tua macchina, esegui ifconfig o ip a comandi per rivelare l'indirizzo IP del tuo server.
http://tuo_dominio.tld
Per installare e accedere al pannello di amministrazione Web di Prestashop supportato e al sito Web front-end tramite il protocollo HTTPS che proteggerà il traffico per i tuoi clienti, emetti il seguente comando per abilitare il modulo SSL del server Web Apache e il file di configurazione del sito SSL.
a2enmod ssl
a2ensite default-ssl.conf
Quindi, apri il file di configurazione del sito SSL predefinito di Apache con un editor di testo e abilita le regole di riscrittura degli URL aggiungendo le seguenti righe di codice dopo DocumentRoot direttiva, come mostrato nell'esempio seguente:
nano /etc/apache2/sites-enabled/default-ssl.conf
Estratto del file di configurazione del sito SSL:
Opzioni +SeguiSymlinks
ConsentiSostituisci tutto
Richiedi tutto concesso
Inoltre, apporta la seguente modifica alla riga VirtualHost in modo che assomigli a quella mostrata nell'estratto seguente:
Chiudi il file Apache SSL e apri /etc/apache2/sites-enabled/000-default.conf file per la modifica e aggiungere le stesse regole di riscrittura URL del file di configurazione SSL. Inserisci le righe di codice dopo DocumentRoot dichiarazione come mostrato nell'esempio seguente.
Opzioni +SeguiSymlinks
ConsentiSostituisci tutto
Richiedi tutto concesso
Infine, riavvia il demone Apache per applicare tutte le regole configurate finora e visita il tuo dominio tramite protocollo HTTP. Poiché stai utilizzando le coppie di certificati autofirmati automaticamente emessi da Apache al momento dell'installazione, nel browser dovrebbe essere visualizzato un avviso di errore. Accetta l'avviso per continuare ed essere reindirizzato alla pagina Web predefinita di Apache.
systemctl riavvia apache2
https://tuodominio.tld
Nel caso in cui l'applicazione firewall UFW blocchi le connessioni di rete in entrata alla porta HTTPS, dovresti aggiungere una nuova regola per consentire al traffico HTTPS di passare attraverso il firewall eseguendo il comando seguente.
ufw consente 'WWW completo'
o
ufw consente 443/tcp
Se iptables è l'applicazione firewall predefinita installata per proteggere il tuo sistema Debian a livello di rete, aggiungi la seguente regola per consentire il traffico in entrata della porta 443 nel firewall in modo che i visitatori possano esplorare il tuo nome di dominio.
iptables -I INPUT -p tcp --destination-port 443 -j ACCEPT
systemctl iptables-salvataggio persistente
systemctl iptables-ricarica persistente
Nel passaggio successivo, dobbiamo apportare ulteriori modifiche al file di configurazione predefinito di PHP per garantire che le seguenti variabili PHP siano abilitate e il fuso orario PHP l'impostazione è configurata correttamente e corrisponde alla posizione geografica del sistema. Apri /etc/php/7.0/apache2/php.ini file per la modifica e assicurarsi che le seguenti righe siano impostate come segue. Inoltre, inizialmente, fai un backup del file di configurazione PHP.
cp /etc/php/7.0/apache2/php.ini{,.backup}
nano /etc/php/7.0/apache2/php.ini
Cerca, modifica e cambia le seguenti variabili in php.ini file di configurazione:
file_uploads =On
allow_url_fopen =On
memory_limit =128 M
upload_max_file_size =64 M
date.timezone =Europa/Londra
Aumenta limite_di_memoria variabile adatta a supportare file allegati di grandi dimensioni e sostituire time.zone variabile in base al tuo tempo fisico consultando l'elenco dei fusi orari fornito dai documenti PHP al seguente link http://php.net/manual/en/timezones.php
Se desideri aumentare la velocità di caricamento delle pagine del tuo sito Web tramite il plug-in OPCache disponibile per PHP7, aggiungi le seguenti impostazioni OPCache nella parte inferiore del file di configurazione dell'interprete PHP, come dettagliato di seguito:
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache. save_comments=1
opcache.revalidate_freq=1
Chiudi il file di configurazione php.ini e controlla se la verifica della fine del file di configurazione PHP per verificare se le variabili sono state aggiunte correttamente emettendo il comando seguente.
coda /etc/php/7.0/apache2/php.ini
Dopo aver apportato tutte le modifiche spiegate sopra, riavvia il demone apache per applicare le nuove modifiche eseguendo il comando seguente.
systemctl riavvia apache2
Infine, crea un file di informazioni PHP eseguendo il comando seguente e controlla se il fuso orario PHP è stato configurato correttamente visitando il file di script di informazioni PHP da un browser al seguente URL, come illustrato nell'immagine seguente. Scorri verso il basso fino a data impostazione per controllare la configurazione del fuso orario di php.
eco ''| tee /var/www/html/info.php
https://dominio.tld/info.php
Prestashop memorizza diverse configurazioni, come utenti, sessioni, contatti, prodotti, cataloghi e altro, in un database RDBMS. In questa guida configureremo Prestashop per utilizzare il database MariaDB come backend. Emetti il comando seguente per installare il database MariaDB e il modulo PHP necessario per accedere al database mysql.
apt install mariadb-server php7.0-mysql
Dopo aver installato MariaDB, verifica se il demone è in esecuzione ed è in attesa di connessioni su localhost, porta 3306, eseguendo netstat comando.
netstat –tlpn | grep mysql
Quindi, accedi alla console MySQL e proteggi l'account root di MariaDB eseguendo i seguenti comandi.
mysql -h localhost
use mysql;
update user set plugin='' where user='root';
flush privilegi;
exit
Nel passaggio successivo, proteggi MariaDB eseguendo lo script mysql_secure_installation fornito dai pacchetti di installazione dai repository stretch di Debian. Durante l'esecuzione, lo script porrà una serie di domande progettate per proteggere il database MariaDB, come ad esempio:modificare la password di root di MySQL, rimuovere utenti anonimi, disabilitare gli accessi root remoti ed eliminare il database di test. Esegui lo script emettendo il comando seguente e assicurati di digitare yes a tutte le domande poste al fine di proteggere completamente il demone MySQL. Usa l'output dello script seguente tranne che come guida.
sudo mysql_secure_installation
NOTA:ESEGUIRE TUTTE LE PARTI DI QUESTO SCRIPT È RACCOMANDATO PER TUTTI MariaDB
SERVER IN USO DI PRODUZIONE! SI PREGA DI LEGGERE ATTENTAMENTE OGNI PASSO!
Per poter accedere a MariaDB per proteggerlo, avremo bisogno della corrente
password per l'utente root. Se hai appena installato MariaDB, e
non hai ancora impostato la password di root, la password sarà vuota
quindi dovresti semplicemente premere invio qui.
Inserisci la password corrente per root (inserisci per nessuno):
OK, password utilizzata con successo, vado avanti...
L'impostazione della password di root assicura che nessuno possa accedere a MariaDB
utente root senza la corretta autorizzazione.
Hai già impostato una password di root, quindi puoi rispondere in sicurezza 'n'.
Cambiare la password di root? [S/n] y
Nuova password:
Reinserire la nuova password:
Password aggiornata correttamente!
Ricaricamento delle tabelle dei privilegi..
... Successo!
Per impostazione predefinita, un'installazione di MariaDB ha un utente anonimo, che consente a chiunque
per accedere a MariaDB senza dover creare un account utente per
loro. Questo è inteso solo per il test e per effettuare l'installazione
vai un po' più fluido. Dovresti rimuoverli prima di passare a un
ambiente di produzione.
Rimuovere utenti anonimi? [S/n] y
... Successo!
Normalmente, root dovrebbe essere autorizzato a connettersi solo da 'localhost'. Questo
assicura che qualcuno non possa indovinare la password di root dalla rete.
Non consentire l'accesso root in remoto? [S/n] y
... Successo!
Per impostazione predefinita, MariaDB viene fornito con un database chiamato 'test' che chiunque può
accesso. Anche questo è inteso solo per il test e dovrebbe essere rimosso
prima di entrare in un ambiente di produzione.
Rimuovere il database dei test e accedervi? [S/n] y
- Eliminazione del database dei test...
... Successo!
- Rimozione dei privilegi sul database di prova...
... Successo!
Ricaricare le tabelle dei privilegi assicurerà che tutte le modifiche apportate finora
entrerà in vigore immediatamente.
Ricaricare ora le tabelle dei privilegi? [S/n] e
... Successo!
Pulizia...
Tutto fatto! Se hai completato tutti i passaggi precedenti, il tuo MariaDB
l'installazione ora dovrebbe essere sicura.
Grazie per aver utilizzato MariaDB!
Per testare la sicurezza di MariaDB, prova ad accedere al database dalla console senza la password di root. L'accesso al database deve essere negato se non viene fornita alcuna password per l'account root. Se viene fornita la password, il processo di accesso deve essere concesso alla console MySQL, come mostrato nello screenshot seguente.
mysql -h localhost -u root
mysql -h localhost -u root –p
Successivamente, accedi alla console del database di MariaDB, crea un database per Prestashop e un utente con una password che verrà utilizzata per gestire il database di Prestashop, eseguendo i seguenti comandi. Sostituisci il nome del database PrestaShop, l'utente e la password di conseguenza.
mysql –u root -p
crea il database my_shop;
concedi tutti i privilegi su my_shop.* a 'shop_user' identificato da 'shop_password';
svuota i privilegi;
esci
Per applicare tutte le modifiche apportate finora, riavvia i demoni MySQL e Apache e verifica se i demoni sono in esecuzione eseguendo i seguenti comandi.
systemctl riavvia mysql apache2
stato systemctl mysql apache2
Installa PrestaShop
Dopo aver soddisfatto tutti i requisiti di sistema per l'installazione del tuo negozio online di e-commerce, visita la pagina delle versioni di Prestashop su GitHub https://github.com/PrestaShop/PrestaShop/releases e scarica l'ultimo archivio compresso del pacchetto zip emettendo l'utilità wget, come illustrato nel seguente esempio.
wget https://github.com/PrestaShop/PrestaShop/releases/download/1.7.2.3/prestashop_1.7.2.3.zip
Al termine del download dell'archivio zip, estrai l'archivio zip di Prestashop direttamente nella root del documento del tuo server web ed elenca i file estratti eseguendo i comandi seguenti. Inoltre, rimuovi il file index.html predefinito installato dal server web Apache nel percorso webroot ed elimina anche il file info.php creato in precedenza.
rm /var/www/html/index.html
rm /var/www/html/info.php
decomprimi prestashop_1.7.2.3.zip -d /var/www/html/
ls /var/www/html/
Quindi, esegui i comandi seguenti per concedere all'utente di runtime Apache le autorizzazioni di scrittura complete per il percorso root web. Usa ls comando per elencare le autorizzazioni per i file di installazione di Prestashop che si trovano nella directory /var/www/html/.
chown -R www-data:www-data /var/www/html/
ls –al /var/www/html/
Procedi con l'installazione di Prestashop CMS aprendo un browser e naviga l'indirizzo IP o il nome di dominio del tuo server tramite il protocollo HTTPS. Nella prima schermata di installazione, lo script di installazione di Prestashop spiegherà il contenuto del file prestashop.zip dal percorso di root web del server web, come mostrato nell'immagine sottostante.
https://tuodominio.tld
Al termine dell'estrazione, puoi passare alla riga di comando ed elencare il contenuto della directory /var/www/html/ per visualizzare tutti i file estratti di Prestashop.
ls -la /var/www/html/
Nella schermata successiva, il programma di installazione di Prestashop visualizzerà una schermata di benvenuto e ti chiederà di scegliere la lingua di installazione per continuare il processo di installazione. Scegli la tua lingua e premi il pulsante Avanti per continuare con il passaggio successivo.
Nella schermata di installazione successiva, seleziona "Accetto i termini della licenza" e premi il pulsante Avanti per continuare, come illustrato nell'immagine sottostante.
Il programma di installazione di Prestashop ora eseguirà una serie di controlli per determinare la compatibilità con il tuo sistema e ambiente ed elencherà eventuali errori, se rilevati. Se il tuo ambiente di sistema è compatibile con l'installazione di PrestaShop, dovrebbe essere visualizzato un messaggio verde sulla tua pagina web, come mostrato nello screenshot qui sotto. Ancora una volta, premi il pulsante Avanti per proseguire con il processo di installazione.
Nella schermata successiva, aggiungi le informazioni richieste sul tuo negozio, come il nome del negozio, l'attività principale, il paese in cui è registrato il tuo negozio e i dettagli dell'account. Fornisci un indirizzo e-mail per accedere al pannello Web di backend di Prestashop e una password complessa che verrà utilizzata per questo account, come mostrato nello screenshot seguente. Al termine, premi il pulsante Avanti per continuare.
nella schermata di installazione successiva, aggiungi l'indirizzo del database MySQL, il nome e le credenziali creati in precedenza per Prestashop premi su 'Testa la connessione al database ora' pulsante. Se la connessione al database MySQL ha esito positivo, premi il pulsante Avanti per avviare il processo di installazione.
Attendere alcuni minuti affinché il programma di installazione popoli il database con tutte le informazioni richieste e il processo di installazione venga completato, come mostrato negli screenshot seguenti.
Al termine dell'installazione, il programma di installazione visualizzerà le informazioni di accesso del pannello di amministrazione Web supportato e i collegamenti ipertestuali richiesti per accedere a Prestashop Backend Office , che verrà utilizzato per gestire il tuo negozio online e Front Office del tuo negozio, che verrà mostrato ai tuoi clienti.
Assicurati di premere il pulsante Gestisci Back Office per accedere al back-end del negozio. Dovresti annotare o aggiungere l'indirizzo del back office del negozio ai segnalibri per poter accedere al pannello di amministrazione web da altri browser in futuro.
Quando tenti di accedere al Back Office, un messaggio di avviso come mostrato nell'immagine sottostante ti informerà che dovresti eliminare la directory di installazione dal percorso webroot del tuo dominio.
Per poter accedere al pannello di amministrazione supportato da Prestashop, torna alla console del tuo server ed esegui il seguente comando per eliminare la directory di installazione di Prestashop.
rm -rf /var/www/html/install/
Successivamente, ricarica la pagina Back Office di Prestashop e accedi al pannello di amministrazione con le credenziali impostate durante il processo di installazione, come illustrato nella schermata seguente.
Al primo accesso, nel browser verrà visualizzato un messaggio di benvenuto. Premendo il pulsante di avvio verrai reindirizzato al Catalogo da cui puoi iniziare ad aggiungere il tuo primo prodotto, come mostrato nello screenshot qui sotto.
Per visitare la pagina web del frontend di Prestashop, digita il tuo nome di dominio nel browser e verrai automaticamente reindirizzato alla pagina iniziale, come descritto nello screenshot seguente.
Tuttavia, per ora, è possibile accedere al negozio solo senza protezione tramite il protocollo HTTP non crittografato. Per abilitare il supporto HTTPS in Prestashop, accedi al pannello Back Office e vai a Configura -> Parametri negozio -> Generale e premi su Fai clic qui per verificare se il tuo negozio supporta HTTPS link, come illustrato nell'immagine sottostante.
Dopo aver eseguito i test SSL, cambia l'opzione Abilita SSL pulsante su SÌ e scorri verso il basso fino alla fine della pagina e premi su Salva pulsante, per applicare la configurazione. Tuttavia, questa configurazione finora abilita il supporto SSL solo per il collegamento Back Office. I clienti che visiteranno il nome di dominio del tuo negozio verranno indirizzati su connessioni non crittografate.
Per proteggere il traffico del visitatore sul tuo dominio, cambia Abilita SSL su tutte le pagine pulsante su Sì, come mostrato nell'immagine qui sotto, scorri verso il basso e premi su Salva pulsante in fondo alla pagina per applicare le impostazioni.
Per verificare se i client vengono ora reindirizzati automaticamente per visitare il tuo dominio su una connessione protetta tramite protocollo HTTPS, aggiorna la pagina frontend di Prestashop o digita il nome del tuo dominio nel browser. È ora necessario accedere al nome di dominio del tuo negozio tramite il protocollo HTTP, come illustrato nell'immagine sottostante.
È tutto! Hai installato e configurato correttamente PrestaShop su Debian 9.1. Tuttavia, poiché il tuo server HTTP Apache utilizza certificati autofirmati per crittografare il traffico tra il server e i browser dei visitatori, un messaggio di avviso verrà sempre generato e visualizzato nei loro browser quando visitano per la prima volta il negozio. Questo avviso è dannoso per il tuo negozio online. In questo caso dovresti acquistare un certificato emesso da un'autorità di certificazione attendibile o ottenere una coppia di certificati gratuita da Let's Encrypt CA.
Per altre configurazioni personalizzate relative a Prestashop, visitare la pagina della documentazione al seguente indirizzo:http://doc.prestashop.com/display/PS17/Installing+PrestaShop