XAMPP, Apache – Errore: Apache shutdown in modo imprevisto

Ho appena reinstallato XAMPP e quando provo ad avviare il mio server Apache nel pannello di controllo XAMPP, ora ho i seguenti errori:

16:50:25 [Apache] Status change detected: running 16:50:26 [Apache] Status change detected: stopped 16:50:26 [Apache] Error: Apache shutdown unexpectedly. 16:50:26 [Apache] This may be due to a blocked port, missing dependencies, 16:50:26 [Apache] improper privileges, a crash, or a shutdown by another method. 16:50:26 [Apache] Press the Logs button to view error logs and check 16:50:26 [Apache] the Windows Event Viewer for more clues 16:50:26 [Apache] If you need more help, copy and post this 16:50:26 [Apache] entire log window on the forums 

Come lo risolvo?

Apri Skype.

Strumenti -> Opzioni -> Avanzate -> Connessione.

Disabilitare ” Usa la porta 80 e 443 per le alternative per le connessioni in entrata

Esci e chiudi tutte le windows di Skype. Prova a riavviare Apache.

Poiché lavoro in un ambiente aziendale in cui gli sviluppatori affrontano problemi con il firewall, nessuna delle altre risposte ha risolto il problema.

Poiché la porta non è utilizzata da Skype, ma da alcune altre applicazioni interne, ho seguito i passaggi seguenti per risolvere il problema:

Passaggio 1 : dal pannello di controllo XAMPP, in Apache, fare clic sul pulsante Config e selezionare Apache (httpd.conf).

All’interno del file httpd.conf , in qualche modo ho trovato una riga che dice:

 Listen 80 

E cambia l’80 in qualsiasi numero / porta che vuoi. Nel mio scenario sto usando la porta 8080.

 Listen 8080 

Sempre dal file httpd.conf , ho trovato un’altra riga che dice:

 ServerName localhost:80 

Cambia 80 a 8080.

 ServerName localhost:8080 

Passo 2 – Dal pannello di controllo XAMPP, sotto Apache, fai nuovamente clic sul pulsante Config, ma questa volta seleziona Apache ( httpd-ssl.conf ). All’interno del file httpd-ssl.conf , trova la riga che dice

 Listen 443 

E cambia il 443 in qualsiasi numero / porta che vuoi. Userò 4433 come nuovo numero di porta.

 Listen 4433 

Sempre dal file httpd-ssl.conf , trova un’altra riga che dice

  ServerName localhost:443 

E cambia 443 a 4433 .

  ServerName localhost:4433 

Ricordarsi di salvare i file httpd.conf e httpd-ssl.conf dopo aver eseguito alcune modifiche. Quindi riavviare il servizio Apache.

Una cosa che puoi fare è interrompere i servizi sulla porta 80 emettendo

 net stop http 

in un cmd. Ti verrà chiesto se sei sicuro di voler interrompere questi servizi. Ho scoperto che avevo alcuni servizi che non stavo usando e li ho disabilitati.

Per vedere chi altro sta usando il tipo di porta 80 in un cmd

 netstat -abno 

Suppongo che tu voglia eseguire Apache sulla porta 80. Se questo è il caso e vuoi mantenere i servizi in conflitto, dovrai associarli a una nuova porta.

Se il problema non è una porta occupata, puoi anche provare quanto segue: seleziona “mostra informazioni di debug” nel pannello di configurazione di XAMPP. Quando avvii Apache ti verrà mostrato qualcosa come “Esecuzione” c: \ xampp \ apache \ bin \ httpd.exe “. Se lo esegui

 c:\xampp\apache\bin\httpd.exe 

in un cmd otterrai maggiori informazioni (una volta, ad esempio, ho avuto qualche problema con il mio file httpd.conf).

Correlati: Come liberare la mia porta 80 su localhost Windows? e Apache non verrà eseguito in xampp

Nel pannello di controllo XAMPP V3.2.1, fare clic sul pulsante “NetStat” in alto a destra. Assicurati che la porta 80 non sia utilizzata da nessun altro programma. Quindi fare clic su “Shell” proprio sotto di esso. Emetti questo comando “Digita ap poi TAB due volte”

Apache_Start.bat

Vedrai effettivamente l’errore esatto per cui Apache ha fallito. Sarà per lo più probabile problema di configurazione dell’host virtuale o potrebbe essere qualcos’altro. Mostrerà il numero di riga su cui si sta verificando l’errore. Basta correggere quell’errore. Notare che in RootDocument anche un trailing \ può essere una fonte di errore. Rimuovi qualsiasi “/” finale.

