Realizziamo un e-commerce con Prestashop in locale

- Un Laboratiorio Web Dedicato
- Installiamo è Virtualizziamo il Server
- Installazione S.O - Configurazione del disco (HDD)
- Installazione S.O - Configurazione di base e hostname
- Installazione S.O - Server SSH
- Installazione S.O - Fine
- Configurazione del Server
- Configurazione Del Server SSH
- Rendiamo il Server Raggiungibile
- Installiamo il Web Server
- Test del PHP
- PHP-Componenti Aggiuntivi
- MySql-Server - Installazione
- MySql - Creiamo Una Base dati (database)
- Apache - Attiviamo il Dominio Locale
- Installiamo Prestashop
- Prestashop - Configurazione di Base
- Prestashop - Pannello di Controllo
- Prestashop - Configuriamo La posta
- Installiamo PhpMyAdmin
- PhpMyAdmin - Configurazione di Base
- Migrazione Su Hosting
- Conclusioni
Un Laboratiorio Web Dedicato
Un saluto a tutti dalla devp-in lab.
Quello che vorrei proporre oggi e un tutorial completo di dettagli (mettiti comodo non sarà corto) per l’installazione e l’ottimizzazione di prestashop è lo sviluppo del proprio e-commerce in ambiente locale.
Una volta terminato il progetto ti spiegherò anche come effettuare una migrazione dal server o pc locale per metterlo online.
Quello che andremo a realizzare sarà un laboratorio vero e proprio dedicato a prestashop, le configurazioni utilizzate sono quasi le stesse che utilizzo nei miei ambienti o per i clienti.
Grazie alla virtualizzazione potremmo simulare un ambiente completo identico alle prestazioni del nostro hosting o server dedicato di destinazione.
Supponiamo di dover realizzare un e-commerce, al contrario di quanto si possa pensare questa piattaforma tende ad essere molto pretenziosa quindi consiglio sopra i 4000 articoli di utilizzare un VPS (virtual private server). Attenzione perché i vps proposti nel web sono a perdita d’occhio e tutti rappresentano costi irrisori e prestazioni che poi non si rivelano quello che pubblicizzano.
Molte virtualizzazioni hanno un basso costo perché utilizzano Linux KVM e obbiettivamente un VPS a 5€ al mese non è credibile.
Linux KVM è una versione open source per la virtualizzazione di linux che dal mio punto di vista non è il massimo perché lavora su kernel condiviso, mentre software come virtual box o vmware sono progettate diversamente e piu’ performanti.
Facciamo dunque attenzione a cosa andiamo ad acquistare.
Lo scopo di questo tutorial e realizzare un laboratorio completo, per i nostri progetti prestashop ma anche altri progetti e le possibilità sono davvero tantissime, dopo sta a te sapere cosa ti occorre e come adattare il laboratorio virtuale e renderlo identico all’hosting o vps che andrai ad istallare o configurare.
Avverto che sarà un tutorial piuttosto impegnativo, per questo progetto ho scelto ubuntu server perché e leggero, usa poche risorse e molto potente.
Per creare un ambiente ottimizzato per prestashop, quello che ci serve e che possa essere seguito con le stesse prestazioni del VPS oppure hosting dove verrà migrato per metterlo online quando sarà completo.
In questo tutorial non verrà usato un ambiente lamp, ma partiremo da zero, installando uno per uno tutti i componenti che ci servono in modo da capire cosa stiamo facendo e perché.
Installeremo una versione base di ubuntu server senza troppe complicazioni e lo doteremo di:
- Un server web
- Un server SQL
- PHP e tutti i componenti che ci occorrono
- Un client per l’accesso a files dello shop
- Un client per gestire i database
- Riscrittura degli URL
- Un accesso SFPT e SSH per le operazioni sul server.
- Una applicazione per la compressione ed eseguire un backup.
Installiamo è Virtualizziamo il Server
IL primo passo in assoluto e installare ubuntu server, per fare questo dovremmo simulare l’hardware con le caratteristiche che ci occorrono.
Ora supponiamo di avere un e-commerce da 5000 articoli, ci si aspetta una grossa affluenza quindi andremo ad acquistare un VPS con almeno 1 processore dual core, 4GB di ram e un disco da almeno 60GB.
Lo spazio disco non è eccessivo perché un buon shop basato su prestashop con 10.000 articoli arriva anche a 30GB di spazio occupato in base anche a quanto il catalogo e ricco di dettagli, e maggiori sono i dettagli maggiori sono le possibilità di vendita così come la platea di utenza che sceglieremo, se dovessimo scegliere di vendere anche in territorio internazionale siamo anche molto risicati, ma per iniziare e perfetto, non partiamo con risorse inutili che prima di qualche mese se non 1 anno non ci servono.
Per simulare il nostro hardware utilizzeremo il potentissimo VMware, ho realizzato un tutorial apposito sulla virtualizzazione e questo potente software, anch’esso gratuito a tutto quello che ci serve.
Se non hai pratica di Vmware oppure e la prima volta che ne senti parlare puoi seguire un tutorial completo qui.
Come in tutti miei tutorial, ho realizzato un video dimostrativo che puoi trovare sul mio canale youtube, è diviso in piu’ parti.
A oggi, 4 Dicembre 2022 l’ultima versione disponibile ufficiale di prestashop per il commercio e la 1.7.8.7 e supporta PHP 7.4.x fino alla variante 33.
Senza installare repository vari di linux e avere una installazione piu’ pulita possibile di php 7.4 scarichiamo Ubuntu server 20.04.
Dunque procediamo in questo ordine:
- Ubuntu server lo troviamo sul sito ufficiale https://ubuntu.com/download/server
- Clicchiamo su “alternative downloads”
- Sotto clicchiamo su “Get Ubuntu Server 20.04 LTS”, verremo dirottati ad una terza pagina, attendiamo qualche secondo e ci comparirà la ISO e windows, o il nostro sistema operativo che ci chiederà dove scaricarla.
Potrebbe capitare che il download automatico non parta, dipende dal browser se non è aggiornato, In alternativa troviamo il link “download now”.
- Carichiamo la nostra ISO, una volta scaricata, su vmware e attendiamo qualche secondo.
Dopo averla avviata se la virtual machine è stata impostata correttamente avremmo questa schermata.
Come potrai notare non è presente la lingua italiana, ma non è importante, lasciamo quella selezionata in automatico (evidenziata in verde) e premiamo “invio” per passare alla schermata successiva.
Dalla schermata sotto, Ubuntu-Server ha trovato degli aggiornamenti e ci chiede se vogliamo continuare senza aggiornamenti (continue without Updating) oppure aggiornare con un nuovo installer.
Procediamo con “freccia SU” nella tastiera e “invio”.
Al termine Dovremmo selezionare il “layout” della nostra tastiera, nel mio caso “ italian” con variante “italian”.
Possiamo gestire la selezione con le freccie da tastiera a poi “invio”, terminata la selezione l’installer ci porterà sulla funzione “done” da confermare con “invio”.
NOTA: Se stai usando un notebook non escludere che questo sia di importazione, oppure se usato o hai effettuato una riparazione con sostituzione tastiera questa non abbia un layout diverso, in tal caso dovrai impostare il layout corrispondete alla tastiera utilizzata.
La prossima schermata (vedi sotto) ci chiede quale tipo di installazione vogliamo utilizzare.
Lasciamo tutto invariato assicurandoci di trovare una “X” sulla voce “Ubuntu Server” e la voce “done” evidenziata, Premiamo semplicemente “invio” e proseguiamo.
Anche in questa schermata non dovremmo fare nulla, ma spieghiamo cosa ci chiede l’installer di ubuntu.
Ci viene chiesta quale scheda di rete vogliamo utilizzare e come usarla.
Troveremo 3 voci: “NAME”,”Type”, “Notes”.
Sotto un’altra voce “DHCPV4”.
Tutte queste voci non dobbiamo toccarle compresa la voce “DHCPV4”, significa che la scheda di rete è impostata sulla assegnazione dell’IP automatico, non dovremmo assegnare alcun IP statico.
Se ti stai chiedendo se sono scemo no ????, ti farò vedere come raggiungere il web server senza un ip statico, questo ci permetterà di rendere la nostra macchina virtuale portable.
Clicca su “done” e il prossimo passaggio e la richiesta dell’indirizzo di un server proxy, a noi non occorre, trovi la voce “done” evidenziata, “invio” e portiamoci avanti.
La schermata che arriva adesso è importante, Assicurati che sulla voce “Mirror address:” sia presente l’indirizzo http://it.archivie.ubuntu.com/ubuntu
Vedremo la solita voce evidenziata “Done” e premiamo “invio”.
Installazione S.O - Configurazione del disco (HDD)
Questo passaggio è molto delicato, prestiamo molta attenzione perché riguarda la configurazione del disco per l’installazione del sistema operativo, non dobbiamo fare altro che premere il tasto “tab” sulla tastiera senza essere troppo veloci fino a quando la voce “Done” non verrà evidenziata.
Premiamo “invio” e alla schermata successiva non dobbiamo fare assolutamente nulla, solo assicurarci che la voce “Done” sia evidenziata e premere nuovamente invio, penserà l’installer a partizionare il disco per noi.
Passiamo alla prossima schermata, ci viene elencato il partizionamento del disco, ci viene chiesto se è tutto corretto e se vogliamo procedere.
Sotto la voce “FILE SYSTEM SUMMARY” ci verranno elencati i punti di mount, significa dove verranno allocati i file di installazione e di avvio e un ulteriore spazio per il GRUP, l’applicazione di avvio.
Ci viene chiesto se siamo sicuri di voler procedere, “freccia Giu’” sulla tastiera, la voce “continue” verrà evidenziata di rosso e poi “invio”.
Al momento spiegare i dettagli di cosa sta facendo linux non è parte di questo tutorial, i dettagli importanti verranno dopo sulla configurazione di prestashop, e già impegnativo così non voglio mettere troppa carne al fuoco.
Dopo aver scelto di continuare passeremo alla configurazione di base per il server mentre questo verrà installato.
Installazione S.O - Configurazione di base e hostname
Mentre l’installazione del sistema operativo prosegue possiamo compilare questi campi (immagine di esempio sotto) in questo ordine:
- Your name
- Your Server’s name
- Pick a username
- Choose a password
- Confirm your password.
Attenzione al punto 2, determina non solo l’hostname del server ma in questo caso, visto che e sprovvisto di server DNS determinerà anche il nostro host locale.
Compila questi campi come da esempio :
- alex
- spaziolibri
- alex
- spaziolib122
- spaziolib122
Ricorda che per spostarci da un campo all’altro devi usare il tasto “tab” per poi arrivare alla funzione “Done” e premere “invio”.
Installazione S.O - Server SSH
Adesso ci troviamo un’altra richiesta, la modalità di accesso remoto al nostro server.
Ci tornerà utile per navigare all’interno dei files con un explorer adeguato, che installeremo dopo molto efficace e potente.
Nella schermata “SSH Setup” troveremo il cursore lampeggiante sulla voce “Install Open SSH Server”.
Premiamo “spazio” sulla tastiera comparirà una “X”, poi “tab” fino alla voce “done” e proseguiamo.
Per chi conosce già SSH ci sono numerosi vantaggi ma lavorare con la console diretta di linux non e proprio il massimo ci serviremo come scritto prima di un software dedicato.
Installazione S.O - Fine
La schermata successiva non è il caso di spiegarla, e intuibile che vengono elencate una serie di applicazioni che a noi adesso non servono, dunque premiamo su “tab” ,evideziamo “done” e “invio”.
Attendiamo la fine della installazione, possiamo vedere i progressi premendo “invio” sulla voce “View full log”.
Ci vorrà qualche minuto, si paziente ne varrà la pena, intanto con questo primo capitolo hai imparato (per i principianti) ad installare un sistema operativo server di base.
L’installazione non è proprio ortodossa e professionale, ma già così il processo e lungo e come spiegato prima non è il nostro scopo ultimo, ci serve solo che sia installato e funzionale per adesso.
Dal prossimo capitolo iniziano le cose interessanti, ti consiglio una pausa e appena pronto iniziamo a configurare il nostro server per accogliere prestashop.
Configurazione del Server
Terminata l’installazione verrà visualizzato un errore riguardante al montaggio del CDROM.
Non è nulla di preoccupante ignoralo e riavvia il server, ricorda che per il sistema operativo il server e reale e si comporta di conseguenza.
La prima cosa che ci occorre e un accesso ad alti livelli amministrativi e completo, detto “root”.
L’utente root al momento e attivo ma privo di password ed è il così detto super amministratore e ci occorre avere accesso all’intero sistema per le configurazioni.
Terminato il riavvio ecco pronto il nostro server a ricevere istruzioni.
Per prima cosa dobbiamo reimpostare la password per il root (spuper admin).
NOTA: Linux e case sensitive, massima attenzione a rispettare maiuscole, minuscole e spazi.
login: alex
password: spaziolib122
Nella digitazione della password non vedrai nulla, e una impostazione di sicurezza, digita la tua password e premi invio ed entriamo nel sistema operativo, ma ancora non abbiamo pieni diritti di accesso, li avremo a breve.
Per tutte le operazioni importanti si utilizza in linux il comando “sudo” e la relativa password, questo ci permette di avere privilegi elevati di amministratore temporanei per le operazioni di una certa importanza ma non il pieno accesso.
Dunque digitiamo sulla console “sudo passwd root” attenzione agli spazi.
Ci verrà chiesta appunto la password utente ([sudo] password for alex), digitiamo la nostra password utente “spaziolib122”, poi ci verrà chiesta una nuova password (sceglietene una vostra) e di ripeterla per essere sicuri che sia corretta e “invio”.
Se vi siete dimenticati la password niente paura, rientrate con il vostro user e ripetete la procedura.
Se le password per l’utente “root” corrispondono avremmo un messaggio di conferma.
Benissimo, adesso usciamo dalla console con il nostro utente digitando “logout” per tornare alla schermata di login
Adesso digitiamo :
login: root
password: (quella che abbiamo scelto)
e “invio”.
Adesso possiamo operare e installare tutto quello che ci serve senza ogni volta usare “sudo” e la password.
Configurazione Del Server SSH
Come scritto prima, ci occorre accesso ai files del sistema operativo, quindi ci occorre un explorer, e un accesso a linea di comando piu’ agevole.
Per questo ci viene in auto il software “mobaxterm”, scaricabile nella sua versione FREE, non ha limiti di tempo ma naturalmente in sessioni, significa che puoi al massimo memorizzare 12 sessioni il che ti auguro di avere 12 server da gestire, a questo punto potremmo permetterci anche la versione pro, ma in questo caso possiamo lavorare con la free perché ripeto, non ha limiti di tempo testato e garantito, ho usato la versione free fino a qualche mese fa per anni.
Iniziamo a scaricarlo ed installarlo raggiungibile all’indirizzo https://mobaxterm.mobatek.net/ e nel frattempo predisponiamo il server per essere raggiungibile via SSH e con il dominio locale.
Nel terminale digitiamo “nano /etc/ssh/sshd_config” e “invio”.
Quello che ci troviamo davanti adesso e il file di configurazione del server SSH.
Tutte le voci che vedi con un simbolo “#” sono configurazioni non operative sotto forma di commento.
Adesso imposteremo un accesso remoto, dal nostro computer locale al server, come se fosse realmente a distanza.
Questa configurazione da diretto accesso come se fossimo in remoto, al server SSH e al sistema operativo linux con l’utente “root” quindi avremo pieno accesso, chiaramente siamo in locale quindi totalmente privo di ogni sicurezza, essendo in locale non occorre.
Adesso con la freccia “giu’” spostiamoci alla sulla voce “#Port 22” e leviamo il cancelletto “#”.
Noterete che la voce da blu diventa bianca, questo significa che SSH quando andrà a leggere il file di configurazione prenderà le istruzioni senza commento come da eseguire.
Sempre con la freccia “giu” sulla tastiera spostiamoci e leviamo il commento “#” della voce “PermitRootLogin prohibit-password” diventando anch’essa bianca.
Adesso dobbiamo impostare il server ssh per permetterci l’accesso come utente “root” anche da remoto (sempre in locale tra il nostro pc e il sistema operativo simulato).
Modifichiamo la voce “PermitRootLogin prohibit-password” con “PermitRootLogin yes” come da esempio.
Queste modifiche vanno salvate, premiamo sulla tastiera i tasti “Control” + “O”, e ci viene chiesto se vogliamo scrivere le modifiche.
Premiamo “invio” e ci viene confermata la scrittura del file Con il messaggio evidenziato in bianco “[Wrote 124 lines ]”.
Usciamo dall’editor con la combinazione di tasti “control” +”X” per ritornare alla console.
In questo stato il server SSH non ha ancora appreso le modifiche perché il file di configurazione viene caricato una sola volta, quando il server e in fase di avvio e carica ogni servizio, avrai notato le conferme con “[ok]” in verde ad ogni servizio caricato.
Ora ti verrà da pensare che basta riavviare per far accettare le modifiche, si e fattibile ma no, non è necessario.
Basta il comando “service ssh restart” e “invio”.
In questo modo abbiamo riavviato solo il servizio che ci interessa, e uno dei vantaggi di operare in ambito server, se non strettamente necessario non si riavvia praticamente mai ed è possibile operare in piena tranquillità mentre il server fa altre operazioni oppure altri utenti sono connessi.
Rendiamo il Server Raggiungibile
A questo punto si potrebbe pensare che inserendo gli accessi sul software che ti ho fatto scaricare “mobaxterm” avremo accesso al server e ai suoi files.
Ancora no, ci manca un passaggio, il server in realtà al momento è raggiungibile, ma è anche impostato in modalità “DCHP” quindi significa che il nostro router prima o poi cambierà l’ip ad esso assegnato ma non solo, ricordiamoci che prestashop richiede un dominio per essere seguito , ogni volta dovremmo cambiare ip a prestashop quindi una volta diventerà raggiungibile con “http://192.168.0.122” poi spegniamo tutto, riprendiamo dopo 2 giorni e potrebbe diventare “http://192.168.0.101” per non parlare del fatto che ogni volta dovremmo accedere al database e modificare i parametri di connessione, e se decidiamo di spostare questa macchina virtuale e continuare il nostro lavoro nel portatile o viceversa? Tutto da riconfigurare, non so tu come la pensi ma per ma e una cialtronata.
Potremmo risolvere con ip statico, ma se abbiamo una Wi-FI?, un’altra cialtronata perché l’ip statico su wifi e scomodo a dir poco e non risolviamo il problema.
Dunque come possiamo risolvere?
La soluzione si chiama “host locale” e “samba”.
L’host già lo conosciamo, e il nome del nostro server o meglio l’hostname del server che a cui abbiamo dato nome “spaziolibri”.
Bene, passiamo ai fatti.
Dal nostro terminale della nostra Virtual machine digitiamo “apt -y install samba”, attendiamo l’installazione.
Adesso apriamo il nostro prompt dei comandi windows e digitiamo “ping -a spaziolibri.local”.
Attendiamo qualche secondo e aspettiamo che ubuntu server ci risponda con il seguente risultato.
A questo punto l’indirizzo Ip non ha alcuna importanza e non siamo vincolati da configurazioni statiche.
Nel caso, come dicevo prima, volessimo continuare il nostro lavoro su un altro computer, che questo sia non necessariamente un pc con windows, potremmo trasportare il nostro lavoro dove ci occorre.
A tal punto e necessario avere configurata correttamente la scheda di rete virtuale di vmware, o meglio della istanza che stiamo eseguendo, assicurati che sia in modalità di replica.
In questa modalità vmware si adatterà in automatico a qualsiasi scheda di rete venga collegato. Con questa configurazione qualsiasi rete andremo a connetterci con il nostro pc reale a patto che la rete connessa abbia un server DHCP quindi un router che assegni un automatico un indirizzo ip, con la modalità di replica su vmware abilitata e l’opzione di “bridge” questa farà da ponte alla scheda di rete interna al sistema simulato, assegnando in automatico un altro ip, dove il server sarà visibile sempre raggiungibile con il suo hostname, in questo caso “spaziolibri.local” senza ogni volta assegnare indirizzi ip statici e perdere tempo inutile a riconfigurare tutto.
Con questa tecnica abbiamo una migrazione di macchine vertuali, in ambito server, solo con il semplice “copia/incolla” da un pc all’altro della propria macchina virtuale e relativo software “Vmware”.
Apriamo il software “mobaxterm”, possiamo usare anche altri software, il suggerimento di questo e perché lo conosco bene ma puoi usare anche altri software se preferisci e ininfluente.
Quello che conta e che adesso il server è raggiungibile nella rete locale con un dominio locale, abbiamo un accesso remoto ( da usare in locale) per il terminale e i files.
Apriamo “mobaxterm”, Clicchiamo su “session” e scegliamo “ssh” come tipo di connessione.
Adesso non dobbiamo fare altro che inserire i nostri dati di connessione.
Per “Remote host*” : spaziolibri.local
Spuntiamo la casella “Specify username” e inseriamo : “root”
Per “Port” lasciamo invariata la “22” porta che abbiamo impostato nel file di configurazione del server SSH.
Clicchiamo adesso su “ok” e mobaxterm tenterà una prima connessione, se tutto e corretto il server ci risponderà dopo qualche secondo e la richiesta della password dell’utente “root” che inseriremo una sola volta, poi verrà memorizzata.
Come per il terminale nativo di Ubuntu-Server per ragioni di sicurezza non verrà visualizzato nulla durante la digitazione.
Se è tutto corretto verremo loggati in pochi istanti e noteremo subito alla nostra destra la console e alla nostra sinistra un accesso diretto ai files di tutto il sistema operativo non solo, il sistema e drag & drop da e verso l’explorer, 2 strumenti in un solo software.
Avrai sicuramente notato L’errore “file root/.xauthortity does not extist”, e normale al primo accesso, e di poca importanza.
Prima di concludere questo capitolo eseguiamo qualche aggiornamento con il comando :”apt update” e al termine “apt upgrade” miraccomando rispetta gli spazi, ricorda che questo sistema e “case sensitive”.
Passiamo al prossimo capitolo e installiamo il web server.
Installiamo il Web Server
Bene, ancora non possiamo eseguire prestashop, ci mancano diverse cose tra cui un web server.
Come web server ho scelto apache2, facile e veloce da comprendere e configurare.
Installiamo apache2 da terminale con il comando:
“apt install -y apache2” e “invio”.
Attendiamo la conferma di installazione e configurazione e testiamo subito su un browser il web server.
Apriamo dunque una nuova scheda sul nostro browser web e digitiamo:
“http://spaziolibri.local”
Accertati che risponda correttamente.
Avrai notato sicuramente che la connessione non è protetta, al momento non è necessaria.
Affronteremo l’argomento dei certificati SSL in ambiente locale in un altro tutorial piu’ avanti.
Prestashop viene realizzato con una gran varietà di linguaggi web, uno di questi e il php.
Assieme al php ci occorrono anche diversi componenti esterni tra cui la connessione ad una base dati (mysql o mariaDB) che andremo ad installare.
Procediamo con l’installazione di PHP digitando il comando:
“apt install -y php libapache2-mod-php” e “invio”.
Prima di installare i componenti esterni che l’installazione di php non include dobbiamo conoscere la nostra versione di php, prima ho parlato della 7.4, ma verifichiamo se e vero.
Sempre da terminale digitiamo il comando:
“php – -version” “Invio”.
Ottenendo questa risposta:
Adesso che siamo sicuri di aver installato una versione di PHP compatibile con prestashop e sappiamo anche quale versione possiamo procedere con l’istallazione di quello che ci occorre per eseguire prestashop.
Iniziamo con il comando :
“apt install -y php7.4-mysqli” “invio”
Test del PHP
Dobbiamo assicurarci che il PHP funzioni correttamente e che venga interpretato dal nostro web server.
Uno dei modi piu’ semplici per farlo e scrivere un piccolo script in php e autorizzarne l’esecuzione.
Dalla nostra console di “Mobaxterm” digitiamo:
“cd /var/www/html” poi “invio” e il comando “dir”.
Dovresti trovare un file chiamato “index.html”, questo file viene eseguito di default quando chiamiamo il dominio di esempio impostato su apache.
Ti serve per sapere se sei nella posizione corretta.
Un esempio dei comandi e della posizione in cui ti dovresti trovare:
Bene, Adesso Digita il comando come segue “nano index.php”.
Si aprirà l’editor vuoto.
Inseriamo il comando php per il test in questo modo :
<?php
Phpinfo();
?>
Deve risultare esattamente come da esempio:
Adesso salviamo il file con la combinazione di tasti “control” + “O”.
In basso all’editor avremmo un messaggio che ci chiede conferma della scrittura del file:
“File Name To Write: index.php”
Premiamo “invio” per conferma e “control” + “X” per uscire dall’editor.
Adesso se digitiamo il comando “dir” troveremo 2 files, “index.html” e “index.php”.
Posso capire che sia impegnativo se non hai mai fatto questo tipo di configurazioni, ma credo che sia il caso di sapere anche quello che si sta facendo e perchè.
Se adesso lanciamo nuovamente sul browser “http://spaziolibri.local” continueremo a vedere la pagina di default, questo perché il file di configurazione di apache e impostato per caricare come primo file “index.html”.
Ci occuperemo di questo aspetto piu’ tardi compilando un nuovo file di configurazione.
Il file che abbiamo appena creato al momento e privo di permessi, possiamo autorizzare apache per la sua esecuzione nel nostro server locale con il comando :
“chmod 755 index.php” e “invio”.
Se il comando e corretto il cursore andrà a capo, significa che è stato accettato e i premessi impostati.
Andiamo adesso sul nostro browser e digitiamo :
“http://spaziolibri.local/index.php” e “invio”
Se php funziona correttamente e il file di esempio è stato compilato correttamente ecco il risultato:
Nel caso riscontri difficoltà puoi scaricare il file di esempio dal mio drive
Siamo un passo avanti alla nostra meta, proseguiamo.
PHP-Componenti Aggiuntivi
Per poter eseguire prestashop non è sufficiente solo “PHP” e il componente aggiuntivo “MYSQLi”.
Sono necessari altri componenti, di facile installazione.
Esegui uno per volta la lista di questi comandi:
“apt install -y php7.4-cgi”
“apt install -y php7.4-gd”
“apt install -y php7.4-curl”
“apt install -y php7.4-xml”
“apt install -y php7.4-mbstring”
“apt install -y php7.4-zip”
“apt install -y php7.4-intl”
NOTA: potrebbe capitare di eseguire lo stesso comando o risultare installato, non ti allarmare, in tal caso Ubuntu Ti risponderà che è già stato installato e puoi passare al successivo.
Ora facciamo presenti ad apache i nuovi componenti installati con il comando
“service apache2 restart”
Credo che adesso ti stia iniziano a rendere conto quanto lavoro c’e dietro una configurazione, se pur di base di un server e non abbiamo finito purtroppo, ma quello che ti spiego oggi non credo lo troverai così dettagliato in altri tutorial.
Andiamo avanti, “Ubuntu Server “ e sprovvisto di qualsiasi applicazione, incluse quelle di rete, come promesso siamo partiti veramente da zero, di conseguenza non abbiamo nemmeno un compressore archivi per poter estrarre e compattare i file “.zip ecc ecc”.
Possiamo rimediare installando per esempio “7zip” con il comando:
“apt install -y p7zip-full” e “invio”.
Assicurati che sia installato digita “7z –help” per vedere la lista di comandi, poi vedremo come usarlo.
MySql-Server - Installazione
Siamo ad un passo importante, ci occorre una base dati, in questo tutorial utilizzeremo “MySQL-Server”.
Possiamo installarlo con il comando:
“apt install -y mysql-server”
Attendiamo che venga scaricato ed installato.
Proviamo ad accedere adesso alla console di mysql con il comando “mysql” e semplicemente “invio”
Avrai sicuramente notato che non è richiesta alcuna autenticazione, questo perché essendo un Super amministratore con i privilegi piu’ elevati la richiesta di ulteriori credenziali non è necessaria.
Per tornare alla console di “Ubuntu-Server” basta digitare il comando “quit”
MySql - Creiamo Una Base dati (database)
Adesso che abbiamo un web server funzionante e raggiungibile, PHP e una base dati, non ci resta che creare un database, assegnarli un utente, una password e privilegi.
Dovremo prendere nota del nome del database che andremo a creare, utente e password, questi dati ci servono per connettere prestashop con il nostro server e database contenuto al suo interno.
Come accennato nel precedente capitolo ci serve una base dati raggiungibile, per adesso in locale, un passo per volta.
Sempre logati come utente “root” accediamo alla console per la gestione della base dati con il comando:
“mysql”
Prima di procedere, mysql, unito alla sua console permette di fare qualsiasi cosa, anche piu’ di phpmyadmin, chi gestisce hosting sa di cosa parlo, vedremo di installarlo dopo per gestire piu’ facilmente tutti i dati in esso contenuti.
Ma adesso e importante farti conoscere cosa esattamente accade e come viene creato un utente e database.
Potresti trovarti in una situazione di emergenza dove hai solo a disposizione una console a linea di comando oppure l’admin di quel server ha deciso di non dare gli accessi per “phpmyadmin” o ancora non è proprio disponibile l’applicazione per diversi motivi, non è la prima volta che capita e devi essere preparato.
Anche se spesso non necessario come raccomandano gli sviluppatori di “oracle” tutti i comandi devono essere eseguiti in stampatello e per terminare quel comando alla fine ci vuole il “;” punto e virgola, non è complicato bisogna solo rispettare alcune regole.
Per creare un database da console mysql digita il comando :
“CREATE DATABASE nomeDb; ” quindi : “CREATE DATABASE spaziolibri_23;”
Se il comando e corretto avremo una conferma da mysql
Adesso ci occorre un utente ed una password da assegnare al nostro database, questo utente potrà connettersi al nostro database solo localmente, digitiamo il comando :
“CREATE USER ‘spz122’@’localhost’ IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY ‘spaziolib_124’;
Se il comando e corretto ci verrà confermato con il messaggio “Query ok”.
Fermiamoci una attimo, nelle ultime versioni di mysql sono cambiate diverse cose, una di queste e la creazione della password che comporta un tipo diverso di cifratura.
Attualmente prestashop e alcuni applicativi di terze parti non possiedono ancora driver in grado di supportare il nuovo livello di cifratura, per questo motivo viene introdotto un nuovo comando per far si che quando prestashop si connetterà alla propria base dati con le credenziali create non ci siano errori.
Un’ altro motivo per il quale e importante sapere cosa si sta facendo e perché. Consiglio inoltre di digitare i comandi in modo da ricordarli non di usare il “copia/incolla” come spesso si tende a fare.
La programmazione, che sia di altri linguaggi o di scripting come in questo caso e veramente faticosa, ma necessaria se vogliamo conoscere a fondo quello che stiamo facendo.
Andiamo avanti.
Quello che ci serve adesso e assegnare questo utente al database creato prima, e aggiornare mysql.
Digitiamo il comando :
“GRANT ALL PRIVILEGES ON spaziolibri_23.* TO ‘spz122’@’localhost’ WITH GRANT OPTION;
Se tutto corretto otterremo un messaggio di conferma, ma cosa abbiamo realmente fatto con questo comando?
Abbiamo detto a sql-server che l’untete “spz122’ può connettersi solo in modalità locale con il database “spaziolibri_23” e che può eseguire tutti i comandi.
Aggiorniamo adesso la configrazione con il comando :
“FLUSH PRIVILEGES;”
E usciamo dalla console con ”quit” per tornare alla console di “ubuntu server”.
Facciamo una verifica.
Sempre da console proviamo a loggarci a mysql-server con le credenziali appena create.
Usiamo il rispettivo comando :
“mysql -u spz122 -p” e “invio”
Ci verrà chiesta la passsord, inseriamola ricordando che non verrà visualizzato nulla durante la digitazione per questioni di sicurezza, e “invio”
Se i comandi inseriti in precedenza sono corretti saremmo immediatamente loggati alla console di mysql server
Per uscire digitiamo sempre il comando “quit”.
Bene, siamo un passo avanti per il nostro laboratorio virtuale.
Ricapitolando:
- Abbiamo un accesso remoto al server SSH
- Il server apache e in grado di ricevere ed interpretare PHP
- Abbiamo installato i componenti esterni che ci occorrono per prestashop
- Abbiamo installato una base dati e configurato un nome e creato un database per prestashop.
Nel prossimi 2 capitoli prepareremo apache e imposteremo php per avere da subito un e-commerce ottimizzato e solo dopo saremmo in grado di installare il nostro shop.
Apache - Attiviamo il Dominio Locale
Abbiamo visto che digitando sul nostro browser l’indirizzo locale
“http://spaziolibri.local”
e
“ http://spaziolibri.local/index.php”
Otteniamo la pagina di Default di apache2 e “forzando” apache a chiamare il file “index.php” otteniamo, grazie al piccolo script in esso contenuto e da te compilato, anche l’esecuzione del php.
Ma la configurazione di base, sprovvista tra l’altro di un dominio di riferimento ( ricordi che nelle lezioni precedenti ho precisato che prestashop per la sua esecuzione vuole di fatto un domonio per essere eseguito) non è sufficiente, dovremo compilare un file con all’interno i parametri giusti per un host virtuale che verrà poi gestito da apache2 in base alle nostre direttive.
Come nei passaggi precedenti anche questo e molto importante, ci sarà un po da digitare ma e disponibile nel mio drive il file già compilato per il dominio di esempio.
Come prima cosa abilitiamo le funzioni di apache2 “URL-REWRITE” e “SSL” con i comandi:
“a2enmod rewrite” e “a2enmod ssl”
Se è tutto corretto avremo dei messaggi di conferma.
Se Ricordi, qualche capitolo prima, abbiamo riavviato il server SSH senza riavviare tutto il server, qui non è diverso, ma si aggiunge un comando, dobbiamo “forzare” il web server apache a ricaricare le sue impostazioni con il comando:
“service apache2 reload”
E riavviare il web server per far si che queste vengano prese in considerazione con il comando :
“service apache2 restart”
Quando premi invio il cursore deve tornare allo stato precedente, significa che le impostazioni sono state accettate e convalidate e pronte ad essere utilizzate.
Quello che ci occorre adesso, e dare delle nuove istruzioni ad apache2, dirle come eseguire, quale cartella puntare e quale file caricare.
Iniziamo a spostarci nel percorso dove apache2 carica i suoi file di configurazione con il comando :
“cd /etc/apache2/sites-available”
Se digitiamo il comando “dir” troveremo 2 file di esempio di cui uno “000-default.conf” attivo ed è quello che attualmente apache sta eseguendo.
Nel file di configurazione che andremo a creare alcune diciture avranno come primo carattere il cancelletto (#) che indica ad apache di saltare quella riga e sono sotto forma di commento.
Digitiamo adesso il comando:
“nano spaziolibri.local.conf”
Si aprirà l’editor vuoto, che dovremmo compilare con questi parametri:
<VirtualHost *:80>
#ServerAdmin
ServerName spaziolibri.local
# Indexes + Directory Root.
DirectoryIndex index.php
DocumentRoot /var/www/spaziolibri.local/www/
<Directory /var/www/spaziolibri.local/www/>
Options Indexes FollowSymLinks MultiViews
Options FollowSymLinks
AllowOverride all
</Directory>
# CGI Directory
ScriptAlias /cgi-bin/ /var/www/spaziolibri.local/cgi-bin/
<Location /cgi-bin>
Options +ExecCGI
</Location>
</VirtualHost>
Non è una configurazione molto ortodossa, ma e funzionale e ci serve per lavorare in locale, quindi non abbiamo bisogno di troppi parametri.
Come Sempre ti suggerisco di non usare il “copia-incolla” ma di compilare manualmente il file, sono poche righe e ti aiutano a comprendere meglio i parametri.
E’ Molto frequente soprattutto le prime volte che si compila file di scripting o di codice fare errori di compilazione, non allarmarti, tieni la calma e in caso di errori controlla bene tutto quello che hai digitato.
Ho messo a disposizione un file compilato perfettamente funzionante per le versioni di apache con ubuntu server dalla versione 18 alla 22 nel mio drive
Peri via della complessità ed essendo questo tutorial molto lungo e impegnativo, in particolare per chi si affaccia per la prima volta a questo tipo di configurazioni spiegherò solo alcuni aspetti di questi comandi.
Ma potrai trovare una accurata e completa configurazione di apache2 nel sito ufficiale
I parametri <VirtualHost *:80> e < / VirtualHost> sono i tag di apertura e chiusura che servono ad apache per sapere dove iniziano e finiscono i parametri da leggere, un po come i tag di inizio e fine delle pagine web.
Nel tag di apertura di “virtual host” sono presenti 2 istruzioni importanti. Uno e l’asterisco (*) e l’altro e successivo con due punti (:) e un numero “80”.
L’asterisco indica ad apache che deve accettare tutte le chiamate provenienti da qualsiasi indirizzo ip mentre il numero “80” e la porta dove accetta le chiamate.
Qui entra in gioco il DNS, che sarebbe lungo e complesso da spiegare, magari in qualche altro mio turorial faremo qualche server DNS di base per capire come funziona, ma non in questo.
Quando noi scriviamo sul browser un dominio che sia locale o internet come “www.sito.com” oppure “spaziolibri.local” questo in automatico comunica sulla porta predefinita 80, chiamata che il web server attende, se la porta specificata e diversa non risponderà, con un errore sul browser.
IL parametro “ServerName” serve ad apache per sapere quale chiamata accettare e dover reindirizzarla.
Sotto il commento “# Indexes + Directory Root.” Troviamo 2 parametri importanti.
“DirectoryIndex “ indichiamo quale file per primo il web server deve eseguire
“ DocumentRoot “ Come intuibile il percorso dove e contenuto il sito, in questo caso prestashop.
Nel caso ci fossero difficoltà nella compilazione del file oppure vuoi usare la scorciatoia puoi usare il file di esempio messo a disposizione nel mio drive.
E sufficiente navigare con l’explorer di “mobaxterm” a fianco alla console e inserire il file tramite la funzionalità “drag&drop”.
Ricontrolliamo che il file appena compilato sia corretto, salviamo con i tasti “Control” + “O” e “Control” + “X” per uscire dall’editor.
Adesso dobbiamo dire ad apache che è presente una nuova configurazione.
Per farla o usiamo il comando:
“a2ensite spaziolibri.local” e “invio”
Abbiamo inserito nella lista dei siti da accettare di apache un nuovo file di configurazione, prima di riavviare il web server per far caricare ad apache2 il file appena creato dobbiamo darle una posizione altrimenti avremo un errore, direi anche giustamente perché apache non trova il percorso che le abbiamo indicato ovvero:
“/var/www/spaziolibri.local/www/”
Spostiamoci sulla posizione “var/www” con il comando
“cd /var/www” e “invio”
Se digitiamo il comando “dir” troveremo la cartella “html” che è la cartella di default (di esempio) di apache2.
Aggiungiamo un nuovo percorso dove verrà posizionato prestashop con il comando:
“mkdir spaziolibri.local”
Creiamo una ulteriore sotto cartella con il comando
“mkdir spaziolibri.local/www”
E una ulteriore sotto cartella per applicazioni di terze parti con :
“mkdir spaziolibri.local/cgi-bin”
Queste cartelle sono al momento prive dei permessi necessari per la corretta esecuzione di prestashop.
Per farlo iniziamo con la prima cartella.
Assicurandoci di trovarci nella posizione “/var/www” e con il comando ”dir” che siano presenti le cartelle
“html” e “spaziolibri.local” digitiamo:
“chmod 755 spaziolibri.local” e “invio”
Adesso spostiamoci di cartella e digitiamo:
“cd spaziolibri.local”
Vedremo le due cartelle create in precedenza “cgi-bin” e “www”
Tralasciamo per il momento la cartella “www” e diamo i permessi alla prima con :
“chmod 600 cgi-bin” e “invio”.
Adesso possiamo possiamo caricare la configurazione di apache con:
“sevice apache2 reload” e “invio”
“service apache 2 restart” e “invio”
Se tutto e stato fatto correttamente il cursore tornerà a capo.
Il web server e pronto per accogliere prestashop!
Manca ancora qualcosa ma la vedremo in seguito.
Installiamo Prestashop
Bene.
Spero di aver fatto bene fino a qui, nel senso oltre a far comprendere quanto lavoro e conoscenza sono necessari per una installazione di questo tipo, farti comprendere anche cosa stai realmente andando a configurare.
In questo modo potrai comprendere in modo molto piu’ approfondito anche se non completamente, come correggere errori di un certo tipo e da cosa dipendono.
Installiamo prestashop.
Scarichiamo dal sito ufficiale l’ultima versione rilasciata, puoi farlo a questo indirizzo:
https://www.prestashop.com/it/versioni
La versione stabile al momento e la 1.7.8.7, scarichiamola sul nostro desktop per iniziare.
Completato il download estraiamo il contenuto, troverai un file con il nome “prestashop.zip”.
Se stai usando “Mobaxterm” come suggerito all’inizio o comunque altro editor che ti permette di navigare nelle cartelle posizionati sul percorso “/var/www/spaziolibiri.local/www”.
E trasciniamo il file “prestashop.zip” dal nostro deskop al nostro “explorer” copiandolo in pochi sencondi.
Da linea di comando Spostiamoci sulla posizione del file con il comando :
“cd /var/www/spaziolibri.local/www”
“invio”
e digitiamo il comando “dir” per assicurarci di essere nella posizione corretta dove troveremo il file appena copiato.
Questo contenuto va estratto, in precedenza ti ho fatto installare una applicazione apposita “7zip” e ora di usarla con il comando :
“7z x prestashop.zip”
Attenzione alla “x” e molto importante, serve a “7zip” per estrarre i file nelle rispettive sotto cartelle altrimenti viene un pasticcio e prestashop non funzionerà.
Premendo “invio” verrà estratto tutto il contenuto e confermata l’operazione.
Prima di installare prestashop ci occorrono i permessi necessari ma non siamo nella posizione corretta, dobbiamo fare un passo indietro, lo possiamo fare con il comando:
“cd ../” e “invio”
Digitiamo nuovamente “dir” per assicurarci di trovarci nella posizione corretta, troveremo le cartelle “cgi-bin” e “www”.
I permessi che andremo a dare saranno ricorsivi per tutti i file e cartelle, penserà prestashop durante l’installazione a impostare quelli corretti, usiamo il comando:
“chmod -R 757 www” e “invio”.
Attenzione alla “R” maiuscola e rispettivi spazi.
Potrebbe volerci qualche secondo poi il cursore tornerà capo.
Bene, direi che ci siamo, sarebbe anche ora di vedere il frutto di tutto questo lavoro, che ricordo non è completo.
Ti ricordo che trovi un video completo di questa guida sul mio canale youtube.
Apriamo il nostro browser preferito, e digitiamo:
“http://spaziolibri.local”
Dai qualche secondo al web server, e se hai fatto tutto come da guida ecco il nostro primo risultato!
Prestashop - Configurazione di Base
Forza! niente paura, clicca su next, accettiamo i termini e condizione e andiamo avanti, verrà verificata la compatibilità di sistema.
Se non hai saltato passaggi avremo una spunta verde e passeremo direttamente all’inserimento delle nostre informazioni di base per installare lo shop.
Compiliamo i rispettivi campi con :
- Nome Shop: spaziolibri
- Attività principale : Servizi
- Installazione dati dimostrativi : si
- Attiva SSL : per il momento su “no”
- I nostri dati : nome, cognome, indirizzo mail ( che sia valido miraccomando)
- Password: quella che preferisci
E proseguiamo
Adesso un passaggio importante, e di grande importanza altrimenti prestashop non potrà essere installato, dovremo configurare il database.
Il grosso del lavoro lo abbiamo fatto prima, abbiamo creato un database, un nome utente e una password.
Come suggerito avremo preso nota di questi dati che compileremo in questo modo.
- Indirizzo del server de database: 127.0.0.1
- Nome del Database: spaziolibri_23
- Nome accesso al database (nome utente db) : spz122
- Password del database : spaziolib_124
- Prefisso Tabelle: lasciamo invariato
- Svuota le tabelle esistenti: deve essere spuntato.
E prima di procedere verifichiamo che si connetta correttamente.
Ottenuto il “lascia passare” dalla prova di connessione clicca su “successivo e attendiamo che prestashop venga installato”.
Ad installazione conclusa potremo per prima cosa testare la riuscita della installazione cliccando sul pulsante “Scopri il negozio”
Si può considerare questa fase conclusa, nel prossimo capitolo vediamo di accedere al pannello di controllo.
Prestashop - Pannello di Controllo
Per avere il nostro laboratorio completo mancano ancora alcune cose, avere accesso al database con una interfaccia grafica, e al pannello di controllo.
Chiudiamo per il momento la scheda dello shop e prima di cliccare su “gestisci negozio” dobbiamo fare una operazione.
Torniamo al nostro terminale e assicuriamoci di trovarci nella cartella di installazione di prestashop, adesso possiamo farlo navigando in comodità sull’explorer di mobaxterm:
Dovremo cancellare il file “prestashop.zip” e la cartella “install” servendoci di comandi disponibili Sopra la lista dei files
Potrebbero volerci diversi secondi.
A operazione terminata Torniamo alla schermata della installazione di prestashop e clicca su “gestisci negozio” verrai reindirizzato al pannello di controllo.
Prima di accedere Prendiamo nota dell’indirizzo che ci servirà per lavorare sul nostro shop, quello mostrato e un esempio quindi porta attenzione, nel mio caso l’indirizzo e “http://spaziolibri.local/admin418nvgdg5”
Dovrai prende nota di questo dato per il prossimo accesso
Adesso possiamo iniziare a lavorare con il nostro shop e configurarlo per le nostre esigenze.
Entra nel pannello di controllo con le credenziali inserite nella fase di configurazione del negozio, per accertarci che venga caricato correttamente senza errori.
Prestashop - Configuriamo La posta
Uno degli aspetti importanti per avere un laboratorio completo con prestashop ed effettuare dei test dall’ordine cliente fino alla conferma degli ordini e la posta.
Essendo in un ambiente locale ad oggi, le restrizioni sono veramente tante, questo per via di molteplici truffe e attacchi hacker di ogni tipo.
Avendo un server dedicato simulato potremmo configurare un server di posta, ma a questo punto il tutorial sarebbe ancora piu’ lungo e le mie guide di certo non sono famose per essere corte.
Ci serve qualcosa di pratico, veloce e trasportabile, in modo che se decidiamo di trasportare il nostro lavoro su altro pc per diversi motivi, questo sia possibile farlo nel minor sforzo possibile.
A questo punto possiamo pensare a Gmail, anche se ha ristretto molto questo aspetto abbiamo ancora qualche spiraglio per poter lavorare con il nostro laboratorio web.
Accedendo al pannello di controllo, alla tua sinistra, cerca la voce “Configura” e clicca su “Parametri Avanzati” si aprirà una tendina, clicca su “mail”.
Quando andrai a migrare questo progetto e probabile che il tuo provider abbia già tutto quello che serve quindi dovrai solo impostare la tua mail professionale associata al dominio e lasciare le impostazioni su “Usa /usr/sbin/sendmail” ma nel nostro caso essendo in locale dovremmo selezionale la seconda opzione ovvero:
“Imposta parametri SMTP personali”
Vedremo comparire altre impostazioni da compilare e ora vedremo come fare.
Prima parlavo di Gmail, che anche se hanno dato una bella stretta alle configurazioni personalizzate ma possiamo, attraverso l’autenticazione 2 fattori impostare delle password per le app esterne, questo ci permette di utilizzare il nostro account personale anche per altre applicazioni.
Per questo passaggio devi accedere al tuo account Gmail, cliccare su “sicurezza” e assicurarti che l’opzione “Verifica in 2 passaggi” sia attiva.
Se hai attivato questa opzione oppure è già attiva, troverai un’altra opzione sotto, “Password per le app”, cliccaci sopra, ti verrà chiesta la tua password di Gmail e avrai accesso a questa schermata.
Adesso clicca su “Seleziona app”, si aprirà un menu’ a tendina, Selezioniamo su “altra (nome personalizzato)”, e diamole un nome.
Clicca su genera e prediamo nota della password appena creata.
Clicchiamo su “FINE” per inserire la password nell’elenco app.
Puoi chiudere la pagina di configurazione di Gmail e torna sulla pagina di configurazione delle mail di prestashop.
Compila i campi in questo ordine:
- Nome dominio mail : la tua mail di Gmail
- Server SMTP: smtp.gmail.com
- Nome Utente SMTP : la tua mail di Gmail
- Password: Quella generata prima per le app
- Criptaggio: SSL
- Porta: 465
- Invia email in formato HTML
E clicca su “salva”.
Portiamoci in basso nella sezione “Prova la configurazione della tua mail” e inseriamo un indirizzo mail di prova che non sia quello impostato.
Se i parametri sono corretti verrà confermato l’invio della mail, ma assicuriamoci che arrivino.
Se tutto è stato impostato correttamente dopo qualche minuto vedrai la tua mail arrivare nel tuo account di posta.
Direi che il nostro laboratorio si può considerare quasi completo.
Quasi perché abbiamo accesso ai files tramite SFTP con mobaxterm, possiamo anche usare con le stesse credenziali altri software e su linux attraverso l’applicazione “wine” possimo eseguire la maggior parte delle applicazioni windows, inoltre potrai trovare tante alternative per avere accesso ai files e gestirli con l’explorer.
Quello che ci manca e un accesso al database, per gestire le varie voci dati, modificarle e non solo, ci servirà anche per la migrazione e portare online il nostro lavoro una volta completo con un dominio reale e registrato all’ICANN.
Ci sono vari software che permettono di gestire mysql, ma a noi occore che sia sempre raggiungibile e portable.
Per questo ci viene in aiuto “php my admin” che possiamo integrare nel nostro laboratorio web, operazione che potrai fare nel prossimo capitolo.
Installiamo PhpMyAdmin
Iniziamo col procurarci l’ultima versione disponibile dal sito ufficiale
Adesso estraiamo il contenuto e rinominiamo la cartella estratta in “phpmyadmin”.
Nel nostro exprorer “mobaxterm” portiamoci sul percorso :
“/var/www/spaziolibri.local/”
Troveremo le cartelle “www” e “cgi-bin”
Trasciniamo la cartella “phpmyadmin” dal nostro desktop in aggiunta alle cartelle esistenti :
In precedenza abbiamo dato i permessi con ereditarietà alla cartella “spaziolibri.local”, copiando la cartella “phpmyadmin” al suo interno abbiamo ereditato i permessi.
Per diventare raggiungibile dal nostro browser web attraverso il dominio locale possiamo servirci di un alias.
Grazie agli alias possiamo servirci di applicazioni come questa, raggiungibile per esempio ad un indirizzo web come “http://spaziolibri.local/phpmyadmin”.
Ma potremmo anche personalizzare questo indirizzo se vogliamo.
Prendiamo nota del percorso “/var/www/spaziolibri.local/phpmyadmin/”
E spostiamoci sul percorso
“/etc/apache2/sites-available/”
e identifichiamo il file
“spaziolibri.local.conf”
Apriamolo e inseriamo sotto la riga “DocumentRoot” questa dicitura:
Alias /phpmyadmin “/var/www/spaziolibri.local/phpmyadmin/”
Attenzione allo spazio dopo la scritta “Alias” e rispetta la “A” maiuscola.
Riavvia il web server con i comandi che già conosci :
“service apache2 reload” e “service apache2 restart”
Se non ci sono stati errori nell’aggiungere le righe per l’alias i cursore andrà a capo.
Apri il browser e digita l’indirizzo web:
“http://spaziolibri.local/phpmyadmin”
e invece di caricare prestashop verrà caricato l’interfaccia web di phpmyadmin.
Come per l’accesso al sistema operativo “ubuntu server” anche per phpmyadmin ti serve un accesso completo, così potrai gestire utenti, permessi e creare nuovi database.
Qui ci troviamo davanti a 2 possibilità, creare un utente con i permessi ereditati, oppure configurare l’utente root di mysql-server, trattandosi di accesso locale usiamo la prima opzione.
Dovrai connetterti, dalla console di mobaxterm o tramite la macchina virtuale alla console di sql con il comando :
“mysql”
Come abbiamo fatto per prestashop creiamo un utente e impostiamo una password con il comando:
“CREATE USER ‘mysqladmin’@’localhost’ IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY ‘1234567890’; “
e “invio”, senza dimenticare il “;” che serve a mysql per capire che la lista di comandi è terminata.
Se hai fatto correttamente mysql-server risponderà con un messaggio di conferma.
Al posto di “1234567890” inserisci una tua password, questo e un accesso amministrativo che con la configurazione successiva di permetterà di vedere tutti i database e fare moltissime operazioni.
Come ti ho fatto vedere prima adesso dobbiamo assegnare a questo utente i diritti di accesso ed esecuzione delle varie operazioni ma questo comando avrà una variante, daremo la possibilità all’utente “mysqladmin” di accedere a tutta la struttura dei database (database inlcusi) di mysql-server.
Lo puoi fare con il comando :
“GRANT ALL PRIVILEGES ON *.* TO ‘mysqladmin’@’localhost’ WITH GRANT OPTION; “
e “invio”, per poi convalidare tutti i privilegi assegnati con:
“FLUSH PRIVILEGES;”
Nel garantire i privilegi all’utente “mysqladmin” abbiamo usato questo comando “*.*” che garantisce accesso a tutta la struttura dei database e database stessi.
Non ti resta che fare un test di connessione e inserire i dati di accesso appena creati.
Ti ricordo che abbiamo creato un alias per phpMyAdmin:
“http://spaziolibri.local/phpmyadmin”
Inserisci le credenziali :
Nome Utente: mysqladmin
Password: 1234567890 ( o quella che ti sei personalizzato).
Ti ricordo che puoi cambiare la password direttamente dalla console mysql con il comando “alter” oppure direttamente dall’interfaccia grafica.
Entra e vedi cosa succede.
Come potrai notare siamo dentro mysql ed oltre a vedere il nostro database di prestashop “spaziolibri_23” possiamo crearne di nuovi e applicare tutte quelle regole, e operazioni che ci servono per la gestione, abbiamo inoltre la linea di comando a disposizione se serve.
Ma la configurazione non è completa, potremo lasciare così, ma personalmente non sopporto errori e messaggi vari, a volte anche fastidiosi.
Ovviamente non è solo questo aspetto personale, ma potresti avere dei seri problemi di Query con prestashop.
Il forum ufficiale e colmo di utenti con svariati problemi legati spesso a problemi di query, permessi di file o configurazioni totalmente inadatte per prestashop considerando questi aspetti di poca importanza.
PhpMyAdmin - Configurazione di Base
Vediamo cosa ci chiede mysqladmin.
La prima cosa che ci chiede a una password per il file di configurazione.
Il secondo Errore, perché di fatto sono errori, che non è riuscito a trovare una cartella temporanea.
Sono anche errori di una certa importanza, ha prescindere dal personale presentare un lavoro per un proprio cliente così e magari non essere in grado di risolverlo non è una buona presentazione.
Iniziamo con il piu’ facile, la cartella tmp.
Lascia aperta la pagina phpMYadmin, vai sull ‘ explorer di “mobaxterm” e portati sul percorso:
“/var/www/spaziolibri.local/phpmyadmin/”
Dovrai creare una cartella con il nome “tmp” ed assegnarle i permessi con valore “757” ricorsivi, quindi attenzione alla spunta.
Applica e conferma l’operazione, torna sul browser e ricarica la pagina.
Vedrai che rimarrà solo un messaggio di errore, il secondo è sparito quindi significa che abbiamo risolto il primo problema.
Adesso vediamo di risolvere anche il secondo.
Troverete veramente tanti tutorial solo su questo “problema”, ti giuro io non ne ho capito uno e risolverlo e veramente molto semplice.
Adesso vediamo passo passo come fare:
- Assicurati di essere nella posizione corretta “/var/www/spaziolibri.local/phpmyadmin/”
- Identifica il file “config.sample.inc.php
- Apri il file e identifica la riga “$cfg[‘blowfish_secret’] =’’ ”
- Dovrai generare una password lunga 32 byte, ma per comodità adesso inserisci questa tra le due apici (‘ ’) : JOOZL89EJdsO8NvD{8l{gq~Eb6XMw2|n
- Salva il file
- Rinomina il file in “config.inc.php”
Ricarica la pagina, ritornerai alla schermata di accesso, inserisci le credenziali, fatto.
Tutto qui!
Si parla sempre di una configurazione di base, puoi personalizzare phpMyadmin come vuoi, esiste sul sito ufficiale una accurata documentazione e possibilità di personalizzazione incredibile, un grande progetto!
Per “phpMyAdmin” abbiamo quasi finito, manca ancora una cosa, questo messaggio.
Clicca su “scopri perché” e vediamo cosa ci viene chiesto.
Come puoi notare con la configurazione ancora non ci siamo.
Clicca su “Crea” e assicurati che, a operazione terminata, tutte le voci siano su “OK” e che la voce “Salvataggio template esportazione” sia attiva.
Adesso torna alla “Home” cliccando sulla casetta in alto a sinistra, se è andato tutto come previsto non avrai errori e la configurazione è completa.
Oggi con qualche suggerimento, hai creato un laboratorio web, completamente configurabile ma soprattutto con strumenti GRATUITI.
So molto bene cosa significa non avere un centesimo per le licenze, le idee ma non avere e conoscere alcuno strumento per realizzarle ne le Conoscenze.
Le conoscenze le puoi sempre acquisire, come? con corsi, gratuiti o a pagamento oppure specializzandosi.
NOTA PERSONALE :Queste conoscenze, che io cerco oggi di trasmettere non vengono dal nulla, non sono un guru dell’elettronica e informatica, ma e il frutto di tanto tanto, ma tanto tempo che ho dedicato e dedico anche adesso sia per passione che per professione.
Come puntualizzato piu’ volte queste sono configurazioni di base, efficaci, funzionanti che possono portare la tua idea a non morire sul nascere.
L’italiano, mi duole dirlo da italiano, e spesso viziato, non ha alcuna voglia di impegnarsi, vuole uno strumento con 4 click tutto automatizzato e con risultati immediati ma comunque si lamenta che costano troppo ed ecco che una idea, come la realizzazione dell’e-commerce, diventa presto una idea discussa al bar con gli amici, dove poi a mente lucida ti rendi conto che il lavoro e tanto, ci sono tanti servizi gratuiti, e questa idea potrà farne un lavoro, un business con dei guadagni e cambiarti la vita.
Nessuno dice di mollare il tuo lavoro e buttarti a capofitto in un impresa del genere, ma perchè non partire da qui, un semplice sistema, portatile, leggero e poco per volta ti porti avanti la tua idea, senza aver speso un centesimo.
Questo tutorial e un assaggio di cosa possiamo fare con gli strumenti giusti, gratuiti e realizzare i nostri progetti, e un punto di partenza per poi diventare un professionista e migliorarsi.
Non abbiamo finito 🙂
Nell’ultimo capitolo ti farò vedere come migrare il tuo lavoro, argomento sempre molto discusso ma di tutorial concreti non se ne vedono a mio parere, con un dominio reale su un hosting.
Migrazione Su Hosting
Come dicevo prima e un argomento molto discusso, ci sono una grande varietà di tutorial su come migrare lo shop da locale e portarlo online o viceversa.
Provati personalmente a seguirli passo passo, non ne funziona uno, senza offesa per i blogger.
Quello che ti propongo nel mio tutorial e un sistema efficace, senza errori e che funzionerà al primo tentativo e nel tempo.
Una cosa che ti raccomando quando lavori con un dominio locale e di portare molta attenzione quando acquisti i moduli.
Quando acquisti un modulo ufficiale prestashop ti viene chiesto il dominio di appartenenza, “Inserisci sempre quello conclusivo del progetto.
Avendo concluso in comodità il nostro progetto siamo pronti per metterlo online.
La soluzione piu’ economica, che è quella che prendo adesso in considerazione, e quella di migrare su un hosting condiviso.
Avendo utilizzato l’ultima versione di prestashop disponibile dobbiamo assicurarci anche che la versione del PHP che andiamo a utilizzare sia compatibile con quella del nostro progetto e che tutti i componenti richiesti siano presenti nell’hosting.
Abbiamo usato la 7.4.33, quindi dovrai assicurati che l’hosting abbia almeno la versione 7.4.30 o superiore ma non la versione 8 non supportata al momento dalle versioni di prestashop 1.7.x
Per questo motivo prima di avviare un progetto e bene stabilire alcune regole da adottare:
- Cercare un hosting condiviso o server dedicato compatibile, vericare le impostazioni che replicherai sul tuo laboratorio virtuale e dopo, quando sarà completo, potrai acquistarlo così da ridurre al minimo, praticamente a zero gli adattamenti.
- Assicurarsi che abbia tutte le caratteristiche adatte per eseguire prestashop
- Assicurarsi di avere lo spazio necessario per la gestione del catalogo
- Replicare piu’ realisticamente possibile tutte le impostazioni e opzioni sul tuo laboratorio web locale.
Questa operazione la eseguiremo in gran parte a riga di comando.
Come prima operazione “su mobaxterm” portiamoci sul percorso dello shop con il comando :
“cd /var/www/spaziolibri.local/” e anche sull’explorer alla sinistra.
Eseguiamo un backup del database del nostro shop con il comando:
“mysqldump – – lcok-tables – -databases spaziolibri_23 > www_local.sql
(NOTA: i trattini – – vanno attacati, gli ho separati per non sembrare un unico segno -)
E premi “invio”.
Attendi qualche secondo (dipende dalle dimensioni del database), appena terminato il cursore tornerà a capo.
Adesso devi aggiornare l’elenco dei files alla tua sinistra, troverai il file appena creato oltre all’elenco delle directory.
Questo backup iniziale del database ci serve per ripristinare il database dopo le modifiche che fra qualche minuto andrai a fare.
La seconda operazione da fare e di entrare nel pannello di controllo dello shop.
Dal menu’ a destra vai in “paramentri negozio” e clicca su “generale”
Sotto la scritta “Ipostazioni” ci sono 2 opzioni “Generale” e “manutenzione”.
Clicca su “manutenzione” e disattiva il negozio, conferma con il tasto “salva”.
Le impostazioni ci verranno confermate con un messaggio “Aggiornamento riuscito”.
Terzo passaggio: Sempre dal menu a sinistra clicca su “Parametri Avanzati” e nel menu’ a tendina clicca su “Prestazioni”.
La Voce “Cache” va disattivata, mentre la voce “Modalità Debug” deve essere attiva.
Quando la modalità debug viene attivata vedrai una barra sotto che con diverse indicazioni, al momento trascurabili.
Bene adesso chiudiamo il pannello di controllo.
Quarto Passaggio : Apri il php my admin e individua il database dello shop su cui stai lavorando “spaziolibri_23”
Cerca la voce “PS_configuration” dove a destra verranno elencate tutti campi memorizzati.
Adesso dovrai identificare i campi “PS_SHOP_DOMAIN” e “PS_SHOP_DOMAIN_SSL”.
Questi 2 campi contengono gli indirizzi a cui prestashop fa riferimento, devi modificarli con il reale dominio dell’hosting che hai acquistato per esempio dovrai modificare entrambi i campi da “spaziolibri.local” in “www.spaziolibri.net”.
Effettuate queste modifiche dovrai modificare altri 2 campi con lo stesso dominio.
Cerca la tabella “ps_shop_url” e individua i campi “domain” e domain_ssl”
Modifica anche questi campi da “spaziolibri.local” a “www.spaziolibri.net” lasciando invariati tutti gli altri.
Riconosco che e una operazione anche un po’ macchinosa, ma qui siamo dentro il mondo scripting, non ci sono molte strade se si vuole imparare qualcosa.
Ci sono anche altri metodi ma considero questo, non ancora concluso un metodo che si applica a tutte le versioni fino adesso prodotte di prestashop funzionante in tutte le piattaforme e non solo prestashop.
Procediamo che non abbiamo finito ????.
A questo punto abbiamo modificato il database per far si che quando verrà installato nel nuovo dominio non ci si incasina con configurazioni e pasticci vari.
Adesso torniamo alla linea di comando e stiamo sempre sul percorso “/var/www/spaziolibri.local/”
Diamo lo stesso comando per il backup del database ma nominiamo il file con un altro nome ovvero :
“mysqldump –lcok-tables –databases spaziolibri_23 > www_live.sql”
Aggiorna l’explorer alla tua sinistra per vedere il nuovo file.
Una obbiezione logica sarebbe che si poteva eseguire un dump del database direttamente da mysqlAdmin, ma come spiegato in precedenza potresti non avere l’opportunità, a seconda dei casi di lavorare con una interfaccia grafica quindi e bene conoscere anche delle alternative.
Con questo metodo abbiamo anche fatto di piu’, nel file di configurazione sono incluse le istruzioni per creare il database, usarne il nome e importare i dati.
Quinto passaggio : Abbiamo metà del nostro backup.
Crea una cartella sul desktop del tuo pc o notebook e inizia a trascinarci dentro il file “www_live.sql”
Adesso dovremmo preparare e comprimere tutto il contenuto statico “file e cartelle”.
Vai al percorso sia con l’explorer che a linea di comando su “/var/www/spaziolibri.local/www”
Sempre a linea di comando vai al percorso dove sono contenuti i file di “caching” di prestashop con il comando :
“cd var/cache”
All’interno della sotto cartella “cache” sono presenti 2 sotto cartelle “prod” e “dev” rispettivamente “production” quando lo shop e in produzione e “dev” developer quando lo shop e in modalità “sviluppatore” o debug.
All’interno di queste cartelle sono contenuti file che prestashop utilizza e servono per una maggiore rapidità di caricamento sia in fase di produzione che in modalità di sviluppo e debug.
Queste cartelle vanno cancellate perché in esse sono contenuti i files compilati da prestashop stesso ma con il dominio “spaziolibiri.local”.
Anche se dal pannello di controllo abbiamo disattivato la cache e modificato con il dominio reale il database quando riavviato, prestashop, la prima cosa che andrà a cercare sono queste cartelle in base alla modalità con cui lo shop e impostato.
Cancellando queste 2 cartelle forzeremo prestashop e rileggere i dati base dal database e ricompilarli con il dominio giusto ricreando le medesime cartelle.
A questo punto puoi cancellare le cartelle con il comando :
“rm -r dev prod”
Il cursore andrà a capo dopo qualche istante.
Sesto passaggio : Questo passaggio e importante, dobbiamo comprimere il contenuto dello shop in modo corretto e con il formato giusto altrimenti avremo dei problemi e lo shop non potrà essere eseguito.
Sempre da riga di comando portati sul percorso “cd /var/www/spaziolibri.local/www/”
E digita il comando “7z a www.zip *.* -r”
Ti raccomando sempre di eseguire alla lettera spazi, maiuscole e minuscole se ci sono.
Aggiorna l’explorer e verdrai il contenuto dello shop il nuovo file www.zip
Trasportiamo il file sulla cartella nel nostro desktop insieme al file SQL.
Se ricordi prima ti ho fatto creare 2 copie di backup del database, una “local” e una “live”.
Visto che la live ci serve solo per il dominio reale possiamo ripristinare il nostro shop.
Posizionati sul percorso “cd /var/www/spaziolibri.local/” dove sono ancora presenti i 2 file.
Per il ripsristino del database locale non c’e comando piu’ semplice :
“mysql < www_local.sql”
Attendi qualche secondo, appena il cursore torna a capo verifica che lo shop sia apposto con il dominio locale “http://spaziolibri.local”.
Con i file “www.zip” e “www.sql” non dovrai fare altro che decomprimere i files di prestashop nel tuo hosting e caricare e importare il backup del database nella sezione dedicata.
Dovrai anche fare una terza operazione, creare un nome utente e una password per la connessione utilizzando gli stessi creati nel database locale
User: “spz122”
Pass: “spaziolib_124”.
Per quanto riguarda i permessi invece, questi verranno correttamente ereditati dalle informazioni incluse durante l’operazione di compressione dei files.
A questo punto ti basta caricare la pagina e lo shop verrà correttamente caricato senza alcun errore.
Ricorda poi di riportare le opzioni di “debug” e di “manutenzione” a quelle di default.
Conclusioni
Queste operazioni sono le stesse che uso in tutte le mie migrazioni, collaudate e funzionanti.
Puoi avere una dimostrazione seguendo il mio video Tutorial in tempo reale sul mio canale Youtube.
Credo che questo tutorial sia stato molto lungo e impegnativo sia per te lettore che per me nella realizzazione, ma come promesso, niente segreti, tutto libero!
Se mai vorrai un lavoro professionale anche solo una installazione per il tuo shop sai dove trovarmi ????.
Naturalmente con tutte le opzioni e configurazioni di sicurezza che in questo tutorial non ho incluso nella parte server perchè lavorando in locale non sono necessarie.
Ma ho fatto di piu’, stoppa la tua macchina virtuale, copia e incolla tutto il contenuto in altro pc linux, mac o windows, installa vmwareplayer (lo ricordo gratuito) digita l’indirizzo locale ed ecco che potrai riprendere il tuo lavoro da dove vuoi.
La devp-in lab ti augura un buon lavoro, spero di averti insegnato il piu’ possibile, alla prossima ????.