Estou executando o Apache2 em um Mac OS X (10.5) . Acabei de compilar o PHP 5.2.8 e finalmente comecei pdo-mysql
a trabalhar (ou assim eu acho).
Este comando de terminal:
php --version
está mostrando 5.2.8 e tenho os módulos corretos instalados.
Mas, quando eu faço um phpinfo()
, o Apache descarta o PHP 5.2.6 (minha versão anterior, sem pdo_mysql
).
Como eu digo ao Apache qual PHP carregar? O httpd.conf
tem a linha:
LoadModule php5_module libexec/apache2/libphp5.so
Mas, eu não sei o que ou onde isso é.
É isso que eu tenho que mudar?
Eu acho que todas essas respostas não estão realmente respondendo à pergunta. O nível raiz pode ser determinado executando o comando
httpd -V
. Isso mostrará com quais opções o daemon do Apache foi construído em tempo de compilação. Isto é o que controla ondehttpd
determina onde procurar por sua configuração. arquivos e módulos .so por padrão.Por exemplo:
A linha chave nessa saída é o arquivo
HTTPD_ROOT
. Isso define onde oROOT
diretório do Apache deve iniciar,/etc/httpd
no meu caso, ao procurar por config. arquivos e módulos.NOTA: Isso
ROOT
não é a mesma coisa queDocumentRoot
. IssoROOT
é específico para como ohttpd
daemon foi compilado,DocumentRoot
é para especificar onde ohttpd
daemon deve começar a procurar o conteúdo real da web (arquivos .html e outros).Para o meu
httpd.conf
arquivo, tenho as seguintes linhas de carga:Dado isso, o caminho completo para seus módulos seria, por exemplo:
Isto é de um sistema CentOS 5.x , mas a técnica ainda está apta.
BTW, pode ficar um pouco confuso porque no caso do CentOS os arquivos são organizados fisicamente aqui:
... e então acessível ao daemon Apache,
httpd
, através deste caminho:O
modules
link conecta/etc/httpd
-->/usr/lib/httpd/modules
.Você pode encontrar arquivos em seu sistema com o
locate
comando:Ele imprimirá os caminhos completos de todos os arquivos com esse nome. Eu tenho um em
/usr/libexec/apache2/libphp5.so
.O diretório pai dos módulos carregados em httpd.conf (como:
libexec/apache2/libphp5.so
) é definido pelaServerRoot
diretiva que, por padrão, é normalmente definida como/usr
. Eu não recomendaria mudar isso, mas pode ser útil para alguém saber exatamente onde exatamente esse caminho está definido.O site do Apache diz o seguinte sobre ServerRoot :
além disso, os comentários padrão do arquivo httpd.conf são:
ServerRoot: A parte superior da árvore de diretórios sob a qual são mantidos os arquivos de configuração, erro e log do servidor.
O Apache deve estar procurando por módulos em "/usr/libexec/httpd/". Lá você encontrará um arquivo ou link simbólico chamado "libphp5.so". Se for um link simbólico, você precisará vincular novamente ao novo 5.2.8 libphp5.so, caso contrário, apenas copie o 5.2.8 libphp5.so para "/usr/libexec/httpd/" e reinicie o apache com "sudo apachectl restart" .
Eu tinha um Apache e PHP instalado em um dos servidores. Isso foi instalado pelo administrador de sistema anterior. Tanto o Apache quanto o PHP foram compatíveis com a fonte. Além disso, havia um PHP padrão instalado. Então para saber qual PHP é usado pelo Apache. eu executo o comando abaixo
Isso me deu o caminho para apxs do apache
Isso me deu informações sobre qual Apache está sendo usado por este php. O php padrão deu erro quando digitei
Dessa forma, consegui descobrir o php usado pelo Apache.