Per maggiori dettagli, controlla qui

Segui questi passi:

  1. Apri il pannello di controllo XAMPP quindi fai clic su “Config”
  2. Scegli “Apache (httpd.conf)” e trova questo codice qui sotto e modificalo in questo:

    # Cambia questo per Ascoltare su specifici indirizzi IP come mostrato di seguito

    #per impedire ad Apache di incollare su tutti gli indirizzi IP associati.

    #Listen 0.0.0.0:80

    #Listen [::]: 80

    Listen 80

    # Supporto Dynamic Shared Object (DSO)

    1. Salva ( Ctrl + S )
    2. Dopodiché, torna al pannello di controllo XAMPP e fai nuovamente clic sulla sua configurazione.
    3. Scegli “Apache (httpd-ssl.conf)”, trova questo codice qui sotto e cambialo di nuovo:

    # Nota: le configurazioni che utilizzano IPv6 ma non gli indirizzi IPv4 hanno bisogno di due

    # Ascolta le direttive: “Listen [::]: 443” e “Listen 0.0.0.0:443”

    #

    #Listen 0.0.0.0:443

    #Listen [::]: 443

    Listen 443

    1. Salva ( Ctrl + S )
    2. Quindi, fai clic su “config” (nota: sopra il netstat) e fai clic su “Impostazioni servizio e porta”.
    3. Cambia “Porta principale” in 8080 e “Porta SSL” in 4433, quindi salvalo.
    4. Infine, vai su “pannello di controllo” -> “Programmi e funzionalità” -> “Attiva o distriggers Windows”.
    5. Deseleziona il tuo “Internet Information Services”, quindi fai clic su OK.

Aspetta e il tuo computer / laptop si riavvierà automaticamente e prova ad aprire nuovamente il pannello di controllo XAMPP, quindi avvia Apache.

Il mio problema era che in httpd.conf le voci DocumentRoot e puntavano a cartelle non esistenti.

Ad esempio, httpd.conf “originale” aveva le seguenti voci:

 DocumentRoot "c:/Apache24/htdocs"  

Se hai installato C: \ xampp, allora devi modificare quelle voci per farle corrispondere, ad es

 DocumentRoot "c:/xampp/htdocs"  

Se stai usando Windows 7. Cerca IIS nella ricerca di Windows (fai clic sull’icona Finestra in basso a sinistra e digita dove dice “Cerca programmi e file”).

Apri IIS (Internet Information Service) .

Nella parte destra nel pannello delle azioni. Fai clic su Stop.

Nota: il collegamento di stop è sbiadito nella schermata. Come l’ho fermato. Screenshot di IIS Problema risolto!

Ho avuto lo stesso problema, e si scopre che ho dimenticato di eseguire setup_xampp.bat (versione portatile).

Ho avuto lo stesso problema qualche volta indietro. Avevo un vecchio laptop, sul quale quasi tutte le porte erano bloccate o malfunzionanti. Questo è come l’ho fatto.

  1. Apri il pannello di controllo XAMPP.

  2. Clicca su Config

  3. Quindi, vai nel file httpd.conf di Apache . Aprilo con un editor di testo.

  4. Cerca “80” (fai Ctrl + F e trova tutti, sostituiscilo con 8080 o 4040 o 4000 ).

  5. Salva il file. E riavvia XAMPP.

Ha funzionato bene per me, e spero che aiuti anche te.

La cosa semplice che puoi fare è controllare se Skype o VMware sono installati sul tuo computer o meno.

Skype utilizza la porta 80 e 443 come porta aggiuntiva per le connessioni in entrata. Per cambiare il numero di porta in Skype, vai a

Strumenti> Opzioni di connessione> Connessione

nella finestra di Skype. Ora cambia il numero di porta 80 predefinito in qualcosa di diverso.

VMware Workstation utilizza la porta 443 per la condivisione. Per cambiare questo, aprire VMware Workstation e goto

Modifica> Preferenze> Vmi condivisi

  1. Fai clic su “Cambia impostazioni” dopo
  2. Quindi fare clic su “Disabilita condivisione”
  3. Quindi cambia il numero della porta https in uso (443)
  4. Quindi puoi fare clic sul pulsante “Abilita condivisione”

Questo è tutto quello che devi fare. Riavvia XAMPP ed esegui il server Apache.

Quando ho scoperto che non c’era nessun processo usando la porta 80 usando i comandi

 netstat -abno | find ":80" 

non c’era alcun problema con nessun processo usando la porta 80.

Poi ho eseguito il comando (in cmd)

 C:\xampp\apache\bin\httpd.exe 

