Apache2 тихо ломается, не сделает apache2.pid
Когда я запускаю # /etc/init.d/apache2 restart, он с радостью заявляет, что запустил программу, но на самом деле этого не сделал. Вывод идет примерно так.
www ~ # /etc/init.d/apache2 restart
* Остановка apache2 ... [Sun Oct 25 23:50:38 2009] [warn] Бесполезное использование AllowOverride в строке 63 файла /etc/apache2/vhosts.d/30_subversion_ssl_vhost.conf. [Sun Oct 25 23:50:38 2009] [warn] NameVirtualHost --removed -:443 не имеет виртуальных хостов [Вс 25 октября 23:50:38 2009] [warn] NameVirtualHost --removed1 -:8443 не имеет виртуальных хостов httpd (без pid-файла) не работает [ок] * Запуск apache2 ... [Sun Oct 25 23:50:38 2009] [warn] Бесполезное использование AllowOverride в строке 63 of /et с / apache2 / vhosts.d / 30_subversion_ssl_vhost.conf. [Sun Oct 25 23:50:38 2009] [warn] NameVirtualHost --removed -:443 не имеет виртуальных хостов [Вс 25 октября 23:50:38 2009] [warn] NameVirtualHost --removed1 -:8443 не имеет виртуальных хостов [ Хорошо ]
Как видите, ни один процесс httpd никогда не выполнялся, несмотря на то, что он утверждал, что запускался раньше, как это происходит здесь снова. Проверка вручную, /var/run/apache2/apache2.pid не существует. Директории run / apache2 / не было даже там, пока я не добавил и не разбил ее вручную. Ничего не добавлено ни в / var / log / apache2 / error_log, ни в какие-либо доменные журналы ни для одного из моих vhosts.
Однако, работая с опциями --verbose и --debug, кажется, что он зацикливается на цикле for, включающем каталог /var/run/apache2/apache2.pid
+ я = 0
+ '[' '!' -e /var/run/apache2.pid ']'
+ '[' 0 -lt 10 ']'
+ сон 1
++ expr 0 + 1
+ я = 1
+ '[' '!' -e /var/run/apache2.pid ']'
+ '[' 1 -lt 10 ']'
+ сон 1
++ expr 1 + 1
...
Я использую Apache 2.2 в последней сборке Gentoo Linux. Конфигурационные файлы vhosts.d были импортированы из предыдущей настройки, к вашему сведению, но все файлы httpd.conf и связанные с ними совершенно новые.
редактировать: при дальнейшем расследовании вызов скрипта apache2 init
/usr/sbin/apache2 -D DEFAULT_VHOST -D ИНФОРМАЦИЯ -D SSL -D SSL_DEFAULT_VHOST \Если я удаляю часть -D SSL, pid создает себя нормально... однако, я хотел бы ssl... есть идеи?
-D ЯЗЫК -d /usr/lib/apache2 -f /etc/apache2/httpd.conf -k start
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 Это пакеты, которые будут объединены в следующем порядке: Расчет зависимостей |... готово! [ebuild R ] www-серверы /apache-2.2.11-r2 USE="sni ssl -debug -doc -ldap (-s elinux) -static -suexec -threads" APACHE2_MODULES=" псевдоним действий asis auth_diges t authz_host кэш автоиндекса dav deflate dir env expires заголовки фильтра включают info log_config logio mime согласование прокси переписать setenvif орфография статус использовать 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="- событие -itk -peruser -prefork -worker" 0 кБ Всего: 1 пакет (1 переустановка), Размер загрузок: 0 КБ Хотите ли вы объединить эти пакеты? [Да нет]
А также проверка контрольных сумм
www ~ # equery check apache [Проверка www-серверов /apache-2.2.11-r2 ]!!! /etc/apache2/vhosts.d/00_default_vhost.conf имеет неверный md5sum!!! /etc/conf.d/apache2 имеет неправильную md5sum!!! /etc/apache2/vhosts.d/00_default_ssl_vhost.conf имеет неверную сумму md5sum * 403 файла из 406 хороших
edit5:
Woo! Редактировать 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
* Запуск apache2... [Вторник, 27 октября 23:15:19 2009] [debug] mod_so.c(246): загруженный модуль actions_module [Вторник, 27 октября 23:15:19 2009] [debug] mod_so.c(246): загруженный модуль alias_module [Вторник, 27 октября 23:15:19 2009] [debug] mod_so.c(246): загруженный модуль asis_module [Вторник, 27 октября 23:15:19 2009] [debug] mod_so.c(246): загруженный модуль authz_host_modul е [Вторник, 27 октября 23:15:19 2009] [debug] mod_so.c(246): загруженный модуль autoindex_module [Вторник, 27 октября 23:15:19 2009] [debug] mod_so.c(246): загруженный модуль cgi_module [Вторник, 27 октября 23:15:19 2009] [debug] mod_so.c(246): загруженный модуль deflate_module [Вторник, 27 октября 23:15:19 2009] [debug] mod_so.c(246): загруженный модуль dir_module [Вторник, 27 октября 23:15:19 2009] [debug] mod_so.c(246): загруженный модуль env_module [Вторник, 27 октября 23:15:19 2009] [debug] mod_so.c(246): загруженный модуль expires_module [Вторник, 27 октября 23:15:19 2009] [debug] mod_so.c(246): загруженный модуль filter_module [Вторник, 27 октября 23:15:19 2009] [debug] mod_so.c(246): загруженный модуль headers_module [Вторник, 27 октября 23:15:19 2009] [debug] mod_so.c(246): загруженный модуль include_module [Вторник, 27 октября 23:15:19 2009] [debug] mod_so.c(246): загруженный модуль info_module [Вторник, 27 октября 23:15:19 2009] [debug] mod_so.c(246): загруженный модуль log_config_modul е [Вторник, 27 октября 23:15:19 2009] [debug] mod_so.c(246): загруженный модуль logio_module [Вторник, 27 октября 23:15:19 2009] [debug] mod_so.c(246): загруженный модуль mime_module [Вторник, 27 октября 23:15:19 2009] [debug] mod_so.c(246): загруженный модуль gotiation_modu ле [Вторник, 27 октября 23:15:19 2009] [debug] mod_so.c(246): загруженный модуль rewrite_module [Вторник, 27 октября 23:15:19 2009] [debug] mod_so.c(246): загруженный модуль setenvif_module [Вторник, 27 октября 23:15:19 2009] [debug] mod_so.c(246): загруженный модуль speling_module [Вторник, 27 октября 23:15:19 2009] [debug] mod_so.c(246): загруженный модуль ssl_module [Вт окт 27 23:15:19 2009] [debug] mod_so.c(246): загруженный модуль usertrack_module [Вт окт 27 23:15:19 2009] [debug] mod_so.c(246): загруженный модуль php5_mod [ ok ]
Пока нет подсказок. Кроме того, не уверен, как проверить конфигурацию ssl, если это действительно проблема
3 ответа
Хм, я довольно подозрительно отношусь к файлу конфигурации
/etc/apache2/vhosts.d/30_subversion_ssl_vhost.conf
При удалении "-D SSL" вы пропустите все части файлов конфигурации, которые заключены в.... Файл SSL vhost по умолчанию в моей коробке Gentoo обернут в этот тег, поэтому мне интересно, если, удалив '-D SSL', вы вообще запретите запуск конфигурации в 30_subversion_ssl_vhost.conf, и если это то, что разрешает Apache начать.
Если вы временно удалите файл 30_subversion_ssl_vhost.conf из /etc/apache2/vhosts.d, запускается ли Apache? Есть ли какие-либо другие файлы vhost.conf, связанные с SSL, в vhosts.d? Моя довольно свежая / неиспользуемая директория 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 debug). Может быть, это даст понять, почему он умирает при запуске.
Скрипт обращается к /var/run/apache2.pid, а не к /var/run/apache2/apache2.pid. Можете ли вы проверить, есть ли у /var/run/apache2.pid права доступа?
Каким-то образом, после создания моих собственных файлов.crt и.key, попробуйте emerge mod_ssl
, который в конечном итоге делал кучу вещей и заново собирал apache, все как-то стало на свои места. У меня нет объяснения, за исключением, может быть, некоторого предыдущего несоответствия с тем, как я создавал свои файлы.crt и.key:/
Это путешествие оставило меня чувствовать себя пустым и неудовлетворенным. Ну, кроме вашей помощи:] Спасибо всем.