Вопрос или проблема
Я использую Oracle Linux 7.8 на HVM ec2 экземпляре (t3.micro). Я установил последнюю версию HTTPD из репозитория CodeIT (2.4.43) и сделал базовую настройку httpd.conf, с одним определением VirtualHost, пока что.
Когда я запускаю:
[oracle@nits-idp ~]$ sudo systemctl start httpd.service
Я получаю:
Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.
Итак, я запускаю:
[oracle@nits-idp ~]$ sudo systemctl status -l httpd.service
И получаю:
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Sun 2020-07-26 19:47:14 EDT; 2min 6s ago
Docs: man:httpd.service(8)
Process: 6000 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
Main PID: 6000 (code=exited, status=1/FAILURE)
Status: "Reading configuration..."
Jul 26 19:47:14 nits-idp.nitssolutions.com systemd[1]: Starting The Apache HTTP Server...
Jul 26 19:47:14 nits-idp.nitssolutions.com systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Jul 26 19:47:14 nits-idp.nitssolutions.com systemd[1]: Failed to start The Apache HTTP Server.
Jul 26 19:47:14 nits-idp.nitssolutions.com systemd[1]: Unit httpd.service entered failed state.
Jul 26 19:47:14 nits-idp.nitssolutions.com systemd[1]: httpd.service failed.
И, наконец:
[oracle@nits-idp ~]$ sudo journalctl -xe
Возвращает:
Jul 26 19:49:20 nits-idp.nitssolutions.com sudo[6107]: pam_unix(sudo:session): session opened for user root by orac
Jul 26 19:49:20 nits-idp.nitssolutions.com sudo[6107]: pam_unix(sudo:session): session closed for user root
Jul 26 19:50:01 nits-idp.nitssolutions.com systemd[1]: Created slice User Slice of root.
-- Subject: Unit user-0.slice has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit user-0.slice has finished starting up.
--
-- The start-up result is done.
Jul 26 19:50:01 nits-idp.nitssolutions.com systemd[1]: Started Session 10 of user root.
-- Subject: Unit session-10.scope has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit session-10.scope has finished starting up.
--
-- The start-up result is done.
Jul 26 19:50:01 nits-idp.nitssolutions.com CROND[6143]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Jul 26 19:50:01 nits-idp.nitssolutions.com systemd[1]: Removed slice User Slice of root.
-- Subject: Unit user-0.slice has finished shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit user-0.slice has finished shutting down.
Jul 26 19:50:41 nits-idp.nitssolutions.com sudo[6183]: oracle : TTY=pts/0 ; PWD=/home/oracle ; USER=root ; COMMAN
Jul 26 19:50:41 nits-idp.nitssolutions.com sudo[6183]: pam_unix(sudo:session): session opened for user root by orac
lines 2615-2641/2641 (END)
Таким образом, просматривая это, я не вижу фактической ошибки. Я не знаю, как это исправить, потому что я не знаю, в чем проблема.
Помогите?
Я обновлял сертификаты и получил ту же ошибку.
После некоторых трудностей (и взгляда на комментарий самого автора вопроса, решившего проблему самостоятельно), я нашел больше информации, изучив var/log/httpd/ssl_error_log
. (Для меня это заняло sudo cat var/log/httpd/ssl_error_log
, но я не претендую, что я в этом ас.)
Там я обнаружил, что сертификат и закрытый ключ не совпадают. Проблема заключалась в том, что я назвал мой закрытый ключ иначе, чем в прошлый раз (перемещаясь от проверки домена к проверке организации), и я случайно пропустил шаг обновления директивы SSLCertificateKeyFile
в /etc/httpd/conf.d/ssl.conf
на новое имя ключа.
Ответ или решение
Запуск Apache HTTPD на Oracle Linux 7.8 иногда может вызывать затруднения из-за отсутствия явных сообщений об ошибках. Давайте разберем шаги для решения этой проблемы, используя приведенную информацию и учтя возможный контекст.
Анализ проблемы и пути решения
-
Просмотр журнала ошибок:
Первым шагом является более детальный анализ журналов ошибок. Как указано в проблеме, журнал общего назначенияjournalctl -xe
не предоставляет достаточной информации. Вместо этого воспользуйтесь специфическими логами Apache:sudo cat /var/log/httpd/error_log sudo cat /var/log/httpd/ssl_error_log
В данных файлах вы можете найти более подробные сообщения, которые помогут идентифицировать конкретную причину ошибки.
-
Проверка конфигурационных файлов:
Ошибки часто связаны с синтаксическими ошибками вhttpd.conf
илиssl.conf
. Особое внимание уделите директивам, связанным с виртуальными хостами и SSL-настройками (например,SSLCertificateFile
иSSLCertificateKeyFile
). Убедитесь, что пути к сертификатам и ключам правильные и совпадают между собой. -
Соответствие сертификатов и ключей:
Убедитесь, что SSL-сертификат и соответствующий ему приватный ключ действительно парные. Неиспользование подходящего ключа для сертификата может привести к ошибкам. Проверить соответствие можно с помощью таких инструментов, как OpenSSL:openssl x509 -noout -modulus -in /path/to/certificate.crt | openssl md5 openssl rsa -noout -modulus -in /path/to/private.key | openssl md5
Значения хэш-сумм должны совпадать.
-
Авторизация и права пользователей:
Проверьте, под каким пользователем запускается процесс Apache. Пользователь должен иметь права на чтение всех конфигурационных файлов и сертификатов. Убедитесь, что директория и файлы имеют соответствующие права доступа. -
Поддержка и документация:
Если проблема не решена, полезно обратиться к документации по Apache или поискать в специализированных форумах. Обсуждения ви различным URL-м могут предоставить готовые решения для аналогичных сценариев.
Заключение
Решение проблем с запуском Apache HTTPD требует системного подхода и внимания к деталям. Предоставленные инструменты и советы должны помочь устранить текущие проблемы и обеспечить стабильную работу сервера.