Apache2 silenciosamente quebrando, não vai fazer apache2.pid

1

Quando corro     # /etc/init.d/apache2 restart Alegadamente afirma ter iniciado o programa, mas não o fez realmente. A saída vai um pouco mais ou menos assim.

www ~ # /etc/init.d/apache2 restart
* Stopping apache2 ... [Sun Oct 25 23:50:38 2009] [warn] Useless use of AllowOverride in line 63 of /etc/apache2/vhosts.d/30_subversion_ssl_vhost.conf. [Sun Oct 25 23:50:38 2009] [warn] NameVirtualHost --removed--:443 has no VirtualHosts [Sun Oct 25 23:50:38 2009] [warn] NameVirtualHost --removed1--:8443 has no VirtualHosts httpd (no pid file) not running [ ok ] * Starting apache2 ... [Sun Oct 25 23:50:38 2009] [warn] Useless use of AllowOverride in line 63 of /et c/apache2/vhosts.d/30_subversion_ssl_vhost.conf. [Sun Oct 25 23:50:38 2009] [warn] NameVirtualHost --removed--:443 has no VirtualHosts [Sun Oct 25 23:50:38 2009] [warn] NameVirtualHost --removed1--:8443 has no VirtualHosts [ ok ]

Como você pode ver, nenhum processo do httpd foi executado, apesar de afirmar ter sido iniciado antes, como acontece novamente aqui. Verificando manualmente, /var/run/apache2/apache2.pid não existe. O diretório run / apache2 / não estava lá antes de eu adicionar e chowned à mão. Nada é acrescentado ao / var / log / apache2 / error_log, nem a qualquer um dos logs específicos do domínio para qualquer um dos meus vhosts.

No entanto, rodando com as opções --verbose e --debug, ele parece ficar preso em um loop envolvendo a localização /var/run/apache2/apache2.pid

+ i=0
+ '[' '!' -e /var/run/apache2.pid ']'
+ '[' 0 -lt 10 ']'
+ sleep 1
++ expr 0 + 1
+ i=1
+ '[' '!' -e /var/run/apache2.pid ']'
+ '[' 1 -lt 10 ']'
+ sleep 1
++ expr 1 + 1
...

Estou usando o apache 2.2 na versão mais recente do Gentoo Linux. Os arquivos de configuração vhosts.d foram importados de uma configuração anterior, fyi, mas o arquivo httpd.conf e os arquivos associados são totalmente novos.

edite: em uma investigação mais aprofundada, o script de inicialização apache2 chama

/usr/sbin/apache2 -D DEFAULT_VHOST -D INFO -D SSL -D SSL_DEFAULT_VHOST \
-D LANGUAGE -d /usr/lib/apache2 -f /etc/apache2/httpd.conf -k start
Se eu remover a parte SSL -D, o pid se cria bem ... no entanto, eu gostaria de ssl ... alguma idéia?

edit2:

start() {
        checkconfig || return 1

        [ -f /var/log/apache2/ssl_scache ] && rm /var/log/apache2/ssl_scache

        ebegin "Starting ${SVCNAME}"
        ${APACHE2} ${APACHE2_OPTS} -k start

        i=0
        while [ ! -e "${PIDFILE}" ] && [ $i -lt ${TIMEOUT} ]; do
                sleep 1 && i=$(expr $i + 1)
        done

        test $i -le ${TIMEOUT}
        eend $?
}

Se isso fornecer mais alguma informação, avise-nos

edit3:

se, no meu ssl vhosts, eu comentar SSLEngine on , o apache começa com sucesso ...

edit4:

Basta olhar para as minhas opções de compilação do apache

www ~ # emerge -av apache

These are the packages that would be merged, in order:

Calculating dependencies |... done!
[ebuild   R   ] www-servers/apache-2.2.11-r2  USE="sni ssl -debug -doc -ldap (-s
elinux) -static -suexec -threads" APACHE2_MODULES="actions alias asis auth_diges
t authz_host autoindex cache dav deflate dir env expires filter headers include
info log_config logio mime negotiation proxy rewrite setenvif speling status use
rdir usertrack -auth_basic -authn_alias -authn_anon -authn_dbd -authn_dbm -authn
_default -authn_file -authz_dbm -authz_default -authz_groupfile -authz_owner -au
thz_user -cern_meta -charset_lite -dav_fs -dav_lock -dbd -disk_cache -dumpio -ex
t_filter -file_cache -ident -imagemap -log_forensic -mem_cache -mime_magic -prox
y_ajp -proxy_balancer -proxy_connect -proxy_ftp -proxy_http -substitute -unique_
id -version -vhost_alias" APACHE2_MPMS="-event -itk -peruser -prefork -worker" 0
 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB

