Назад | Перейти на главную страницу

Apache2 тихо ломается, apache2.pid не сделает

Когда я запускаю # /etc/init.d/apache2 restart Он с радостью утверждает, что запустил программу, но на самом деле этого не сделал. Результат выглядит примерно так.

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 ]

Как видите, ни один процесс httpd никогда не запускался, несмотря на заявления о том, что он запускался раньше, как это происходит здесь снова. Проверяя вручную, /var/run/apache2/apache2.pid не существует. Каталог run / apache2 / даже не был там до того, как я добавил и отредактировал его вручную. Ничего не добавляется ни в / var / log / apache2 / error_log, ни в какие-либо журналы домена для любого из моих хостов.

Однако при работе с параметрами --verbose и --debug кажется, что он зависает в цикле for, включающем местоположение /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
...

Я использую apache 2.2 на последней сборке Gentoo Linux. Файлы конфигурации vhosts.d были импортированы из предыдущей установки, fyi, но httpd.conf и связанные с ним файлы совершенно новые.

изменить: при дальнейшем исследовании сценарий инициализации apache2 вызывает

/ usr / sbin / apache2 -D DEFAULT_VHOST -D INFO -D SSL -D SSL_DEFAULT_VHOST \
-D ЯЗЫК -d / usr / lib / apache2 -f /etc/apache2/httpd.conf -k start
If I remove the -D SSL part, the pid creates itself fine... however, I would like ssl... any ideas?

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 $?
}

Если это поможет, дайте мне знать

edit3:

если в моих ssl vhosts я закомментирую SSLEngine on, apache успешно запускается ...

edit4:

Просто взгляните на мои варианты сборки 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]

А также проверка контрольных сумм

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:

Ву! Редактировать 5!

Вывод при запуске после изменения соответствующей строки в /etc/conf.d/apache2 к 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 ]

Намеков пока нет. Кроме того, не уверен, как проверить конфигурацию ssl, если это действительно проблема

сценарий обращается к /var/run/apache2.pid, а не к /var/run/apache2/apache2.pid. Можете ли вы проверить, есть ли у /var/run/apache2.pid нужные разрешения?

Каким-то образом, после создания моих собственных файлов .crt и .key, попытка emerge mod_ssl, который в конечном итоге проделал кучу вещей и снова перестроил apache, все как-то стало на свои места. У меня нет объяснений, за исключением, может быть, некоторого предыдущего несоответствия с тем, как я создавал свои файлы .crt и .key: /

Это путешествие оставило меня опустошенным и неудовлетворенным. Ну, кроме вашей помощи:] Всем спасибо.

Хм, я очень подозрительно отношусь к файлу конфигурации

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

Когда вы удаляете '-D SSL', вы пропускаете все части файлов конфигурации, заключенные в .... Файл vhost SSL по умолчанию в моем Gentoo-ящике заключен в этот тег, поэтому мне интересно, если, удалив '-D SSL', вы вообще предотвращаете запуск конфигурации в 30_subversion_ssl_vhost.conf, и если это то, что позволяет Apache начать.

Если вы временно удалите файл 30_subversion_ssl_vhost.conf из /etc/apache2/vhosts.d, запустится ли Apache? Есть ли в vhosts.d какие-либо другие файлы vhost.conf, связанные с SSL? Мой относительно свежий / неиспользованный каталог vhosts.d для установки Apache выглядит так:

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

редактировать 1:

Вот и вся теория :) Теперь мне интересно, не в самой ли настройке Apache SSL. Прошу прощения, если я закрываю то, что вы уже проверили, но мне интересно, могли бы вы сделать следующее, чтобы помочь проверить установку Apache.

На моей установке Apache с работающим SSL используются следующие флаги:

# 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

В частности, установлен ли USE-флаг 'ssl'?

Кроме того, не могли бы вы использовать equery для проверки целостности вашей установки apache2? Если у вас нет команды equery, вы можете установить ее, запустив emerge -av gentoolkit. Следующая команда должна проверить целостность вашей установки apache:

equery check apache

На моем сервере приведенная выше команда дает следующий результат:

[ 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

редактировать 2:

Что ж, установка мне кажется хорошей, так что для теории 2. Мне интересно, можем ли мы уговорить Apache предоставить дополнительную информацию о запуске. В /etc/conf.d/apache2, если вы измените строку APACHE2_OPTS с:

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

к

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

а затем запустите Apache (/etc/init.d/apache2 start), демон должен оставаться на переднем плане (флаг -X) и выводить сообщения отладки при запуске (параметр -e отладки). Может быть, это даст понять, почему он умирает при запуске.