2012-07-22 68 views
7

Intento actualizar mi php de 5.3.13 a 5.4.5 He descargado manualmente los códigos fuente de php 5.4.5 y ./configure, luego sudo make install it.phpinfo y php -v muestran una versión diferente en lion

después de eso, corro

php -v 

se nota 5.4.5, mientras corro

<?php phpinfo(); ?> 

se nota 5.3.13. ¿cuál es el problema aquí y cómo solucionarlo? gracias

+0

¿Estás Asegúrese de que la biblioteca que su servidor web (por ejemplo, Apache) es el más nuevo? ¿O intenta reiniciar el servicio? (No sé Apple, pero creo que es bastante similar) –

+0

¿Y usa Homebrew o MacPorts? –

+0

@AlvinWong Sí, reinicié el servicio. – fengd

Respuesta

7

Esto es un poco una respuesta adivinar ya que no tengo un mac, pero basado en mi experiencia Winodws esto solo podría suceder si tienes 2 ejecutables php y tu CLI está usando uno y Apache está usando el otro .

En su salida phpinfo() busque la fila de la tabla Loaded Configuration File.

Estoy en Windows, así que el mío dice C:\server\php\5.4.3\php.ini pero, por supuesto, el suyo será diferente.

Si esta no es la ruta que espera utilizar, entonces deberá asegurarse de cambiar la ruta en el archivo httpd.conf de Apache.

Una vez que haya encontrado el archivo httpd.conf encontrar la línea: PHPIniDir

Cuando haya encontrado esta línea asegúrese de que está señalando en el directorio correcto para el archivo php.ini y reiniciar Apache.

También diría que para verificar la línea LoadModule php5_module también está apuntando al archivo correcto, pero es probable que esto esté bien si estuviera usando php 5.3 antes.

Esta respuesta supone que ha instalado la nueva versión de php en un directorio diferente, pero esto es todo lo que puedo pensar con la información que ha proporcionado.

+0

Tengo su idea, pero el problema es cómo solucionarlo. por ejemplo, cómo instalar el último php como módulo de Apache. – fengd

5

Creo que vine del mismo problema. Estoy usando OSX lion y estaba instalando PHP sin brew o el puerto simplemente estaba usando PHP que venía con la máquina.

Necesitaba instalar el módulo mcrypt al php actual que estoy usando (en ese momento no me di cuenta de que había 2 versiones de PHP en mi máquina, y olvidé cómo lo instalé), entonces instale homebrew y luego instale mcrypt usando brew. Después de la instalación, abro mi navegador y, a través de phpinfo(), descubrí que la versión de PHP es diferente con la que instalé el módulo mcrypt, por lo que no puedo hacer que el módulo funcione.

Esto es lo que se mostró en el terminal:

Windo-MBP:~ herwindoartono$ php --version 
PHP 5.3.23 (cli) (built: May 4 2013 06:43:49) 

y desde el navegador (Apache local), mediante la apertura de una página PHP contienen phpinfo(); mostrando la versión de PHP 5.3.15 .. No sé cómo terminé con una versión diferente en mi máquina, así que busco y busco soluciones y encontré una:

Cambiando una línea en httpd.conf debe cambiar la versión de PHP que estoy usando

Esto es cómo cambiar la versión de PHP para usar, base en mi experiencia:

  • Editar httpd.conf, escribiendo en el terminal: sudo subl /etc/apache2/httpd.conf nota : subl es para texto sublime 2, de lo contrario puede usar nano.
  • línea Búsqueda LoadModule php5_module libexec/apache2/libphp5.so, comentar que
  • Añadir debajo de esa línea: LoadModule php5_module /usr/local/opt/php53/libexec/apache2/libphp5.so, para su caso acaba de cambiar el php53 a php54.
  • Reinicie apache mediante el terminal: sudo apachectl restart
  • Pruebe phpinfo() en el navegador, y aparecerá con la versión que tenía la intención de usar.

Referencia: https://github.com/josegonzalez/homebrew-php/issues/448

no tengo mucha experiencia en PHP, pero espero que esto se puede resolver su (o todos los demás) problema.

+0

me funciona. ¡Gracias! – ucheng

1

Tuve una situación similar, fue causada por diferentes versiones de instalación de php a lo largo del tiempo y la ruta de búsqueda no actualizada en Linux.

Investigar a través de echo $PATH.

de salida, por ejemplo: /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

En mi caso la versión anterior 5.5.9 estaba en una ruta de instalación referenciada antes de la nueva versión 5.5.22. 5.5.9 se instaló en /usr/local/bin/ y 5.5.22 en /usr/bin/.

Realice la adaptación desplazando la carpeta correcta a la incorrecta o, mejor aún, desinstale la versión anterior de php.

1

que estaba enfrentando el mismo problema en Ubuntu 14.04, y yo hice lo siguiente:

  1. desde el directorio raíz busqué php.ini

    find/-name php.ini

Tengo dos archivos diferentes, lo que significa que tengo dos versiones diferentes de php instalado, por lo que

  1. He quitado todas las versiones de PHP

    sudo apt-get -y purge php*

  2. continuación reintalled versión de php deseado (en este caso 5,6)

    sudo apt-get install php5.6

+1

Hice esto ahora Nginx está roto. Solo recibo 502 respuestas ahora. Como resolviste esto? – powerup7

Cuestiones relacionadas