[aman@aman-Inspiron-1440:~$ apache2
[Mon Apr 21 17:36:38.019213 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_LOCK_DIR} is not defined
[Mon Apr 21 17:36:38.019345 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_PID_FILE} is not defined
[Mon Apr 21 17:36:38.019370 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_RUN_USER} is not defined
[Mon Apr 21 17:36:38.019385 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_RUN_GROUP} is not defined
[Mon Apr 21 17:36:38.019414 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Mon Apr 21 17:36:38.028756 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Mon Apr 21 17:36:38.029032 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Mon Apr 21 17:36:38.029056 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
AH00526: Syntax error on line 74 of /etc/apache2/apache2.conf:
Invalid Mutex directory in argument file:${APACHE_LOCK_DIR}
Este é o conteúdo do /etc/apache2/apache2.conf
arquivo.
Respostas:
Eu tive este problema: A causa está no arquivo
onde a raiz mudou:
antes da atualização =
/var/www
após atualização =
/var/www/html
Então edite para modificar este arquivo
E reinicie o apache
fonte
000-default.conf
arquivo.html
subpasta já existe, que no meu caso é realmente irrelevante, uma vez todos os meus sites usam VirtualHostsDocumentRoot
configuração.Eu tive esse problema mesmo que o apache estivesse funcionando para mim. Eu simplesmente queria fazer uma rápida
para encontrar o valor de
SERVER_CONFIG_FILE
. Como essa não é a maneira de iniciar o apache2, ela falha com os erros que o OP publica. Uma solução rápida e suja é simplesmente definir os envvs que estão faltando primeiro:Isso define a variável APACHE_LOCK_DIR e tudo está bem (
-D SERVER_CONFIG_FILE="apache2.conf"
).fonte
apache2 -S
falhou. Tudo fixo.apache2
como root corrigiu o problema.apache2ctl -V
Sintomas e solução
Em muitos sites ou fóruns de perguntas e respostas, as pessoas confundem sintomas e causas reais. Acabei de atualizar um servidor ubuntu de 13.10 para 14.04.1 e encontrei exatamente os mesmos sintomas descritos pelo OP, incluindo:
1- apache aparentemente não está funcionando. 2- variável de configuração apache indefinida. 3- o erro de sintaxe mencionado pelo OP.
O problema é que nem todos esses sintomas são realmente pertinentes ao problema real e servem apenas como uma distração para aqueles que se esforçam ao máximo para ajudar.
Problemas de raiz diferentes podem fazer com que administradores acessem sites como este com aproximadamente a mesma descrição: "Atualizei o sistema operacional e agora o apache não está funcionando ..."
Uma causa específica
Tendo exatamente os mesmos sintomas aparentes do OP, fiquei atraído por essa pergunta. Infelizmente, a única resposta que continha uma dica válida para a causa raiz real do meu problema foi diminuída (-1), postada por user1469291 com um representante de 1 !! Por isso, procurei em outros sites até encontrar uma explicação clara do problema (e, portanto, da solução).
A solução a seguir pode não resolver o problema real do OP, mas tenho certeza de que ajudará outras pessoas que possam se sentir atraídas por essa pergunta pelos mesmos motivos que eu.
/etc/apache2/apache2.conf contém:
o que significa que apenas os arquivos de configuração do site em / etc / apache2 / sites-enabled / terminando em .conf serão carregados. O link simbólico mais antigo nesse diretório será ignorado.
Costumava ser simplesmente ativado por sites / *. É por isso que todos os meus arquivos de configuração de host virtual que eu simplesmente chamei de ww1.example.com, ww2.example.com, etc. costumavam funcionar, mas de repente e inicialmente inexplicavelmente parou de funcionar após a atualização.
Portanto, altere a diretiva acima e recarregue o apache ou, como eu fiz, remova manualmente todos os links simbólicos mais antigos em sites habilitados /, renomeie todos os arquivos em sites disponíveis / para adicionar o sufixo .conf e, em seguida, reative cada site individualmente.
Além disso, a diretiva padrão no apache.conf é mais rígida:
Portanto, se você hospedar seus sites virtuais em / home / user / algum lugar, substitua a diretiva adequadamente.
fonte
Olhando atentamente para o seu problema, você está apenas executando
apache2
. Para iniciar o apache no Ubuntu, execute o seguinte comando:A configuração do Apache é dividida em vários arquivos, um desses arquivos são variáveis de ambiente. Quando você está executando apenas
apache2
, essas variáveis não estão definidas.O script apache2ctl carregará as variáveis (e fará outras coisas quando necessário) antes de iniciar o apache
apache2 -k start
.fonte
sudo apache2ctl restart
vez disso.Edite a configuração
sudo leafpad /etc/apache2/apache2.conf
::ou remover arquivo.
fonte
A resposta de augustin funcionou para mim quando todos os meus hosts virtuais desapareceram após uma atualização do servidor de 12.04 LTS para 14.04 LTS. Eu o aprovaria se tivesse a reputação de fazê-lo.
O comando a seguir adicionará o
.conf
sufixo a todos os links simbólicos/etc/apache2/sites-enabled
que ainda não o possuem:Além disso, houve uma alteração do uso da sintaxe
Allow from
/ no módulo mod_authz_host ( aqui está o link para a documentação 2.2).Deny from
Require
O comando a seguir editará o uso comum de
Order allow, deny
seguido porAllow from all
to beRequire all granted
:fonte
De fato, o docroot muda entre preciso e confiável de / var / www para / var / www / html. É ruim que o script do-release-upgrade não retorne a docroot de volta.
A) Qualquer um é válido, mas o html é mais convencional. O CentOS é influente nesse sentido. A página "funciona" também está mais madura agora.
B) Você não precisa usar / var / www / html, mas se precisar ...
C) E pode ser mais fácil construir a partir do zero e migrar.
D) Esse sintoma ocorrerá se você "sudo apache2 -k gracioso" fora da caixa no Trusty, atualizar ou não devido a envvars que não estão no escopo? Use "sudo apache2ctl start / stop / restart" em seu lugar.
fonte
No meu caso:
html
subpasta em/var/www/
já existia, mas ainda estava recebendo o erro:AH00526: Syntax error on line 74 of /etc/apache2/apache2.conf
/home/{user}/sites/
vez do padrão/var/www/html
apache2 -v
)Como resolvi o problema em cinco etapas fáceis:
Em
/etc/apache2/apache2.conf
Eu adicionado o seguinte depois linha 169:Certifiquei-me de que minha configuração de host virtual nomeada
website.conf
em/etc/apache2/sites-available
fosse copiada do padrão000-default.conf
e parecesse:Eu recarreguei meu site (
sudo a2dissite website && sudo a2ensite website
) e meu servidor e o erro inicial se foi. WOOHOO! Mas surgiu um novo: "AH00035: acesso a / negado (caminho do sistema de arquivos '/ home / {usuário} / sites') porque faltam permissões de pesquisa em um componente do caminho". Isso eu resolvi na etapa 4.O novo problema foi devido a permissões, então apenas defina cada um dos diretórios que antecederam a
website
pastachmod 755
. Cada um! Ahome
pasta, a pasta {user}, a pasta sites e até a pasta do meu siteDepois de atualizar o meu navegador em
website.dev
tudo carregado bem!PS Eu já tinha configurado
website.dev
no meu/etc/hosts
arquivo.Bônus Dica: Para verificar as permissões de um determinado pasta que você pode usar o comando
stat -c %a /path/to/file/or/folder
. Para verificar as permissões de todas as partes de um diretório, usenamei -m /path/to/final/folder
.fonte