Sites do OS X Server interferindo no Apache padrão

0

Eu tive o servidor Mac Apache padrão em execução e tudo estava funcionando bem. Mas eu também precisava do OS X Server para automação de teste de unidade Xcode e serviços DNS, então eu o instalei hoje.

Desde a instalação do OS X Server, no entanto, o Apache parou de funcionar. http://127.0.0.1 tornou-se inacessível, assim como http://localhost , mesmo que o serviço de Websites tenha sido ativado no OS X Server.

Verificando o log de erros, vejo isto:

[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

Portanto, aparentemente, há um erro ao inicializar o módulo mod_ssl . Agora, no padrão httpd.conf in /etc/apache2/ , mod_ssl não estava ativo em primeiro lugar (e ainda não, verifiquei), então, aparentemente, o OS X Server está iniciando uma instância diferente do Apache que o habitual.

Verificando which apachectl , no entanto, ainda recebo o usual /usr/sbin/apachectl , mas ao fazer um /usr/sbin/apachectl restart , um novo lote das mesmas mensagens de erro aparece no log de erros do Apache.

Eu tentei desativar os Websites no OS X Server e, em seguida, iniciei o apachectl, mas a luz verde aparece no OS X Server, então o OS X Server e o apachectl agora estão se referindo à mesma instância do Apache.

O que eu estou querendo saber é o seguinte: Como posso executar a versão padrão anterior do OS X do Apache sem desinstalar o OS X Server?

Eu tentei desinstalar o OS X Server e, depois de fazer isso, o Apache imediatamente começou a trabalhar novamente e parou novamente assim que eu reinstalei o servidor. Muito obrigado antecipadamente.

EDIT: No log de erros, ele diz que a frase secreta da chave está incorreta. No entanto, não há frase secreta para a chave ou o certificado.

    
por arik-so 22.08.2014 / 20:45

1 resposta

1

Você pode ler o código-fonte de /usr/sbin/apachectl .

apachectl start/restart/stop chamadas launchctl load -w $LAUNCHD_JOB , e o trabalho é uma configuração do plist de inicialização /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>

O trabalho chama httpd-wrapper com o arquivo /Library/Server/Web/Config/apache2/httpd_server_app.conf config.

Portanto, a solução é chamar sudo apachctl sem nenhum parâmetro, que chamará httpd com o arquivo de configuração padrão ( /etc/apache2/httpd.conf ).

    
por 01.05.2015 / 04:57