Respuesta más corta
¡No entres en pánico! 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í.
De hecho, puede compilar y cargar varias versiones de PHP que desea trabajar con Apache siempre que ajuste Apache para cargarlo correctamente. La interfaz de línea de comandos PHP nunca entrará en juego en el caso de que Apache analice páginas PHP.
La versión de línea de comando de PHP simplemente está ahí para tareas específicas de línea de comando y el módulo PHP para Apache nunca tocará, usará o necesitará eso.
Respuesta larga
Tú dices esto:
Quería saber qué php
versión estoy usando, así que escribí el script estándar:
phpinfo();
Lo que me da la versión de PHP 5.6.10- la versión correcta de PHP necesaria para mi aplicación. Cuando intenté en la terminal:
php -i or php -v
Me muestra la versión 5.3.2 de PHP que no necesito.
La versión de PHP disponible desde la línea de comandos no tiene nada que ver 100% con la versión de PHP cargada como módulo. Estas son cosas completamente separadas.
Entonces, si le preocupa qué versión de PHP está usando su aplicación web, si phpinfo()
muestra la versión 5.6.10 y eso es lo que desea / necesita, está 100% bien.
La versión de línea de comandos de PHP es un elemento del sistema completamente separado. Entonces, lo único que importa es la salida de phpinfo()
.
Si por alguna razón desea utilizar una versión diferente de PHP con Apache, todo lo que necesita hacer es instalar el módulo compilado de Apache PHP en algún lugar y agregar, o ajustar, esta línea en la configuración de Apache de su sistema:
LoadModule php5_module /path/to/php/and/the/module/for/apache2/libphp5.so
Y simplemente ajuste la ruta al libphp5.so
—que es lo que Apache usa para analizar PHP—, luego reinicie Apache y usted estará en el negocio.
Por ejemplo, en un momento tuve que compilar PHP versión 5.1.6 de la fuente (con soporte de biblioteca GD) para usar en una máquina Ubuntu 12.04 que ejecuta PHP 5.3.5. En el archivo de carga del módulo PHP del servidor aquí:
/etc/apache2/mods-available/php5.load
Tenía líneas como esta:
# LoadModule php5_module /usr/lib/apache2/modules/libphp535.so
LoadModule php5_module /usr/lib/apache2/modules/libphp516-gd.so
¿Observe cómo se comenta una línea libphp535.so
y la otra no libphp516-gd.so
se comenta? Lo que hice fue renombrar el libphp5.so
módulo Apache PHP 5.3.5 predeterminado libphp535.so
con el número de versión en el nombre para poder tenerlo allí como referencia y luego libphp516-gd.so
llamé al módulo PHP 5.1.6 (con soporte de biblioteca GD) para saber qué es eso también lo es. De esta manera, los tengo a mi disposición lado a lado en el sistema.
Y, como dije al principio, la versión de PHP utilizada en la línea de comandos no tiene absolutamente nada que ver con el módulo Apache PHP. Por lo tanto, puede tener cualquier cantidad de versiones diferentes de módulos Apache PHP en el sistema listas para usar; solo ajuste una configuración y reinicie Apache y debería estar todo en el negocio para usar cualquier versión de PHP que especificó que debería usar Apache.
Si está intentando ejecutar código PHP desde su servidor web, entonces la versión que está utilizando es la que informa
phpinfo()
= 5.6.10 .Aparentemente, su servidor tiene varias versiones de PHP instaladas, y cuando inicia sesión y se ejecuta
php
en la línea de comandos, obtiene la versión anterior que está instalada en / usr / bin / php.Un servidor puede tener muchas versiones de PHP, y el suyo parece tenerlo.
Si necesita ejecutar manualmente el mismo PHP que su servidor web, entonces necesita encontrar la otra versión. Intente ejecutar estos comandos:
Uno de ellos podría revelar un PHP con la misma versión que su servidor web, y cuando descubra cuál es, puede usar ese en lugar del predeterminado.
fuente
Si puedo agregar mis 2 centavos ...
Estaba actualizando mi versión de Nextcloud. Cuando ejecuto el procedimiento de actualización, tengo que "sudo php" como usuario de apache, pero se negó a ejecutarse porque la versión de CLI de php ejecutada de manera predeterminada por el usuario de apache era demasiado antigua. Sin embargo, phpinfo (); en mi servidor se muestra la última versión de php instalada.
Me di cuenta de que es porque la variable PATH en el archivo /home/apache/.bashrc se configuró en la primera versión de php que instalé en mi servidor , y nunca se actualizó nuevamente (siempre compilo / instalo php desde la fuente en Github )
La solución:
Cuando actualice php en su servidor web y desee asegurarse de que la versión de php de CLI utilizada sea la más actual cuando sudo como usuario de apache, no olvide cambiarlo en el archivo .bashrc de este usuario, así:
PATH=$PATH:/var/www/html: /usr/local/php7.1.32/bin export PATH
fuente
Pasos para arreglar esto. En primer lugar, qué versión de PHP te está mostrando.
Ahora necesitará una ruta PHP. Si no lo sabe, puede contactar a su soporte de hosting para la ruta PHP. En mi caso fue
Ahora, es hora de ejecutar este comando en la terminal.
Esto cambiará su versión de PHP a PHP 7.1. Si desea cambiarlo a 7.2, puede intentar
Estás listo. Verifíquelo con
fuente
Cree una ruta variable de entorno para la última versión de php, por ejemplo: C: \ wamp64 \ bin \ php \ php7.2.4. Ahora cambie su carpeta de versión de php anterior .php5.6.35 a otro número php5.6.354 .. Luego verifique php -v su wamp servidor y cli php serán lo mismo
fuente