Percebi que há uma falta de correspondência entre a versão PHP relatada por phpinfo()
e php -v
(na CLI).
phpinfo(): 5.5.24
php -v: 5.6.9
Estou trabalhando no Mac OS X 10.10 (Yosemite) e instalei uma biblioteca ( php-version
) para tentar gerenciar as versões do PHP.
Ele me relata três versões diferentes instaladas no meu laptop:
5.4.41
5.5.25
* 5.6.9
Gostaria de definir a mesma versão do PHP no Apache e na CLI.
Como posso dizer ao Apache qual versão do PHP usa?
Eu tentei escrever esta linha no meu httpd.conf
:
LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so
Então:
sudo apachectl restart
Mas tudo isso não resolve o problema… Nas minhas informações em PHP ainda tenho: 5.5.24
apache-http-server
php
Salvatore Dibenedetto
fonte
fonte
Respostas:
Aqui estão alguns problemas diferentes, todos escondidos sob o conceito de confusão da versão do PHP, portanto, tentaremos abordar cada um o mais claramente possível. Primeiro isso:
A CLI do PHP não é igual ao módulo PHP Apache.
Como explico na resposta a essa outra pergunta aqui , não entre em pânico! Se você está preocupado com a versão do PHP que o servidor Apache está usando, a saída de
phpinfo()
é sempre o que você deve prestar atenção. O módulo PHP Apache e o binário da linha de comando PHP são duas coisas diferentes que não interferem uma na outra.Preste atenção à saída de
phpinfo()
se você estiver preocupado em definir a versão correta do módulo PHP no Apache.Dito isto, você ainda parece ter problemas para carregar o módulo PHP correto no Apache:
Verifique se o servidor Apache está carregando o módulo PHP correto.
Enquanto o que você fez tecnicamente parece estar correto, a única razão pela qual vejo isso não funcionar é que, de alguma forma, há outra
LoadModule php5_module
diretiva nos arquivos de configuração do Apache que está substituindo o valor que você está definindo nessa linha.Eu recomendaria examinar o
httpd.conf
- que eu suponho que esteja localizado aqui/etc/apache2/httpd.conf
- e ver se talvez exista outroLoadModule php5_module
que você tenha perdido ou não percebeu ao editar esse arquivo. Observando meu arquivo equivalente no Mac OS X 10.9.5, vejo que a linha está comentada - já que não uso as configurações Apache / PHP do Mac OS X - e lê algo como isto:Claro que no seu caso seria descomentado. Mais detalhes sobre a configuração do Apache e PHP para desenvolvimento web podem ser encontrados neste site .
Considere seriamente o uso do MAMP como uma alternativa às peculiaridades do Mac OS X Apache / PHP.
Agora tudo isso dito, eu não sei o que você está tentando fazer, mas se você estiver desenvolvendo a Web em um sistema Mac OS X, considere seriamente usar o MAMP em vez de invadir a pilha da Web principal do Mac OS X para obter as coisas corrida.
O benefício do MAMP é um nível de produção extremamente equivalente ao Mac OS X de uma pilha LAMP. E como é voltado para o desenvolvimento da Web no mundo real, ele possui todos os módulos e configurações exatamente como se deve configurá-los.
O principal problema do Apache e PHP no Mac OS X é que o software normalmente está desatualizado, uma dor para configurar / ajustar e gerenciar e uma dor de cabeça para depurar quando coisas assim acontecem. E se surgir uma atualização do Mac OS X que elimine suas configurações cuidadosamente Apache e PHP? Você voltou à estaca zero.
fonte
Encontrei a solução para o meu problema. Após a edição,
/etc/apache2/httpd.conf
eu costumava reiniciar o apache usando:Por alguma razão, usando este comando, o Apache não buscava as atualizações
httpd.conf
e carregava a configuração antiga.Usando:
Faça uma espécie de reinicialização total de todos os serviços e também leia as atualizações no arquivo de configuração e, finalmente, leia o novo caminho para
php5_module
:Agradeço também a @JakeGould por sua explicação .
fonte
-k
sinalizador dosapachectl
comandos, pois se você verificarapachectl -h
que o sinalizador / opção não existe lá. Não faço ideia de onde você tirou isso. Além disso, enquanto você declara fazerstop
estart
esclarecer as coisas, o mais estranho é querestart
nos sistemas Linux faz exatamente isso. Se você verificar o script localizado em/usr/sbin/apachectl
(é um script, use qualquer editor de texto para visualizá-lo), ele parece fazer exatamente isso também. Talvez no Mac OS X oLaunchDaemons
Apache seja apenas “estranho” quando comparado ao Linux padrão? Enfim, ótimo que você resolveu isso./usr/sbin/apachectl
(sem nenhum comando) e afirma claramente[-k start|restart|graceful|graceful-stop|stop]
,. Estou tão acostumado com a maneira como o Apache funciona nos sistemas Linux agora parece que eu esqueci a-k
bandeira para usar comapachectl
comandos. Portanto, sabendo que o verdadeiro problema que você teve é que você estava tentando reiniciar com este comandosudo apachectl restart
quando deveria ter o-k
sinalizador adicionado dessa maneirasudo apachectl -k restart
.