Problemas do Apache após atualizar para o Yosemite


8

Meu servidor Web Mac não funcionará após a atualização para o Yosemite. Quando digito apachectlno Terminal, recebo o seguinte:

httpd: Syntax error on line 527 of /private/etc/apache2/httpd.conf: Syntax error on line 8 of /private/etc/apache2/other/+php-osx.conf: Cannot load /usr/local/php5/libphp5.so into server: dlopen(/usr/local/php5/libphp5.so, 10): Symbol not found: _unixd_config\n  Referenced from: /usr/local/php5/libphp5.so\n  Expected in: /usr/sbin/httpd\n in /usr/local/php5/libphp5.so

Se eu digitar sudo apachectl [re]startnada, como se fosse iniciado e digito novamente, ele diz que já está em execução. Além disso, tenho o painel Preferências de compartilhamento na Web instalado ( http://clickontyler.com/web-sharing/ ) e quando pressiono o interruptor de Desligado para Ligado, ele ainda diz que está desligado, mesmo que o interruptor esteja na posição Ligado .

Quais arquivos vocês querem / precisam ver? Realmente precisa corrigir isso o mais rápido possível.

Respostas:


6

Observe também que o instalador do Yosemite substitui o arquivo /private/etc/apache2/httpd.conf inteiro pelo novo arquivo de configuração padrão do Apache 2.4.

Por exemplo, se alguma Listendiretiva foi adicionada, ela desapareceu e precisará ser adicionada novamente. Por exemplo:

Listen 127.0.0.1:81

Encontrei minha configuração antiga no arquivo a seguir, mas devido às diferenças da versão 2.2, ela provavelmente não deve ser copiada diretamente no arquivo http.conf:

/private/etc/apache2/httpd.conf~previous

Há um guia de atualização em: http://httpd.apache.org/docs/2.4/upgrading.html

Verifique se todos os arquivos de configuração extras incluídos anteriormente ainda estão incluídos e teste a configuração com o comando:

sudo apachectl configtest

Como isso responde à pergunta? Você não deve ter de mudar o que php módulo que você está carregando após a atualização Apache ...
AlxVallejo

8

O problema ocorre porque o Yosemite instala a versão mais recente do Apache (2.4), enquanto as versões anteriores do Mac OS X usavam o Apache versão 2.2.

Pelo erro, parece que você não estava usando a versão padrão do PHP fornecida pela Apple, mas uma versão diferente fornecida pelo liip.ch. A remoção do sinal de #, conforme sugerido pela Nuttyx acima, carregará a versão da Apple do php (5.5.14). Se você deseja continuar executando a versão fornecida pelo liip, será necessário reinstalá-la para que ela carregue corretamente no Apache 2.4. Veja uma explicação detalhada aqui: ( http://blog.liip.ch/archive/2014/06/11/php-osx-available-for-os-x-10-10-yosemite.html )

Nota: se você estiver usando hosts virtuais, provavelmente precisará alterar um pouco os arquivos de configuração. Em particular, você precisará alterar o seguinte:

2.2 configuração:

Order allow,deny
Allow from all

2.4 configuração:

Require all granted

4

Parece que você pode corrigir isso removendo o arquivo #no início da seguinte linha /etc/apache2/httpd.conf:

LoadModule php5_module libexec/apache2/libphp5.so

11
Isso fez por mim!
Matthieu Riegler 16/11

1

A execução de 'sudo apachectl' sem argumentos mostra o problema nos arquivos conf. No meu caso, atualizar o php o corrigiu.

curl -s http://php-osx.liip.ch/install.sh | bash -s 5.6

Depois disso, o Apache foi executado novamente, mas tive que reconfigurar os vhosts.


0

Enquanto a pergunta acima foi respondida, há outra possibilidade do mesmo erro como:

/private/etc/apache2/httpd.conf: Cannot load /usr/libexec/apache2/mod_XYZ.so into server: dlopen(/usr/libexec/apache2/mod_XYZ.so, 10): image not found

Isso pode acontecer se você criou um link simbólico que está sendo referido no nome acima e não foi encontrado. Para resolver, crie um link simbólico fornecendo o caminho absoluto para o arquivo real e o mesmo para o nome do arquivo de link simbólico que está sendo fornecido.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.