Me di cuenta de que hay una coincidencia errónea entre la versión PHP informada por phpinfo()
y php -v
(en la CLI).
phpinfo(): 5.5.24
php -v: 5.6.9
Estoy trabajando en un Mac OS X 10.10 (Yosemite) e instalé una biblioteca ( php-version
) para tratar de administrar las versiones de PHP.
Me informa 3 versiones diferentes instaladas en mi computadora portátil:
5.4.41
5.5.25
* 5.6.9
Me gustaría configurar la misma versión de PHP tanto en Apache como en CLI.
¿Cómo puedo decirle a Apache qué versión de PHP usa?
Traté de escribir esta línea en mi httpd.conf
:
LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so
Luego:
sudo apachectl restart
Pero todo esto no resuelve el problema ... En mi información de PHP todavía tengo: 5.5.24
apache-http-server
php
Salvatore Dibenedetto
fuente
fuente
Respuestas:
Aquí hay algunos problemas diferentes que se esconden bajo el concepto de confusión de la versión de PHP, por lo que intentaremos abordar cada uno de ellos lo más claramente posible. Primero esto:
PHP CLI no es lo mismo que el módulo PHP Apache.
Como explico en la respuesta a esta otra pregunta aquí , ¡no se asuste! Si le preocupa qué versión de PHP está utilizando su servidor Apache,
phpinfo()
siempre debe prestar atención a la salida de . El módulo PHP Apache y el binario de línea de comando PHP son dos cosas diferentes que no interfieren entre sí.Solo preste atención a la salida de
phpinfo()
si le preocupa configurar la versión correcta del módulo PHP en Apache.Dicho esto, todavía parece tener problemas para cargar el módulo PHP correcto en Apache:
Asegúrese de que su servidor Apache esté cargando el módulo PHP correcto.
Si bien lo que hiciste técnicamente parece ser correcto, la única razón por la que puedo ver que esto no funciona es que de alguna manera hay otra
LoadModule php5_module
directiva en los archivos de configuración de Apache que reemplaza el valor que estás configurando en esa línea.Recomendaría mirar a través de
httpd.conf
, que supongo que se encuentra aquí,/etc/apache2/httpd.conf
y ver si tal vez hay alguna otraLoadModule php5_module
que te perdiste o no notaste al editar ese archivo. Al mirar mi archivo equivalente en Mac OS X 10.9.5, veo que la línea está comentada, ya que no uso las configuraciones Apache / PHP de Mac OS X, y lee algo como esto:Por supuesto, en su caso sería sin comentarios. Puede encontrar más detalles sobre la configuración de Apache y PHP para el desarrollo web en este sitio .
Considere seriamente el uso de MAMP como una alternativa a las peculiaridades de Mac OS X Apache / PHP.
Ahora todo lo dicho, no sé lo que está intentando hacer, pero si está haciendo desarrollo web en un sistema Mac OS X, debería considerar seriamente usar MAMP en lugar de piratear la pila web central de Mac OS X para obtener cosas corriendo.
El beneficio de MAMP es que es un nivel de producción de Mac OS X equivalente a una pila LAMP. Y dado que está orientado al desarrollo web del mundo real, tiene todos los módulos y configuraciones configurados exactamente como uno debería tenerlos configurados.
El problema central con Apache y PHP en Mac OS X es que el software generalmente está desactualizado, un problema para configurar / ajustar y administrar y un dolor de cabeza para depurar cuando sucede cosas como esta. ¿Y qué pasa si aparece una actualización de Mac OS X que borra la configuración cuidadosamente de Apache y PHP? Has vuelto al punto de partida.
fuente
Encontré la solución a mi problema. Después de editar
/etc/apache2/httpd.conf
, solía reiniciar Apache usando:Por alguna razón, al usar este comando, Apache no buscará las actualizaciones en el
httpd.conf
y cargará la configuración anterior.Utilizando:
Realice una especie de reinicio completo de todos los servicios y también lea las actualizaciones en el archivo de configuración y finalmente lea la nueva ruta para
php5_module
:Gracias también @JakeGould por su explicación .
fuente
-k
bandera de losapachectl
comandos ya que si marcaapachectl -h
esa bandera / opción no existe allí. No tengo idea de dónde sacaste eso. Además, mientras declaras hacerstop
ystart
aclaraste las cosas, lo extraño es querestart
en los sistemas Linux hace exactamente eso. Si marca la secuencia de comandos ubicada en/usr/sbin/apachectl
(es una secuencia de comandos, use cualquier editor de texto para ver) parece que también hace exactamente eso. ¿Quizás en Mac OS XLaunchDaemons
para Apache es simplemente "extraño" en comparación con Linux estándar? De todos modos, genial resolviste esto./usr/sbin/apachectl
(sin ningún orden) y se dice claramente,[-k start|restart|graceful|graceful-stop|stop]
. Estoy tan acostumbrado a la forma en que Apache funciona en los sistemas Linux ahora parece que olvidé la-k
bandera para usar conapachectl
comandos. Entonces, sabiendo que el verdadero problema que tenía es que intentaba reiniciar con este comandosudo apachectl restart
cuando debería haber-k
agregado la bandera de esta manerasudo apachectl -k restart
.