ha mostrato qualche errore nella configurazione degli host virtuali nel file httpd-vhosts.conf che è stato recentemente modificato da me per l’installazione in un ambiente PHP WordPress nell’IDE di Eclipse . Così ho cancellato quelle linee e Apache ha iniziato perfettamente.

Per me, il servizio di pubblicazione su Internet utilizzava la porta 80. L’ho ucciso eseguendo il seguente comando su cmd:

 net stop http 

Successivamente, XAMPP ha eseguito Apache senza problemi.

Questo errore si verifica perché la porta, allocata per Apache, viene utilizzata da un altro programma. Per verificare l’applicazione che utilizza la porta, che abbiamo assegnato per Apache, è ansible fare clic su,

Pulsante Netstat .

Homepage XAMPP

Questo è il file Netstat,

Inserisci qui la descrizione dell'immagine

Inizialmente, ho assegnato la porta 8080 per Apache e recentemente ho installato Oracle DB.TNSLSNR.exe ha utilizzato la porta 8080 ora.

Quindi, guardando questo file possiamo scegliere una porta che non è in conflitto con altre applicazioni. Nel mio caso, la porta 8060 non si scontra con alcuna applicazione. Selezionando che possiamo modificare il file httpd.conf (pannello di controllo XAMPP -> Config ) come menzionato sopra.

  1. scarica nuovi xampp apachefriends
  2. installalo
  3. rimuovere tutte le app VPN
  4. apri la cartella XAMPP esegui setup_xampp.bat
  5. eseguire xampp-control.exe

Questo è accaduto a causa della porta predefinita 80 bloccata per Apache. È necessario modificare la porta o rendere accessibile la porta.

Vai al tuo file di configurazione Apache (httpd.conf) nell’installazione di Apache.

Trova queste linee:

#

Ascolta 192.168.1.2:80

Ascolta 80

#

Qui 192.168.1.2 è il mio indirizzo IP privato. Cambialo secondo il tuo.

Cambia come sotto

Ascolta 192.168.1.2:8081

Ascolta 8081

Ora quando si accede a localhost è necessario aggiungere esplicitamente la porta come http: // localhost: 8081 / …

Sembra che nessuno abbia risposto sull’esecuzione di xampp_start.exe.

Ho fatto tutte le risposte precedenti ma non ha risolto il problema. Ho scoperto che l’esecuzione di xampp_start.exe ti fornirà informazioni dettagliate sul problema.

Questo è ciò che vedo dalla mia parte:

xampp_start

Come puoi vedere, ho riscontrato un problema con il percorso o xampp sta puntando alla cartella non esistente.

Per me, questo problema è iniziato quando ho ospitato una connessione VPN sul mio computer Windows 8.

La semplice eliminazione della connessione da “Pannello di controllo \ Rete e Internet \ Connessioni di rete” ha risolto il problema.

Nota che ogni volta che cambi le porte predefinite, il tuo browser non lo saprà. 80 e 443 sembrano essere standard in qualche modo, quindi per esempio, se hai cambiato da 80 a 8080 , dovrai accedere ai tuoi siti web in questo modo:

localhost:8080/path_to_your_website.php

Una delle cause potrebbe essere che non si sta eseguendo il pannello di controllo XAMPP come amministratore.

Ho risolto il problema con l’interruzione del servizio “Web Deployment Agent Service”. Apri: Sistema -> Gestione computer -> Servizi -> Servizio agente di distribuzione Web . Fermare questo servizio e avviare XAMPP funziona. Penso che questo sia un servizio di MS Webmatrix.

(Tedesco: Systemsteuerung -> System und Sicherheit -> Verwaltung -> Dienste -> Webbereitstellungs-Agent-Dienst )

Nel mio caso, questo problema è stato causato da un tentativo di scaricare altri prodotti di Bitnami, come WordPress . Questo è comune quando installiamo WordPress tramite XAMPP. Si trova nella directory xampp/app cui è ansible accedere dalla homepage dell’applicazione XAMPP.

Come soluzione, ho rimosso il WordPress installato di default dalla directory xampp e ho installato WordPress manualmente nella cartella htdocs di WordPress scaricandolo ed estraendo i file zip nella cartella htdoc . È inoltre necessario riavviare XAMPP o il sistema dopo aver disinstallato / rimosso il WordPress predefinito . Tutto va bene per me ora.

Ho avuto esattamente lo stesso messaggio di errore dell’OP, ma il mio problema non è stato risolto da nessuna delle risposte esistenti. Molte delle risposte trattano i conflitti sulla porta 80, che sapevo di non avere, dal momento che avevo avuto localhost che rispondevano alla porta 80 di recente.

