У меня был установлен сервер Mac Apache по умолчанию, и все работало нормально. Но мне также понадобился OS X Server для автоматизации модульного тестирования Xcode и службы DNS, поэтому я установил его сегодня.

Однако после установки OS X Server Apache перестал работать. http://127.0.0.1 стал недоступен, так же как и http://localhost , несмотря на то, что в OS X Server была активирована служба веб-сайтов.

Проверяя журнал ошибок, я вижу это:

[Fri Aug 22 20:22:38.678378 2014] [ssl:emerg] [pid 636] AH02580: Init: Pass phrase incorrect for key ::1:443:0
[Fri Aug 22 20:22:38.678753 2014] [ssl:emerg] [pid 636] SSL Library Error: error:0D094068:asn1 encoding routines:d2i_ASN1_SET:bad tag
[Fri Aug 22 20:22:38.678775 2014] [ssl:emerg] [pid 636] SSL Library Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Fri Aug 22 20:22:38.678798 2014] [ssl:emerg] [pid 636] SSL Library Error: error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error (Type=RSA)
[Fri Aug 22 20:22:38.678817 2014] [ssl:emerg] [pid 636] SSL Library Error: error:0D09A00D:asn1 encoding routines:d2i_PrivateKey:ASN1 lib
[Fri Aug 22 20:22:38.678831 2014] [ssl:emerg] [pid 636] AH02311: Fatal error initialising mod_ssl, exiting. See /var/log/apache2/error_log for more information
[Fri Aug 22 20:22:38.678840 2014] [ssl:emerg] [pid 636] AH02564: Failed to configure encrypted (?) private key ::1:443:0, check /etc/certificates/[...].key.pem
AH00016: Configuration Failed

Таким образом, очевидно, что при инициализации модуля mod_ssl произошла ошибка. Теперь дело в том, что в httpd.conf по умолчанию в /etc/apache2/ , mod_ssl не был активен в первую очередь (и до сих пор нет, я проверял), поэтому, очевидно, OS X Server запускает другой экземпляр Apache, чем обычно.

Однако, проверяя, which apachectl , я по-прежнему получаю обычный /usr/sbin/apachectl , но при /usr/sbin/apachectl restart в журнале ошибок Apache появляется новая партия с такими же сообщениями об ошибках.

Я пытаюсь деактивировать веб-сайты в OS X Server, а затем запустить apachectl, но затем в OS X Server появляется зеленый свет, поэтому ясно, что OS X Server и apachectl теперь ссылаются на один и тот же экземпляр Apache.

Что меня интересует, так это: Как я могу запустить предыдущую версию Apache для OS X по умолчанию, не удаляя OS X Server?

Я попытался удалить OS X Server, и после этого Apache сразу же снова начал работать, а затем снова остановился после переустановки Server. Большое спасибо заранее.

РЕДАКТИРОВАТЬ: В журнале ошибок там говорится, что пароль для ключа неверен. Тем не менее, нет ни ключевой фразы ни для ключа, ни для сертификата.

1 ответ1

1

Вы можете прочитать исходный код /usr/sbin/apachectl .

apachectl start/restart/stop вызывает launchctl load -w $LAUNCHD_JOB и задание представляет собой конфигурацию plist для запуска /System/Library/LaunchDaemon/org.apache.httpd.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Disabled</key>
    <true/>
    <key>EnvironmentVariables</key>
    <dict>
        <key>SERVER_INSTALL_PATH_PREFIX</key>
        <string>/Applications/Server.app/Contents/ServerRoot</string>
        <key>XPC_SERVICES_UNAVAILABLE</key>
        <string>1</string>
    </dict>
    <key>Label</key>
    <string>org.apache.httpd</string>
    <key>OnDemand</key>
    <false/>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/sbin/httpd-wrapper</string>
        <string>-D</string>
        <string>FOREGROUND</string>
        <string>-f</string>
        <string>/Library/Server/Web/Config/apache2/httpd_server_app.conf</string>
        <string>-D</string>
        <string>WEBSERVICE_ON</string>
    </array>
</dict>
</plist>

Задание вызывает httpd-wrapper с файлом конфигурации /Library/Server/Web/Config/apache2/httpd_server_app.conf .

Поэтому решение состоит в том, чтобы вызвать sudo apachctl без каких-либо параметров, что вызовет httpd с файлом конфигурации по умолчанию (/etc/apache2/httpd.conf).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .