Skip to main content

XAMPP non parte Apache

Pubblicato il: 15 Gennaio 2013

Questo articolo è obsoleto, la versione 3.x di Joomla!® non è più supportata.

In questo tutorial proveremo a dare una risposta alle richieste di aiuto per XAMPP quando Apache non si avvia o, come spesso si legge, non runna, non starta. A volte dopo aver cliccato il bottoncino Start per far partire il servizio Apache (più raramente per MySql) la scritta Running su sfondo verde compare per un brevissimo istante e poi scompare o non appare per nulla. Questo inconveniente non ci consente di proseguire con l'installazione locale di Joomla!®.
La causa più frequente è che la porta utilizzata da XAMPP per Apache sia già occupata da un'altra applicazione. Le soluzioni in questo caso sono o di fermare l'applicazione e di conseguenza liberare la porta a XAMPP o in alternativa di modificare quella utilizzata di default da XAMPP per Apache, la porta 80.

Premesse e Avvertenze

questo tutorial ha come unico fine quello di fornire dei suggerimenti a chi vuole installare Joomla in locale usando XAMPP ed incontra i problemi sotto descritti
nel tutorial facciamo riferimento alla versione 1.7.3 di XAMPP installato su sistema operativo Windows 7. Per altre versioni ci potrebbero essere delle differenze
controllate che non ci siano blocchi dovuti a firewall, provate momentaneamente a disattivarli per vedere se dipende da questi prima di procedere con altre modifiche
fate sempre una copia dei file prima di modificarli in modo da poter ripristinare il tutto con facilità in caso di problemi
le procedure qui descritte sono solo per utenti avanzati, modificare i file o interrompere processi attivi potrebbe creare dei malfunzionamenti al sistema
per l'apertura dei file viene proposto il "Blocco note" solo perchè è un'applicazione già presente in Windows, se abbiamo a disposizione un editor di codice più evoluto (PSPad ad esempio) sarà meglio utilizzare quello.

XAMPP: Apache non si avvia

E' il problema più comune, la porta 80 di Apache è occupata da un'altra applicazione.
Se Skype è in funzione (anche se solo in background) probabilmente è dovuto a quello. Per evitare questo conflitto è necessario modificare la porta di default di Skype, cosa molto semplice perchè questa eventualità è già stata prevista nelle opzioni di configurazione di Skype.
- clicchiamo nel menù in alto sulla voce Strumenti ---> Opzioni… poi (dal menù a lato) su Avanzate ed infine su Collegamento
- da qui deselezioniamo l'opzione: "Usa le porte 80 e 443 come alternative per le connessioni in ingresso" e poi clic su Salva

 

Skype: cambiare la porta 80

 

- sarà ora necessario uscire da Skype e riavviarlo.
Per uscire: tasto destro sull'icona in basso, clicchiamo su Esci da Skype (non "Esci") e confermiamo.

 

Riavviare Skype

 

A questo punto potremo riavviare Skype e, dal pannellino di controllo di XAMPP, riprovare ad avviare Apache, il problema si dovrebbe risolvere. Se così non è, andiamo al passo successivo...

Quale applicazione va in conflitto con Apache?

Se non dipende da Skype controlliamo che non siano attive altre applicazioni di uso comune per la messaggistica, la chat o il controllo remoto. Se proprio non riusciamo ad identificare l'applicazione che crea il conflitto con Apache possiamo chiedere aiuto a XAMPP cliccando sul bottoncino Port-Check del pannellino di controllo di XAMPP

 

XAMPP Port-Check

 

Si aprirà una finestrella che riporta lo stato delle porte in corrispondenza dei vari servizi.
La foto a sx mostra come la porta 80 di Apache sia libera (free), mentre quella a dx sia occupata, in questo caso da Skype

 

Port Check

 

Questo primo tentativo potrebbe già darci un'indicazione di quale applicazione stia occupando la porta 80 ed agire di conseguenza fermando l'applicazione.
Se il nome è generico (come ad es. System) e non ci consente di associarvi un'applicazione precisa, possiamo ricorrere a Netstat e Gestione attività (Task Manager), entrambi tool in dotazione con Windows, per capire qualcosa di più.

Per avviare Netstat andare sul menù Start --> Tutti i programmi --> Accessori --> Prompt dei comandi e, nella finestrella che si apre digitate: netstat -ano e date Invio. Otterrete un output simile alla foto sotto. Da questa possiamo ricavare il PID (identificatore di processo) dell'applicazione che cerchiamo (nella foto il 1032)

 

Netstat

 

