Apache не остановится / стартует изящно
CentOs 6 64bit работает под управлением Apache 2.2.15-29.el6.centos. Когда я пытаюсь остановить / запустить или перезапустить httpd, появляется сообщение об ошибке. Хвост журнала ошибок находится ниже. Я также заметил, что файл httpd.pid не создается, даже если он настроен в основном файле conf.
Если я установлю selinux на permissive, он будет работать нормально. Я не хочу запускать его с отключенным selinux. Если я удалю файл SSL_Mutex, он запустится.
HTTPD работал нормально, пока я не попытался добавить конфигурацию ssl. Я скопировал файл ssl.conf с рабочего сервера в папку conf.d. Я также скопировал папку sslcert в папку conf. Он содержит сертификаты, ключ, CSR и файл паролей. Я думаю, что проблема связана с контекстом selinux для папки sslcert, которая была скопирована, но я не уверен и не уверен, как это исправить.
Ниже приведен контекст безопасности для папки sslcert после выполнения restorecon -R sslcert
ls -Z
-rw-r--r--. root root system_u:object_r:httpd_config_t:s0 httpd.conf
-rw-r--r--. root root system_u:object_r:httpd_config_t:s0 magic
**drwxr-xr-x. root root system_u:object_r:httpd_config_t:s0 sslcert**
tail -f /var/log/httpd/error_log
[Thu Oct 17 13:33:19 2013] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Thu Oct 17 13:33:20 2013] [notice] Digest: generating secret for digest authentication ...
[Thu Oct 17 13:33:20 2013] [notice] Digest: done
[Thu Oct 17 13:33:20 2013] [warn] pid file /etc/httpd/logs/ssl.pid overwritten -- Unclean shutdown of previous Apache run?
[Thu Oct 17 13:33:20 2013] [notice] Apache/2.2.15 (Unix) DAV/2 mod_ssl/2.2.15 OpenSSL/1.0.0-fips configured -- resuming normal operations
[Thu Oct 17 21:04:48 2013] [notice] caught SIGTERM, shutting down
[Thu Oct 17 21:06:42 2013] [notice] **SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0**
[Thu Oct 17 21:06:42 2013] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Thu Oct 17 21:06:42 2013] [error] (17)File exists: Cannot create SSLMutex with file `/etc/httpd/logs/ssl_mutex'
Я также видел упоминание о возможных проблемах с семафорами. Ниже выводятся текущие семафоры, и apache в данный момент не работает.
ipcs -s
------ Semaphore Arrays --------
key semid owner perms nsems
0x00000000 0 root 600 1
0x00000000 65537 root 600 1
Наконец selinux сообщает о следующей ошибке.
`sealert -a /var/log/audit/audit.log`
0% donetype=AVC msg=audit(1382034755.118:420400): avc: denied { write } for pid=3393 comm="httpd" name="ssl_mutex" dev=dm-0 ino=9513484 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:httpd_log_t:s0 tclass=file
**** Invalid AVC allowed in current policy ***
100% doneERROR: failed to read complete file, 1044649 bytes read out of total 1043317 bytes (/var/log/audit/audit.log)
found 1 alerts in /var/log/audit/audit.log
--------------------------------------------------------------------------------
SELinux is preventing /usr/sbin/httpd from remove_name access on the directory ssl_mutex.
2 ответа
Подобная проблема появилась раньше:
http://www.redhat.com/archives/fedora-selinux-list/2004-December/msg00067.html
Проверьте, чтобы ssl mutex config был таким же, как в ssl.conf по умолчанию.
Надеюсь, поможет.
Если я установлю selinux на permissive, он будет работать нормально. Я не хочу запускать его с отключенным selinux. Если я удалю файл SSL_Mutex, он запустится.
добавить "rm -fv /path/to/apache/ssl_mutex_file" в сценарий инициализации httpd?
[Чт, 17 октября 21:06:42 2013] [error] (17) Файл существует: невозможно создать SSLMutex с файлом `/etc/httpd/logs/ssl_mutex'
отчасти хакерский, но должен работать. я обычно отключаю selinux на не общих серверах.