Skip to content
> 💻 🧠 Codice 1001 > 🧪📓 Senza categoria > 🚀 Guida completa: come avviare Apache in XAMPP su Windows (con tutti i problemi comuni)

🚀 Guida completa: come avviare Apache in XAMPP su Windows (con tutti i problemi comuni)

🧭 Introduzione

XAMPP è un pacchetto di server locale che include Apache, MySQL (MariaDB), PHP e Perl.
Il servizio Apache è il cuore del sistema: gestisce il tuo sito web quando apri http://localhost.

Tuttavia, molti sviluppatori incontrano errori durante l’avvio di Apache:

  • ❌ “Impossibile avviare il servizio Apache2.4. Codice errore 1”
  • ⚠️ “La porta 80 è già in uso”
  • 🔒 “La connessione non è privata” o “NET::ERR_CERT_COMMON_NAME_INVALID”

Questa guida illustra ogni passaggio — dall’installazione alla risoluzione di tutti i problemi più comuni.


🧩 Installazione di XAMPP

  1. Scarica l’ultima versione di XAMPP dal sito ufficiale:
    👉 https://www.apachefriends.org/download.html
  2. Installa XAMPP in un percorso semplice (senza spazi o caratteri speciali), ad esempio: E:\xampp
  3. Dopo l’installazione, apri XAMPP Control Panel come amministratore.

🟢 Primo avvio di Apache

  1. Nel pannello di controllo XAMPP, fai clic su Start accanto ad Apache.
  2. Se tutto funziona, vedrai: Apache ... running
  3. Apri nel browser: http://localhost/ Dovresti vedere la pagina di benvenuto di XAMPP.

Se Apache non si avvia — continua a leggere.


❗ Problemi comuni e soluzioni


⚙️ 1. “Impossibile avviare il servizio Apache2.4. Codice errore 1”

Causa: file di configurazione danneggiato o chiave SSL mancante.

Verifica:

Apri PowerShell o CMD come amministratore:

cd E:\xampp\apache\bin
.\httpd.exe -t

Se compare:

AH00526: Syntax error on line 158 of E:/xampp/apache/conf/extra/httpd-ssl.conf:
SSLCertificateKeyFile: file 'E:/xampp/apache/conf/ssl/server.key' does not exist or is empty

il certificato SSL è mancante.

Soluzione:

Genera un nuovo certificato autofirmato:

cd E:\xampp\apache\bin
.\openssl.exe req -x509 -nodes -days 1095 -newkey rsa:2048 `
 -keyout "../conf/ssl/server.key" `
 -out "../conf/ssl/server.crt"

Puoi semplicemente premere Invio su ogni campo o inserire le tue informazioni:

Paese: IT
Stato: Italia
Città: Roma
Organizzazione: hypo69
Nome comune: localhost

🔒 2. “La connessione non è privata” o NET::ERR_CERT_COMMON_NAME_INVALID

Causa: i browser moderni (Chrome, Edge, Firefox) non accettano più certificati con solo CN=localhost.
Richiedono il campo subjectAltName (SAN).

Soluzione:

  1. Crea un nuovo file: E:\xampp\apache\conf\openssl-local.cnf
  2. Incolla questo contenuto: [ req ] default_bits = 2048 prompt = no default_md = sha256 x509_extensions = v3_req distinguished_name = req_distinguished_name [ req_distinguished_name ] C = IT ST = Italia L = Roma O = hypo69 OU = Dev CN = localhost [ v3_req ] subjectAltName = @alt_names [ alt_names ] DNS.1 = localhost IP.1 = 127.0.0.1
  3. Genera il certificato: cd E:\xampp\apache\bin .\openssl.exe req -config "E:\xampp\apache\conf\openssl-local.cnf" ` -x509 -nodes -days 1095 -newkey rsa:2048 ` -keyout "../conf/ssl/server.key" ` -out "../conf/ssl/server.crt"
  4. Aggiungilo all’archivio dei certificati attendibili di Windows: Import-Certificate -FilePath "E:\xampp\apache\conf\ssl\server.crt" ` -CertStoreLocation Cert:\LocalMachine\Root (oppure manualmente: Installa certificato → Computer locale → Autorità di certificazione radice attendibili)
  5. Riavvia Apache: net stop apache2.4 net start apache2.4