Would you like to merge these packages? [Yes/No]

E também verificando somas de verificação

www ~ # equery check apache
[ Checking www-servers/apache-2.2.11-r2 ]
!!! /etc/apache2/vhosts.d/00_default_vhost.conf has incorrect md5sum
!!! /etc/conf.d/apache2 has incorrect md5sum
!!! /etc/apache2/vhosts.d/00_default_ssl_vhost.conf has incorrect md5sum
 * 403 out of 406 files good

edit5:

Woo! Edite 5!

Saída de inicialização após alterar a linha correspondente em /etc/conf.d/apache2 para APACHE2_OPTS="-X -e debug -D DEFAULT_VHOST -D INFO -D SSL -D SSL_DEFAULT_VHOST -D LANGUAGE -D PHP5

 * Starting apache2 ...
[Tue Oct 27 23:15:19 2009] [debug] mod_so.c(246): loaded module actions_module
[Tue Oct 27 23:15:19 2009] [debug] mod_so.c(246): loaded module alias_module
[Tue Oct 27 23:15:19 2009] [debug] mod_so.c(246): loaded module asis_module
[Tue Oct 27 23:15:19 2009] [debug] mod_so.c(246): loaded module authz_host_modul
e
[Tue Oct 27 23:15:19 2009] [debug] mod_so.c(246): loaded module autoindex_module

[Tue Oct 27 23:15:19 2009] [debug] mod_so.c(246): loaded module cgi_module
[Tue Oct 27 23:15:19 2009] [debug] mod_so.c(246): loaded module deflate_module
[Tue Oct 27 23:15:19 2009] [debug] mod_so.c(246): loaded module dir_module
[Tue Oct 27 23:15:19 2009] [debug] mod_so.c(246): loaded module env_module
[Tue Oct 27 23:15:19 2009] [debug] mod_so.c(246): loaded module expires_module
[Tue Oct 27 23:15:19 2009] [debug] mod_so.c(246): loaded module filter_module
[Tue Oct 27 23:15:19 2009] [debug] mod_so.c(246): loaded module headers_module
[Tue Oct 27 23:15:19 2009] [debug] mod_so.c(246): loaded module include_module
[Tue Oct 27 23:15:19 2009] [debug] mod_so.c(246): loaded module info_module
[Tue Oct 27 23:15:19 2009] [debug] mod_so.c(246): loaded module log_config_modul
e
[Tue Oct 27 23:15:19 2009] [debug] mod_so.c(246): loaded module logio_module
[Tue Oct 27 23:15:19 2009] [debug] mod_so.c(246): loaded module mime_module
[Tue Oct 27 23:15:19 2009] [debug] mod_so.c(246): loaded module negotiation_modu
le
[Tue Oct 27 23:15:19 2009] [debug] mod_so.c(246): loaded module rewrite_module
[Tue Oct 27 23:15:19 2009] [debug] mod_so.c(246): loaded module setenvif_module
[Tue Oct 27 23:15:19 2009] [debug] mod_so.c(246): loaded module speling_module
[Tue Oct 27 23:15:19 2009] [debug] mod_so.c(246): loaded module ssl_module
[Tue Oct 27 23:15:19 2009] [debug] mod_so.c(246): loaded module usertrack_module

[Tue Oct 27 23:15:19 2009] [debug] mod_so.c(246): loaded module php5_mod  [ ok ]

Ainda não há sugestões. Além disso, não sei como verificar a configuração ssl, se é que, de fato, o problema

    
por Sam 28.10.2009 / 07:17

3 respostas

0

Hmm, eu sou muito suspeito do arquivo de configuração

/etc/apache2/vhosts.d/30_subversion_ssl_vhost.conf

