Por que o compartilhamento na Web está quebrado no meu Mac?

2

Antecedentes:

Eu uso meu Mac para desenvolvimento na Web, executando cópias de sites da Web localmente. Eu instalei recentemente a atualização do Snow Leopard, que para todos os efeitos parece ter corrido bem, exceto ...

O que não está funcionando?

compartilhamento na Web; mais especificamente, não consigo ativá-lo por meio de preferências. O painel de preferências apenas trava quando tento.

Portanto, o Apache não inicia na reinicialização. Eu posso iniciar o Apache manualmente, mas não sei o suficiente para configurar o apache para iniciar com o computador ou para corrigir adequadamente o compartilhamento na Web.

Mais detalhes

Meu log de erros do Apache não mostra nada quando o sistema é inicializado (como seria de se esperar).

Esta é a mensagem de erro quando tento iniciar o compartilhamento na Web a partir do painel de preferências de compartilhamento.

28/09/2009 10:58:05 System Preferences[834] setInetDServiceEnabled failed with 1 for org.apache.httpd

Aqui estão as mensagens dadas quando eu inicio o apache a partir da linha de comando.

[Mon Sep 28 10:35:53 2009] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
[Mon Sep 28 10:35:54 2009] [warn] mod_bonjour: Skipping user 'sams' - index file /Users/sams/Sites/index.html has zero length.
[Mon Sep 28 10:35:54 2009] [notice] Digest: generating secret for digest authentication ...
[Mon Sep 28 10:35:54 2009] [notice] Digest: done
[Mon Sep 28 10:35:54 2009] [notice] Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8k DAV/2 PHP/5.3.0 Phusion_Passenger/2.2.5 configured -- resuming normal operations

Por favor, deixe-me saber se você precisar de mais detalhes sobre isso.

Qualquer ajuda seria muito apreciada.

UPDATE

Eu adicionei uma resposta minha abaixo - eu pude resolvê-lo graças a ser apontado na direção certa pelos comentários abaixo, então muito obrigado. Mas ainda não estou totalmente claro sobre o que causou o problema ou como a minha solução resolveu o problema, por isso deixo a questão em aberto por enquanto.

    
por Sam Murray-Sutton 25.09.2009 / 13:38

2 respostas

2

É um pouco dos dois. O sinalizador desativado (removido quando launchctl load -w /PATH/TO/PLIST é executado - é executado automaticamente quando você cancela o "Compartilhamento da Web" no Painel de Preferências de Compartilhamento) diz que não deve ser executado. No entanto, devido a essa linha estar fora do dict, ela aparece como um arquivo malformado. Coloque de volta para o com os valores anteriores ou exclua todos juntos (veja abaixo).

Um exemplo de trabalho (mas desativado) .plist do Snow Leopard

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Disabled</key>
    <true/>
    <key>Label</key>
    <string>org.apache.httpd</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/sbin/httpd</string>
        <string>-D</string>
        <string>FOREGROUND</string>
    </array>
    <key>OnDemand</key>
    <false/>
    <key>SHAuthorizationRight</key>
    <string>system.preferences</string>
</dict>
</plist>
    
por 29.09.2009 / 18:03
1

Por favor, sinta-se à vontade para adicionar alguma clareza à seguinte resposta. Eu não sou especialmente techincal, então a maioria da minha solução envolve o hacking entre os dois arquivos. :)

Seguindo as mensagens de erro acima, verifiquei o arquivo org.apache.httpd.plist. Eu verifiquei o arquivo plist antes de instalar o Snow Leopard. Os arquivos diferiam nestes pontos:

Configuração do Snow Leopard (não funciona)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Disabled</key>
    <true/>
    <key>Label</key>
    <string>org.apache.httpd</string>
    <key>EnvironmentVariables</key>
   <dict>
     <key>PATH</key>
   </dict>
     <string>/opt/local/bin:/usr/local/mysql/bin</string>
    <key>ProgramArguments</key>
    <array>

Configuração anterior (Works)

<?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>EnvironmentVariables</key>
    <dict>
        <key>PATH</key>
        <string>/opt/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
    </dict>
    <key>KeepAlive</key>
    <false/>
    <key>Label</key>
    <string>org.apache.httpd</string>
    <key>OnDemand</key>
    <false/>
    <key>ProgramArguments</key>

Parece haver 3 problemas aqui:

O seguinte - eu presumo desativa httpd? Ou o arquivo. Não totalmente certo.

<key>Disabled</key>
<true/>

Esta próxima linha é diferente, então estou assumindo que ela aponta para o local errado.

<string>/opt/local/bin:/usr/local/mysql/bin</string>

e todo esse bloco parece não estar formatado corretamente - ou seja, o elemento string deve estar dentro do bloco dict.

   <dict>
     <key>PATH</key>
   </dict>
     <string>/opt/local/bin:/usr/local/mysql/bin</string>

Então, poderia ser qualquer um desses. Eu queria ter entendido melhor, mas pelo menos está funcionando agora.

    
por 28.09.2009 / 13:34