Ora che abbiamo il PID apriamo Gestione attività cliccando col tasto destro sulla barra delle applicazioni e selezionando appunto Gestione attività, o premendo CTRL+MAIUSC+ESC

 

Task Manager

 

- selezioniamo la scheda Processi e facciamo clic sul bottone Mostra i processi di tutti gli utenti
- clicchiamo sull'intestazione della colonna PID per trovare l'applicazione corrispondente al PID 1032 (nell'esempio è Skype)
Nota: se non visualizziamo la colonna PID potrebbe essere necessario fare clic su Visualizza --> Seleziona colonne… --> e mettere la spunta su PID

 

Processi

 

ora possiamo selezionare il processo e, se lo riteniamo opportuno, terminarlo dal menù programmi (qui l'Esci di Skype) o con l'apposito bottone Termina processo.

Chiudiamo XAMPP (con Exit) e riavviamo. Se non abbiamo risolto non ci resta che procedere col passaggio successivo…

XAMPP: cambiare la porta di Apache

Questa procedura ci permette di aggirare il blocco semplicemente dicendo a XAMPP di utilizzare per Apache una porta diversa dalla 80, la 8080 ad esempio. Per fare ciò dovremo aprire un file e modificare alcuni valori. Il file in questione è httpd.conf e lo trovate nella cartella xampp/apache/conf/httpd.conf

Clicchiamo sul bottoncino Explore del pannellino di XAMPP (è una scorciatoia alla cartella XAMPP)

 

XAMPP Explore

 

si aprirà una finestra, navighiamo fino ad aprire la cartella conf e da qui selezioniamo il file httpd.conf con il tasto destro del mouse --> Apri con… --> Blocco note. Meglio creare una copia del file originale prima di proseguire.

 

file httpd.conf

 

ora cerchiamo prima la riga che riporta l'istruzione Listen 80 e la modifichiamo in Listen 8080

 

prima modifica al file httpd.conf

 

poi quella che riporta l'istruzione ServerName localhost:80 e la modifichiamo in ServerName localhost:8080

 

seconda modifica al file httpd.conf

 

Salviamo il file e poi dal pannellino di XAMPP Exit per fermare il server ed uscire.

Riavviamo XAMPP e clicchiamo sul bottone Start, ora la scritta Running su sfondo verde dovrebbe rimanere fissa.

 

XAMPP is running

 

XAMPP: non parte MySql

Ci accorgiamo dell'inconveniente perchè la scritta Running non compare o non permane accanto alla scritta MySql.
E' un caso meno frequente ed anche qui valgono tutte le cose dette sopra per cercare di capire quale applicazione tiene occupata la porta (in questo caso la porta di default è la 3306) per poi fermarla e liberare la porta al servizio MySql di XAMPP.
In caso ciò non sia possibile possiamo provare anche in questo caso a cambiare la porta 3306 usata di default da XAMPP con un'altra, la 3308 ad esempio.
Anche qui fate una copia di sicurezza dei file prima di procedere con le modifiche per poter sempre ripristinare i file originali in caso si verificassero dei malfunzionamenti durante o dopo aver apportato le modifiche ai file.

XAMPP: cambiare la porta di MySql

Per fare questo proverei a modificare alcuni valori in due file per vedere se risolvo il problema:
nel file my.ini situato in xampp/mysql/bin/my.ini
nel file php.ini situato in xampp/php/php.ini

Clicchiamo sul bottoncino Explore del pannellino di XAMPP

 

XAMPP Explore

 

si aprirà una finestra, navighiamo fino ad aprire la cartella bin e da qui selezioniamo il file my.ini con il tasto destro del mouse --> Apri con… --> Blocco note

 

file my.ini

 

ora cerchiamo le due righe (vedi figura a sx) che riportano il valore 3306 e li sostituiamo con 3308 (vedi figura a dx)

 

modifiche al file my.ini

 

in questo file abbiamo finito, salviamo il file e portiamoci nella cartella php ed apriamo il file php.ini con il tasto destro del mouse --> Apri con… --> Blocco note

 

il file php.ini

 

ora cerchiamo la riga con l'istruzione mysql.default_port = 3306 e lo sostituiamo con 3308

 

prima modifica al file php.ini

 

poi cerchiamo la riga con l'istruzione mysqli.default_port = 3306 e lo sostituiamo con 3308

 

seconda modifica al file php.ini

 

Salviamo il file e poi dal pannellino di XAMPP --> Exit per fermare il server ed uscire.
Riavviamo XAMPP e clicchiamo sul bottone Start, ora la scritta Running accanto a MySql dovrebbe rimanere fissa.

 

XAMPP is running