Ao remover o '-D SSL', você fará com que todas as partes dos arquivos de configuração que estão contidos em ... sejam ignoradas. O arquivo SSL vhost padrão na minha caixa Gentoo é empacotado nessa tag, então eu me pergunto se, removendo o '-D SSL', você está impedindo que a configuração em 30_subversion_ssl_vhost.conf seja executada e se é isso que está permitindo o Apache para começar.

Se você remover temporariamente o arquivo 30_subversion_ssl_vhost.conf do /etc/apache2/vhosts.d, o Apache é executado? Existem outros arquivos vhost.conf relacionados ao SSL em vhosts.d? Meu diretório vhosts.d razoavelmente novo / não utilizado da instalação Apache tem esta aparência:

# pwd && ls
/etc/apache2/vhosts.d
00_default_ssl_vhost.conf  00_default_vhost.conf  default_vhost.include

edite 1:

Tanto para essa teoria :) Agora estou me perguntando se o problema é com a própria configuração do Apache SSL. Peço desculpas se estou cobrindo o terreno que você já verificou, mas estou querendo saber se você poderia fazer o seguinte para ajudar a verificar sua instalação do Apache.

No meu Apache, instale com o SSL de trabalho os flags de uso são os seguintes:

# emerge -av apache

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild     U ] www-servers/apache-2.2.11-r2 [2.2.11] USE="ssl -debug -doc -ldap (-selinux) -sni -static -suexec -threads" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias -asis -auth_digest -authn_dbd -cern_meta -charset_lite -dbd -dumpio -ident -imagemap -log_forensic -proxy -proxy_ajp -proxy_balancer -proxy_connect -proxy_ftp -proxy_http -substitute -version" APACHE2_MPMS="-event -itk -peruser -prefork -worker" 64 kB

Em particular, você tem o sinalizador "ssl" USE definido?

Além disso, você poderia usar o equery para verificar a integridade da sua instalação do apache2? Se você não possui o comando equery, você pode instalá-lo executando 'emerge -av gentoolkit'. O seguinte comando deve verificar a integridade da sua instalação do apache:

equery check apache

No meu servidor, o comando acima fornece a seguinte saída:

[ Checking www-servers/apache-2.2.11 ]
!!! /etc/apache2/vhosts.d/00_default_ssl_vhost.conf has wrong mtime (is 1256620928, should be 1246793824)
!!! /etc/apache2/modules.d/00_default_settings.conf has wrong mtime (is 1246796304, should be 1246793824)
!!! /etc/conf.d/apache2 has incorrect md5sum
 * 429 out of 432 files good

edição 2:

Bem, a instalação parece boa para mim, tanto para a teoria 2. Eu estou querendo saber se podemos persuadir o Apache a dar mais algumas informações sobre a inicialização. Em /etc/conf.d/apache2, se você alterar sua linha APACHE2_OPTS de:

APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D SSL -D SSL_DEFAULT_VHOST -D LANGUAGE"

para

APACHE2_OPTS="-X -e debug -D DEFAULT_VHOST -D INFO -D SSL -D SSL_DEFAULT_VHOST -D LANGUAGE"

e, em seguida, inicie o Apache (/etc/init.d/apache2 start) o daemon deve permanecer em primeiro plano (o sinalizador -X) e exibir as mensagens de depuração à medida que forem iniciadas (a opção -e debug). Talvez isso dê uma pista sobre por que está morrendo na inicialização.

    
por 27.10.2009 / 06:38
1

o script está acessando /var/run/apache2.pid, não /var/run/apache2/apache2.pid. Você pode verificar se /var/run/apache2.pid tem as permissões certas?

    
por 26.10.2009 / 08:47
0

De alguma forma, depois de criar meus próprios arquivos .crt e .key, tentando um emerge mod_ssl , que acabou fazendo um monte de coisas, e reconstruindo o apache mais uma vez, tudo de alguma forma se encaixou. Eu não tenho nenhuma explicação, exceto talvez por alguma inconsistência anterior com a maneira que eu fiz meus arquivos .crt e .key: /

Essa jornada me deixou vazio e insatisfeito. Bem, exceto pela sua ajuda:] Obrigado a todos.

    
por 28.10.2009 / 23:50