✅ Ora https://localhost e https://127.0.0.1 dovrebbero aprirsi senza avvisi.


🔌 3. “La porta 80 o 443 è già in uso”

Verifica:

netstat -ano | findstr :80
netstat -ano | findstr :443

Se una porta è occupata, trova il processo:

tasklist | findstr <PID>

Casi più comuni:

  • Skype
  • IIS (World Wide Web Publishing Service)
  • VMware
  • Edge Update Service

Soluzione:

  1. Arresta o disattiva il servizio in conflitto.
  2. Oppure modifica le porte di Apache:

Modifica E:\xampp\apache\conf\httpd.conf:

Listen 80

→ cambia in:

Listen 8080

Poi in E:\xampp\apache\conf\extra\httpd-ssl.conf:

Listen 443

→ cambia in:

Listen 8443

Apri:

http://localhost:8080
https://localhost:8443

🔥 4. “Service Control Manager 7024: funzione non valida”

Causa: il registro di servizio Apache in Windows è corrotto.

Soluzione:

Reinstalla il servizio Apache:

cd E:\xampp\apache\bin
httpd.exe -k uninstall
httpd.exe -k install

📄 5. File di log di Apache

Tutti i log si trovano qui:

E:\xampp\apache\logs\error.log

Visualizza le ultime righe:

Get-Content E:\xampp\apache\logs\error.log -Tail 30

⚙️ Comandi utili di diagnostica

ComandoDescrizione
httpd.exe -tVerifica la configurazione di Apache
httpd.exe -SMostra gli host virtuali
net start apache2.4Avvia il servizio Apache
net stop apache2.4Arresta il servizio Apache
netstat -anoMostra le porte attive
`tasklistfindstr PID`
certmgr.mscApre il gestore dei certificati
services.mscApre la console dei servizi di Windows

🌐 Configurare host virtuali (domini locali)

Puoi far sì che il tuo progetto billing-crm si apra su https://crm.local invece di localhost/billing-crm.

  1. Modifica il file hosts: C:\Windows\System32\drivers\etc\hosts Aggiungi: 127.0.0.1 crm.local
  2. Modifica: E:\xampp\apache\conf\extra\httpd-vhosts.conf Aggiungi: <VirtualHost *:443> ServerName crm.local DocumentRoot "E:/xampp/htdocs/billing-crm" SSLEngine on SSLCertificateFile "E:/xampp/apache/conf/ssl/server.crt" SSLCertificateKeyFile "E:/xampp/apache/conf/ssl/server.key" </VirtualHost>
  3. Verifica la configurazione: httpd.exe -t
  4. Riavvia Apache e apri: https://crm.local

🧠 Suggerimenti e problemi comuni

ProblemaCausaSoluzione
Apache non si avvia all’avvio di Windowsconflitto di porteavvia XAMPP manualmente
“Connessione non sicura”mancanza di SANrigenera il certificato con alt_names
HTTPS non rispondeporta o chiave erratacontrolla httpd-ssl.conf
Firefox mostra ancora un avvisousa un archivio certificati separatoimporta server.crt manualmente
index.php vuotoerrore nel progettoripristina da Git o da un backup

🎯 Riepilogo

PassaggioObiettivoComando
Verifica configurazioneControlla la sintassi di Apachehttpd.exe -t
Genera SSLCrea un certificato localhostopenssl req -config ...
Rendi attendibile il certificatoElimina avvisi HTTPSImport-Certificate
Controlla porteVerifica 80/443netstat -ano
Avvia ApacheEsegui il servizionet start apache2.4

📚 Conclusione

Dopo questi passaggi:

  • Apache si avvia correttamente senza errori.
  • HTTPS funziona senza avvisi del browser.
  • localhost, 127.0.0.1 e domini come crm.local sono completamente attendibili.
  • Puoi sviluppare e testare siti web localmente come su un vero server di produzione.

Leave a Reply

Your email address will not be published. Required fields are marked *