XAMPP, Apache - Error: Apache shutdown inesperadamente
acabei de reinstalar o XAMPP, e quando tento iniciar o meu servidor Apache no painel de controlo do XAMPP, recebo agora os seguintes erros:
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
Como é que resolvo isto?
30 answers
Ferramentas - > Opções - > Avançado - > Ligação.
Desactivar o " usar a porta 80 e 443 para alternativas às ligações recebidas"
Assinem e fechem todas as janelas do Skype. Tenta reiniciar o Apache.Como o porto não é usado pelo Skype, mas por algumas outras aplicações internas, Segui os passos abaixo para resolver o problema:
Passo 1 - no painel de controlo XAMPP, em Apache, carregue no botão de configuração e seleccione o Apache (httpd.conf).
Dentro do httpd.conf arquivo, de alguma forma eu encontrei uma linha que diz:
Listen 80
E muda o 80 para o número / Porto que quiseres. No meu cenário, estou a usar a porta 8080.
Listen 8080
Ainda do httpd.ficheiro conf, encontrei outra linha que diz:
Muda 80 para 8080. Passo 2 - do Painel de controlo XAMPP, em Apache, carregue no botão de configuração de novo, mas desta vez seleccione o Apache (httpd-ssl.conf ). Dentro do httpd-ssl.conf ficheiro, Encontra a linha que diz:
E muda o 443 para o número / Porto que quiseres. Vou usar 4433 como o novo número de Porto. Ainda do httpd-ssl.conf file, encontre outra linha que diga E mudança 443 para 4433.ServerName localhost:80
ServerName localhost:8080
Listen 443
Listen 4433
<VirtualHost _default_:443>
ServerName localhost:443
Lembra-te de salvar o httpd.conf e httpd-ssl.conf ficheiros Após efectuar algumas alterações. Então reinicie o serviço Apache.<VirtualHost _default_:4433>
ServerName localhost:4433
Uma coisa que pode fazer é parar os serviços no porto 80 emitindo
net stop http
Num cmd. Ser-lhe-á perguntado se tem a certeza que quer parar esses serviços. Descobri que tinha alguns serviços que não estava a usar e desactivei-os.
Para ver quem mais está a usar o tipo porta 80 num cmd
netstat -abno
Presumo que queira comandar o Apache no porto 80. Se for esse o caso e você quiser manter os Serviços conflitantes você precisará associá-los a um novo porto.
O problema não é um porto ocupado, você também pode tentar o seguinte: seleccione "Mostrar a informação de depuração" no painel de configuração do XAMPP. Ao iniciar o Apache você será mostrado algo como " executar "c:\xampp\apache\bin\httpd.exe". Se você executar esse
c:\xampp\apache\bin\httpd.exe
Em um cmd você vai obter mais algumas informações (uma vez, por exemplo, tive algum problema com o meu httpd.conf file).
Relacionado: Como é que liberto a minha porta 80 nas janelas localhost? e Apache não vai correr em xampp
No painel de controlo XAMPP V3.2.1, Carregue no botão "NetStat" no canto superior direito. Certifique-se de que a porta 80 não é usada por nenhum outro programa. Em seguida, clique em "Shell" logo abaixo. Emitir este comando "escreva ap e depois TAB duas vezes"
Apache_Start.bat
Você irá realmente ver o erro exacto por que o Apache falhou. Ele será, na maioria das vezes, problema de configuração virtual host ou pode ser algo mais. Ele irá exibir o número de linha em que o erro está ocorrendo. Arranja isso. erro. Note que no RootDocument um trailing \ pode ser uma fonte de erro também. Remover qualquer sequência "\".
Para uma resposta mais detalhada, veja aqui
Siga estes passos:
- Abra o seu painel de controlo XAMPP e depois carregue na sua "configuração"
-
Escolha o " Apache (httpd.conf) " e encontrar este código abaixo e mudá - lo para este:
#mude isto para ouvir os endereços IP específicos como mostrado abaixo
#para evitar que o Apache se desloque para todos os endereços IP.
#Ouça 0.0.0.0: 80
Ouve [::]:80Listen 80
# Objecto Dinâmico Partilhado (DSO) apoio
- Guarde-o (Ctrl + S) Depois disso, volte para o painel de controle XAMPP e clique em sua configuração novamente.
- Escolha " Apache (httpd-ssl.conf)", encontre este código abaixo, e mude novamente:
# Nota: As configurações que usam IPv6 mas não os endereços mapeados IPv4 precisam de dois
# ouve as directivas: "ouve [::]: 443 "e"ouve 0.0.0.0:443"
#
#ouvir 0.0.0.0: 443
Ouve [::]:443
Listen 443
- Guarde-o (Ctrl + S)
- então, clique na " configuração "(nota: acima do netstat) e clique em"configuração do serviço e do Porto".
- muda a " porta principal "para 8080 e a" porta SSL " para 4433, depois guarda-a.
- finalmente, vá ao "painel de Controlo" - > "Programas e funcionalidades" - > "ligar ou desligar as janelas".
- desligue os seus "Serviços de Informação na Internet", e depois carregue em OK.
Apenas espere por ele e seu computador/laptop será reiniciado automaticamente e tentar abrir o seu painel de controle XAMPP novamente, e em seguida, iniciar o seu Apache.
DocumentRoot
e <Directory>
apontavam para pastas não existentes.
Por exemplo, o 'original' httpd.a conf tinha as seguintes entradas:
DocumentRoot "c:/Apache24/htdocs"
<Directory "c:/Apache24/htdocs">
Se tiver instalado em C:\xampp então você precisa mudar essas entradas para corresponder, ou seja
DocumentRoot "c:/xampp/htdocs"
<Directory "c:/xampp/htdocs">
Se estiver a utilizar o Windows 7 . Procurar por IIS no Windows search (carregue no ícone da janela no fundo esquerdo e escreva onde diz 'Programa de pesquisa e ficheiros') .
AbrirIIS (serviço de Informação da Internet) .
No lado direito do painel de acções. entalhe. Nota: o ponto de paragem está desbotado na imagem. Tal como o impedi. Problema Resolvido!Abra o painel de controlo XAMPP.
Carregue em Configuração
Então, vá para Apache httpd.conf ficheiro. Abra - o com um editor de texto.
Procurar por "80" (Do Ctrl + e encontra-os a todos. Substitui-o por 8080 ou 4040 ou 4000 ).
Salve o arquivo. E reiniciar XAMPP.
A coisa simples que você pode fazer é verificar se Skype ou VMware está instalado em sua máquina ou não.
O Skype usa as portas 80 e 443 como uma porta adicional para ligações recebidas. Para alterar o número da porta no Skype, vá para
Na janela do Skype. Agora mude o número de porta padrão de 80 para outra coisa.Ferramentas > Opções De Ligação > Ligação
O VMware Workstation usa o porto 443 para partilhar. Alterar isto, open VMware Workstation e goto
Editar > Preferências > VMs Partilhados
- Carregue em "mudar a configuração" buton
- Depois Carregue Em "Desactivar A Partilha"
- depois mude o número de porta dos https que está a ser utilizado (443)
- depois poderá carregar no botão" Activar a partilha "
Quando descobri que não havia nenhum processo usando o porto 80 usando comandos
netstat -abno | find ":80"
Não houve nenhum problema de qualquer processo usando a porta 80.
Depois corri o comando (em cmd)
C:\xampp\apache\bin\httpd.exe
Mostrou algum erro na configuração das máquinas virtuais no ficheiro httpd-vhosts.conf
que foi recentemente editado por mim para instalação num ambiente de PHP WordPress no IDE Eclipse. Apache começou perfeitamente.
net stop http
Depois disso, o XAMPP executou o Apache sem problemas.
Este erro ocorre porque a porta, que é atribuída ao Apache, é usada por outro programa. Para verificar a aplicação que usa a porta que atribuímos ao Apache, ela pode ser obtida clicando,
Botão Netstat.
Este é o ficheiro Netstat,
No início, atribuí a porta 8080 ao Apache e instalei recentemente a Oracle DB.CNSLSNR.o exe já usou o porto 8080. Então, por olhando para este arquivo, podemos escolher uma porta que não está colidindo com outras aplicações. No meu caso, a porta 8060 não está a colidir com nenhuma aplicação. Selecionando que podemos mudar o httpd.conf ficheiro (painel de controlo XAMPP -> configuração) Como mencionado acima.- Obter novos XAMPP apachefriends
- Instale
- remover toda a aplicação VPN
- abrir a pasta XAMPP executar setup_ XAMPP.bat
- Executar xampp-control.exe
Como podem ver, estava a ter um problema de localização ou o xampp está a apontar para uma pasta não existente.
Isto acontece devido ao porto padrão 80 está bloqueado para o Apache. Você precisa mudar o porto ou tornar o porto acessível.
Vá para a sua configuração Apache (httpd.conf) ficheiro na instalação Apache.
Encontra estas linhas:
#
Ouve. 192.168.1.2:80
Ouve. 80
#
Aqui 192.168.1.2 está o meu endereço IP privado. Muda-o de acordo com o teu.
Mudar como abaixo de
Ouve. 192.168.1.2:8081
Ouve. 8081
Quando aceder ao localhost, terá de adicionar explicitamente o porto como http://localhost:8081 / ...A simples remoção da ligação de "Painel de Controlo\Rede e Internet\Conexões de rede" resolveu o problema.
Lembre-se que sempre que alterar as portas predefinidas, o seu navegador não saberá disso. 80
e 443
parecem ser padrão de alguma forma, por isso, por exemplo, se mudou 80
para 8080
, terá de aceder aos seus websites desta forma:
localhost:8080/path_to_your_website.php
Uma das causas pode ser que não esteja a correr o painel de controlo XAMPP como administrador.
(em alemão: Systemsteuerung -> Sistema und Sicherheit -> Verwaltung -> Dienste -> Webbereitstellungs-Agente-Dienst)
No meu caso, esta questão foi causada por uma tentativa de baixar outro produto da bitnami, como WordPress. Isso é comum quando instalamos WordPress via XAMPP. Ele é colocado no diretório xampp/app
que pode ser acessado a partir da página da aplicação XAMPP.
Como solução, removi o WordPress instalado por omissão do directório xampp
e instalei manualmente o WordPress na pasta htdocs
do WordPress, baixando-o e extraindo ficheiros zip para a pasta htdoc
. Você também precisa reiniciar o XAMPP Ou Pode sistema depois de desinstalar / remover o WordPress predefinido . Está tudo bem para mim agora.
Eu tinha a mesma mensagem de erro que o OP, mas o meu problema não foi resolvido por nenhuma das respostas existentes. Muitas das respostas tratam de conflitos no porto 80, que eu sabia que não tinha, uma vez que eu tinha tido resposta localhost no porto 80 muito recentemente.
Acontece que eu tinha, inadvertidamente, alterado ServerRoot quando eu pretendia alterar DocumentRoot (estúpido, eu sei), e que o novo ServerRoot diretório existia, não conter a arquivos de configuração e outras coisas que o apache precisava, o que fez com que ele falhasse no arranque. A mensagem de erro provavelmente aborda este cenário pelo texto ' dependências em falta '.
No meu sistema Windows, a repor o ServerRoot em C:/XAMPP/apache resolvi o problema.
O servidor Apache, por omissão, funciona nos portos 80, 443. O seu problema é que uma ou ambas as portas estão ocupadas. Normalmente, o Skype ou a estação de trabalho VMware usam estas duas portas. Por isso, certifica-te que não estão a fugir. A melhor maneira de garantir que as portas estão livres no windows é:
Carregue no botão windows.
No tipo de barra de pesquisa resmon , para abrir o Monitor de recursos resmon.exe .
Abrir Ouvir Portas , isto mostrar-lhe-á as portas usadas abertas.
Agora você pode ver que processo está usando portas 80 e 443.
Então você pode matar o processo tanto do CMD usando seu PID (que é mostrado no monitor de recursos), ou diretamente do Gerenciador de Tarefas.
Para matar um processo do CMD usando o tipo PID
Taskkill /PID 26356 /F
, onde o 26356 é o PID.
Primeiro certifique-se que a sua pasta
\xampp
está na raiz! Isto é importante porque o caminho é relativo.Então certifique-se de executar o
xampp_control.exe
com direitos de administração.Em seguida, altere os arquivos abaixo para evitar problemas com porta bloqueada 80.
Em \xampp\xampp-control.ini
deve ser definido:
[ServicePorts]
Apache=8080
ApacheSSL=4433
Procura \xampp\apache\conf\httpd.conf
e define:
Listen 8080
ServerName localhost:8080
Procura \xampp\apache\conf\extra\httpd-ssl.conf
e define:
Listen 4433
<VirtualHost _default_:4433>
ServerName www.example.com:4433
Depois terminar todos os serviços e reiniciar xampp-control.exe
com administração direito. Devia correr!
No meu caso, isto aconteceu após a instalação do servidor sql e a solução foi como descrito nesta resposta
Xampp - não é possível iniciar o Apache após instalar o servidor SQL e o Visual Studio
Por isso, tive de desactivar o serviço "SQL Server Reporting Services" dos Serviços Windows
Melhor solução
Abrir o painel de controlo do XAMPP, carregar na configuração do Apache e, em seguida, carregar no Apache (httpd.configuracao).agora no editor de texto . ctrl+f -- > encontrar "ouvir 80" e substituí-lo por "ouvir 8079" sem as citações:) mas agora você tem que usá-lo assim http://localhost:8079/
P. s, eu tentei mudar as configurações de portas para o skype, parando o serviço de agente de implantação Web que não consegui encontrar no windows 10, cmd--> net stop http, e outros métodos, mas nada funcionou excepto isto .
Em primeiro lugar, deve verificar se não tem máquinas virtuais em excesso no seu ficheiro httpd-vhosts. Quero dizer, seguindo a regra simples: 1 Projeto = 1 host virtual em arquivo de configuração. Caso contrário, você vai enfrentar com erro, mesmo que você vai mudar de portas, etc.
A melhor solução para o utilizador do windows é:
- Open netstat (do painel de controlo XAMPP)
- encontra o PID do processo que usa a porta 80.
- Abrir CMD com administração.
- executar
taskkill /pid PID
(em vez de usar o PID u encontrado no netstat)
Bom proveito.....
Tentei executar o httpd.exe no cmd e obteve um erro de sintaxe no httpd-vhosts.conf. Verifiquei o ficheiro e descobri o que se passa e está a funcionar bem.
Então, se você está enfrentando este erro então pode ser por causa de httpd-vhosts ou qualquer outro arquivo.
Tente executar o programa através do cmd e obterá os detalhes do erro e a linha onde está o erro de sintaxe.
Boa sorte.Tive o mesmo problema (no Windows 8.1), mas corrigi-o apenas extraindo para {[[[0]} em vez de C:\somefolder
como fiz no início. Assim, o caminho para o painel de controle, por exemplo, é agora C:\xampp\xampp-control.exe