Si è scoperto che avevo inavvertitamente cambiato ServerRoot quando intendevo modificare DocumentRoot (stupido, lo so), e sebbene esistesse la nuova directory ServerRoot , non conteneva i file di configurazione e altri elementi necessari di Apache, il che ha causato un errore all’avvio. Il messaggio di errore probabilmente affronta questo scenario con la dicitura ” dipendenze mancanti “.

Sul mio sistema Windows, l’impostazione di ServerRoot su C: / XAMPP / apache ha risolto il problema.

Il server Apache per impostazione predefinita gira sulle porte 80, 443. Il tuo problema è una o entrambe le porte sono occupate. Solitamente Skype o VMware Workstation utilizzano queste due porte. Quindi, assicurati che non siano in esecuzione. Il modo migliore per assicurarsi che le porte siano libere su Windows è:

  • Fai clic sul pulsante Windows.

  • Nella barra di ricerca digitare resmon , per aprire la risorsa monitor resmon.exe .

  • Apri le porte d’ascolto , questo ti mostrerà le porte usate aperte.

  • Ora puoi vedere quale processo sta usando le porte 80 e 443.

  • Quindi è ansible interrompere il processo da CMD utilizzando il PID (che viene visualizzato nel monitor risorse) o direttamente da Task Manager.

  • Per uccidere un processo da CMD utilizzando il tipo PID Taskkill /PID 26356 /F , dove 26356 è il PID.

  1. Fai in primo luogo che la tua cartella \xampp sia nella root! Questo è importante in quanto il percorso è relativo.

  2. Quindi assicurati di eseguire xampp_control.exe con diritti di amministratore.

  3. Quindi modificare i file di seguito per evitare problemi con la porta 80 bloccata.

In \xampp\xampp-control.ini dovrebbe essere impostato:

 [ServicePorts] Apache=8080 ApacheSSL=4433 

Trova \xampp\apache\conf\httpd.conf e imposta:

 Listen 8080 ServerName localhost:8080 

Trova \xampp\apache\conf\extra\httpd-ssl.conf e imposta:

 Listen 4433  ServerName www.example.com:4433 

Quindi terminare tutti i servizi e riavviare xampp-control.exe con diritti di amministratore. Dovrebbe funzionare!

Nel mio caso questo è successo dopo aver installato SQL Server e la soluzione era come descritto in questa risposta

Xampp: imansible avviare Apache dopo l’installazione di SQL Server e Visual Studio

quindi ho dovuto disabilitare il servizio “SQL Server Reporting Services” dai servizi di Windows

Soluzione migliore

aprire il pannello di controllo XAMPP, fare clic su config per Apache, quindi fare clic su Apache (httpd.config) .now nell’editor di testo. ctrl + f -> cerca “Ascolta 80” e sostituiscilo con “Ascolta 8079” senza le citazioni 🙂 ma ora devi usarlo come questo http: // localhost: 8079 /

PS, ho provato a cambiare le impostazioni della porta per skype, fermando il servizio di agente di distribuzione Web che non riuscivo a trovare in Windows 10, cmd -> net stop http, e altri metodi ma niente ha funzionato tranne questo.

Prima di tutto dovresti verificare di non avere host virtuali in eccesso nel tuo file httpd-vhosts. Intendo seguire una semplice regola: 1 progetto = 1 host virtuale nel file di configurazione. Altrimenti dovrai affrontare l’errore anche se cambierai porte, ecc.

La migliore soluzione per l’utente di Windows è:

  1. Apri netstat (dal pannello di controllo XAMPP)
  2. Trova PID del processo che utilizza la porta 80.
  3. Apri CMD con Amministrativo.
  4. Esegui taskkill /pid PID (invece il PID usa pid u trovato da netstat)
    Heyy ti diverti …

Ho provato ad eseguire httpd.exe in cmd e ho ricevuto l’errore che c’è un errore di syntax in httpd-vhosts.conf. Ho controllato il file e ho scoperto cosa c’è che non va e ora funziona bene.

Quindi, se stai affrontando questo errore, potrebbe essere dovuto a httpd-vhosts o qualsiasi altro file.

Prova ad eseguire il programma tramite cmd e otterrai i dettagli dell’errore e la riga dove si trova l’errore di syntax.

Buona fortuna

Ho avuto lo stesso problema (su Windows 8.1), ma l’ho risolto semplicemente estraendo in C:\ invece di C:\somefolder come facevo all’inizio. Quindi, ad esempio, il percorso del pannello di controllo è C:\xampp\xampp-control.exe