Se questo passaggio fallisce, non andare avanti: OpenCart si installerà ma non riuscirà a completare la configurazione iniziale o a scrivere le tabelle.
Scarica OpenCart e posizionalo nel DocumentRoot
Scarica il pacchetto ufficiale di OpenCart, estrailo e porta i file nella directory web del sito. Prima di copiare, crea una struttura pulita per il virtual host, ad esempio /var/www/opencart.
cd /tmp
wget -O opencart.zip https://github.com/opencart/opencart/releases/download/4.0.2.3/opencart-4.0.2.3.zip
unzip opencart.zip
sudo mkdir -p /var/www/opencart
sudo cp -r upload/* /var/www/opencart/Controlla che i file ci siano:
ls -la /var/www/opencartSe stai usando una versione diversa, sostituisci l’URL con il rilascio corretto. Non inventare la compatibilità: OpenCart e PHP hanno vincoli di versione, quindi conviene verificare la release notes del pacchetto che stai installando.
Configura Apache per il sito
Ora crea il virtual host. Il punto chiave è impostare il DocumentRoot corretto e abilitare il rewrite, perché OpenCart usa URL puliti e regole di routing basate su .htaccess.
sudo nano /etc/apache2/sites-available/opencart.confInserisci una configurazione simile:
<VirtualHost *:80>
ServerName shop.example.com
DocumentRoot /var/www/opencart
<Directory /var/www/opencart>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/opencart_error.log
CustomLog ${APACHE_LOG_DIR}/opencart_access.log combined
</VirtualHost>Abilita il sito e il modulo rewrite, poi ricarica Apache:
sudo a2enmod rewrite
sudo a2ensite opencart.conf
sudo a2dissite 000-default.conf
sudo apache2ctl configtest
sudo systemctl reload apache2Verifica che il virtual host risponda:
curl -I http://shop.example.comSe vedi un 200, 301 o la pagina di installazione, sei sulla strada giusta. Se ottieni 403 o 404, il problema è quasi sempre nel DocumentRoot, nei permessi o in AllowOverride All.
Configura PHP per OpenCart
OpenCart dipende da alcune estensioni PHP e da valori di runtime ragionevoli. Verifica prima cosa è caricato davvero, non solo cosa pensi di aver installato.
php -m | egrep 'curl|gd|mbstring|xml|zip|intl|soap|bcmath|mysqli'Se qualche modulo manca, installalo e riavvia il servizio PHP o Apache a seconda della modalità usata. Su Apache con mod_php basta il riavvio di Apache; con PHP-FPM devi riavviare anche il pool.
Per un controllo rapido dei limiti, crea un file temporaneo e poi rimuovilo subito dopo la verifica:
echo '<?php phpinfo(); ?>' | sudo tee /var/www/opencart/info.php > /dev/nullPoi apri http://shop.example.com/info.php e controlla memory_limit, upload_max_filesize, post_max_size e max_execution_time. Dopo il test elimina il file:
sudo rm -f /var/www/opencart/info.phpPer un’installazione standard, valori pratici sono memory_limit almeno 256M e upload coerenti con gli asset che caricherai nel catalogo. Se hai un catalogo con immagini grandi o import massivi, alza i limiti prima di partire.
Rinomina e prepara i file di configurazione
OpenCart usa file di configurazione separati per il frontend e per l’area admin. Dopo aver copiato i file, devi rinominare gli esempi in modo corretto.
cd /var/www/opencart
sudo mv config-dist.php config.php
sudo mv admin/config-dist.php admin/config.phpControlla che i permessi siano coerenti prima di aprire l’installer web. Il web server deve poter leggere i file e, durante l’installazione, deve poter scrivere nelle directory previste.
sudo chown -R www-data:www-data /var/www/opencart
sudo find /var/www/opencart -type d -exec chmod 755 {} r
sudo find /var/www/opencart -type f -exec chmod 644 {} rSe vuoi essere più restrittivo, puoi rendere scrivibili solo le directory richieste da OpenCart, come storage, image, system/storage e alcune sottodirectory di cache/logs. Il principio è semplice: meno scrittura possibile, ma abbastanza per installazione e aggiornamenti.
Completa l’installazione dal browser
A questo punto apri il dominio nel browser. Dovresti vedere la procedura guidata di OpenCart. Se invece ottieni una pagina bianca o un errore 500, vai subito sui log invece di fare tentativi casuali.
Log utili da controllare:
/var/log/apache2/opencart_error.log/var/log/apache2/error.log/var/log/mysql/error.logo il journal di MariaDB- eventuali log applicativi dentro la directory
storage/logsdi OpenCart
Durante la wizard inserisci:
- host database:
localhost - nome database:
opencart - utente database:
oc_user - password database: quella scelta in precedenza
- username e password amministratore: credenziali nuove e robuste
Se l’installer segnala che non riesce a scrivere i file, il problema è quasi sempre nei permessi o nei path non corretti di config.php e admin/config.php.
Imposta URL puliti e proteggi l’area admin
Dopo l’installazione, entra nel pannello admin e attiva gli URL SEO-friendly. In OpenCart di solito questo richiede anche che il file .htaccess sia presente e che Apache consenta AllowOverride All.
Se il file si chiama .htaccess.txt, rinominalo:
cd /var/www/opencart
sudo mv htaccess.txt .htaccessVerifica poi dal pannello che l’opzione per SEO URL sia abilitata. Se le URL non funzionano, controlla due cose: il modulo rewrite di Apache e la presenza del file .htaccess nella root corretta.
Per l’area admin, cambia la cartella admin con un nome meno prevedibile se la tua procedura di rilascio lo consente. Questo non sostituisce l’autenticazione, ma riduce scansioni automatiche e rumore nei log.
Attiva HTTPS con Let’s Encrypt
In produzione, OpenCart non dovrebbe restare in HTTP. Con Certbot puoi ottenere un certificato valido e configurare il redirect verso HTTPS.
sudo apt install -y certbot python3-certbot-apache
sudo certbot --apache -d shop.example.comVerifica il rinnovo automatico:
sudo systemctl status certbot.timer --no-pager
sudo certbot renew --dry-runDopo l’attivazione, controlla che il sito risponda in HTTPS e che non ci siano mixed content o redirect loop:
curl -I https://shop.example.comSe usi un proxy/CDN davanti al server, la validazione va fatta anche lì: il certificato del nodo origin non basta se il traffico pubblico passa da un edge con TLS terminato altrove.
Hardening minimo e manutenzione
Una volta online, togli tutto ciò che non serve. Elimina eventuali file di test, disabilita l’accesso diretto a directory sensibili e mantieni aggiornati sistema, PHP e OpenCart. La superficie d’attacco più comune per un e-commerce PHP non è “magica”: sono versioni vecchie, permessi larghi e pannelli esposti.
Controlli minimi da fare con regolarità:
- aggiornamenti di sicurezza del sistema con
apt updateeapt upgrade - backup del database e della directory
storage - verifica dei log applicativi e web
- test di restore su ambiente separato
- monitoraggio di disco, RAM e saturazione PHP-FPM/Apache
Per i backup, il minimo sindacale è esportare il database e salvare la parte file che contiene immagini, temi, estensioni e storage. Senza restore testato, il backup è solo un file in più.
Check finale di funzionamento
Prima di considerare chiusa l’installazione, fai un controllo end-to-end:
- il dominio risponde con
curl -I https://shop.example.com - la homepage si apre senza errori visibili
- l’area admin è accessibile con le nuove credenziali
- la creazione di una categoria o prodotto di test funziona
- i log non mostrano errori PHP ripetuti
Se qualcosa non torna, il punto di partenza è sempre lo stesso: status HTTP, log Apache, log PHP e log MySQL. Solo dopo aver escluso questi livelli conviene toccare configurazioni più profonde.
Assunzione: stai installando OpenCart su Ubuntu 22.04 con Apache e MariaDB in un contesto standard, senza CDN o proxy inversi davanti al server.
Problemi tipici e correzioni rapide
Se vedi pagina bianca, controlla subito error_reporting, log PHP e limiti di memoria. Se ottieni 500 dopo il login o dopo il primo accesso admin, spesso è un problema di permessi su storage o di path errati nei file di configurazione. Se l’installer non vede il database, verifica host, credenziali e firewall locale. Se gli URL SEO non funzionano, controlla rewrite e .htaccess.
La regola pratica è: non cambiare tre cose insieme. Modifica una sola variabile, verifica il risultato, poi passa alla successiva. Così riduci il tempo perso e sai sempre cosa ha risolto davvero il problema.
Commenti (0)
Nessun commento ancora.
Segnala contenuto
Elimina commento
Eliminare definitivamente questo commento?
L'azione non si può annullare.