Estou executando o Apache2 em um Mac OS X (10.5) . Acabei de compilar o PHP 5.2.8 e finalmente comecei a pdo-mysql
trabalhar (ou pelo menos acho).
Este comando do terminal:
php --version
está mostrando 5.2.8 e eu tenho os módulos certos instalados.
Mas, quando eu faço isso phpinfo()
, o Apache despeja 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 não sei o que ou onde é isso.
É isso que eu tenho que mudar?
php
apache-2.2
pdo
Sam McAfee
fonte
fonte
Respostas:
Eu acho que todas essas respostas não estão realmente respondendo à pergunta. O nível de raiz pode ser determinado pela execução do comando
httpd -V
. Isso mostrará as opções com as quais o daemon Apache foi construído no momento da compilação. Isto é o que controla ondehttpd
determina onde procurar sua configuração. arquivos e módulos .so por padrão.Por exemplo:
A linha principal nessa saída é a
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 é o mesmo queDocumentRoot
. IssoROOT
é específico de 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:
Isso é de um sistema CentOS 5.x , mas a técnica ainda é adequada.
BTW, pode ficar um pouco confuso porque no caso do CentOS os arquivos são organizados fisicamente aqui:
... e acessível ao daemon Apache
httpd
, através deste caminho:O
modules
link conecta/etc/httpd
->/usr/lib/httpd/modules
.fonte
Você pode encontrar arquivos no seu sistema com o
locate
comando:Ele imprimirá os caminhos completos de todos os arquivos com esse nome. Eu tenho um
/usr/libexec/apache2/libphp5.so
.fonte
O diretório pai dos módulos carregados no httpd.conf (como:)
libexec/apache2/libphp5.so
é definido pelaServerRoot
diretiva que, por padrão, é normalmente definida/usr
. Eu não recomendaria alterar isso, mas pode ser útil para alguém saber exatamente onde exatamente esse caminho está definido.O site da Apache diz o seguinte sobre o 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 os arquivos de configuração, erro e log do servidor são mantidos.
fonte
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, será necessário vincular novamente ao novo 5.2.8 libphp5.so; caso contrário, basta copiar o 5.2.8 libphp5.so para "/ usr / libexec / httpd /" e reiniciar o apache com "sudo apachectl restart" .
fonte
Eu tinha um Apache e PHP instalados em um dos servidores. Isso foi instalado pelo administrador do sistema anterior. O Apache e o PHP foram cumpridos a partir da 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 o apache apxs
Isso me deu informações sobre qual Apache está sendo usado por este php. O php padrão deu erro quando eu digitei
Então, dessa maneira, eu consegui descobrir o php usado pelo Apache.
fonte