Estoy ejecutando Apache2 en un Mac OS X (10.5) . Acabo de compilar PHP 5.2.8 y finalmente me puse a pdo-mysql
trabajar (o eso creo).
Este comando de terminal:
php --version
muestra 5.2.8 y tengo los módulos correctos instalados.
Pero, cuando hago un phpinfo()
, Apache descarga PHP 5.2.6 (mi versión anterior, sin pdo_mysql
).
¿Cómo le digo a Apache qué PHP cargar? El httpd.conf
tiene la línea:
LoadModule php5_module libexec/apache2/libphp5.so
Pero, no sé qué o dónde está eso.
¿Es eso lo que tengo que cambiar?
php
apache-2.2
pdo
Sam McAfee
fuente
fuente
Respuestas:
Creo que todas estas respuestas no responden realmente la pregunta. El nivel raíz se puede determinar ejecutando el comando
httpd -V
. Esto le mostrará con qué opciones se construyó el demonio Apache en tiempo de compilación. Esto es lo que controla dóndehttpd
determina dónde buscar su configuración. archivos y módulos .so por defecto.Por ejemplo:
La línea clave en esa salida es el
HTTPD_ROOT
. Eso define dóndeROOT
debe comenzar el directorio de Apache ,/etc/httpd
en mi caso, cuando busco la configuración. archivos y módulos.NOTA: Esto
ROOT
no es lo mismo queDocumentRoot
. EstoROOT
es específico de cómohttpd
se compiló el demonio,DocumentRoot
es para especificar dónde elhttpd
demonio debería comenzar a buscar contenido web real (archivos .html y tal).Para mi
httpd.conf
archivo tengo las siguientes líneas de carga:Dado esto, la ruta completa a sus módulos sería, por ejemplo:
Esto es de un sistema CentOS 5.x pero la técnica aún es apta.
Por cierto, puede ser un poco confuso porque en el caso de CentOS los archivos están organizados físicamente aquí:
... y luego accesible para el demonio Apache
httpd
, a través de esta ruta:El
modules
enlace se conecta/etc/httpd
->/usr/lib/httpd/modules
.fuente
Puede encontrar archivos en su sistema con el
locate
comando:Imprimirá las rutas completas de todos los archivos con ese nombre. Tengo uno a
/usr/libexec/apache2/libphp5.so
.fuente
El directorio principal de los módulos cargados en httpd.conf (como:)
libexec/apache2/libphp5.so
está definido por laServerRoot
directiva que, de manera predeterminada, generalmente se establece en/usr
. No recomendaría cambiar esto, pero puede ser útil para alguien saber exactamente dónde se define esa ruta.El sitio web de Apache dice lo siguiente sobre ServerRoot :
además, los comentarios predeterminados del archivo httpd.conf leen:
ServerRoot: la parte superior del árbol de directorios donde se guardan los archivos de configuración, error y registro del servidor.
fuente
Apache debería estar buscando módulos en "/ usr / libexec / httpd /". Allí encontrará un archivo o un enlace simbólico llamado "libphp5.so". Si es un enlace simbólico, deberá volver a vincular al nuevo 5.2.8 libphp5.so, de lo contrario, simplemente copie el 5.2.8 libphp5.so a "/ usr / libexec / httpd /" y reinicie apache con "sudo apachectl restart" .
fuente
Tenía un Apache y PHP instalado en uno de los servidores. Esto fue instalado por el administrador del sistema anterior. Tanto el Apache como el PHP se cumplieron desde la fuente. Además de esto, había un PHP predeterminado instalado. Para saber qué PHP usa Apache. Ejecuto el siguiente comando
Esto me dio el camino a apache apxs
Esto me dio información sobre qué Apache está siendo utilizado por este php. El php predeterminado dio un error cuando escribí
Entonces de esta manera pude averiguar el php utilizado por Apache.
fuente