Soy nuevo en el uso de Linux y rompí algunas configuraciones de php mientras manipulaba.
Si ejecuto un script php que contiene: phpinfo(); muestra las versiones de php como 5.6, pero a través de la línea de comando, si ejecuto php -v devuelve una versión de 7.0.
Quiero que ambas versiones coincidan.
¿Cómo puedo arreglar mi línea de comando PATH para usar también php 5.6?
Puede intentar establecer la ruta a la versión de php correcta en la línea de comando del terminal:
set PATH="/usr/bin/php5.6/bin:$PATH"Modifique la ruta para que coincida con su propia ruta a PHP 5.6 (es decir, si se instaló primero, podría ser algo como "/usr/bin/php").
El "$PATH" al final agrega el valor de la ruta actual, así que no olvide usarlo.
La mayoría de las respuestas aquí manipulan la versión php usando el comando
sudo update-alternatives --set ...Si bien el comando es bastante útil, nunca se explica qué hace exactamente. Aquí viene la explicación, incluyendo la copia de seguridad y algunas opciones:
update-alternatives muestra o cambia los enlaces simbólicos que residen en una dirección alternativa que en Ubuntu generalmente se define como /etc/alternatives pero que también podría cambiarse.update-alternatives con el comando update-alternatives --help , se puede mostrar una explicación más detallada con man update-alternatives .update-alternatives es el principal cambio de enlaces simbólicos en una carpeta especial, el contenido de esa carpeta también se puede mostrar con comandos comunes, siguiendo todos los elementos que comienzan con php :$ ls -al /etc/alternatives/php* lrwxrwxrwx 1 root root 15 Jan 19 02:58 /etc/alternatives/php -> /usr/bin/php7.2 lrwxrwxrwx 1 root root 31 Jan 19 02:58 /etc/alternatives/php.1.gz -> /usr/share/man/man1/php7.2.1.gz lrwxrwxrwx 1 root root 19 Jan 19 03:00 /etc/alternatives/php-cgi -> /usr/bin/php-cgi7.2 lrwxrwxrwx 1 root root 35 Jan 19 03:00 /etc/alternatives/php-cgi.1.gz -> /usr/share/man/man1/php-cgi7.2.1.gz lrwxrwxrwx 1 root root 23 Jan 19 03:00 /etc/alternatives/php-cgi-bin -> /usr/lib/cgi-bin/php7.2
update-alternatives use este comando:$ update-alternatives --list php /usr/bin/php7.0 /usr/bin/php7.2
$ update-alternatives --display php php - auto mode link best version is /usr/bin/php7.2 link currently points to /usr/bin/php7.2 link php is /usr/bin/php slave php.1.gz is /usr/share/man/man1/php.1.gz /usr/bin/php7.0 - priority 70 slave php.1.gz: /usr/share/man/man1/php7.0.1.gz /usr/bin/php7.2 - priority 72 slave php.1.gz: /usr/share/man/man1/php7.2.1.gz
Finalmente, todavía queremos saber qué versiones de php podemos vincular. El siguiente comando muestra una lista de las versiones de php actualmente disponibles en /usr/bin/ :
$ ls -al /usr/bin/php* lrwxrwxrwx 1 root root 21 Jan 1 19:47 /usr/bin/php -> /etc/alternatives/php -rwxr-xr-x 1 root root 4385840 Apr 5 18:13 /usr/bin/php7.0 -rwxr-xr-x 1 root root 4875488 Apr 5 18:10 /usr/bin/php7.2 lrwxrwxrwx 1 root root 25 Jan 1 19:47 /usr/bin/php-cgi -> /etc/alternatives/php-cgi -rwxr-xr-x 1 root root 4279672 Apr 5 18:13 /usr/bin/php-cgi7.0 -rwxr-xr-x 1 root root 4769272 Apr 5 18:10 /usr/bin/php-cgi7.2 -rwxr-xr-x 1 root root 663 Feb 29 2016 /usr/bin/phpunit
alternatives-php.txt según sus necesidades):$ echo "command: update-alternatives --list php" > ~/Desktop/alternatives-php.txt $ update-alternatives --display php >> ~/Desktop/alternatives-php.txt $ echo "command: update-alternatives --display php" >> ~/Desktop/alternatives-php.txt $ update-alternatives --display php >> ~/Desktop/alternatives-php.txtsi lo desea, aún puede agregar el resultado del comando
lscomo se muestra arriba:$ echo "command: ls -al /etc/alternatives/php*" >> ~/Desktop/alternatives-php.txt $ ls -al /etc/alternatives/php* >> ~/Desktop/alternatives-php.txt... y las versiones de PHP disponibles:
$ echo "command: ls -al /usr/bin/php*" >> ~/Desktop/alternatives-php.txt $ ls -al /usr/bin/php* >> ~/Desktop/alternatives-php.txt
man -documenta la lista en /etc/alternatives/php*/ incluye 3 líneas:$ ls -al /etc/alternatives/php* lrwxrwxrwx 1 root root 15 Jan 19 02:58 /etc/alternatives/php -> /usr/bin/php7.2 lrwxrwxrwx 1 root root 19 Jan 19 03:00 /etc/alternatives/php-cgi -> /usr/bin/php-cgi7.2 lrwxrwxrwx 1 root root 23 Jan 19 03:00 /etc/alternatives/php-cgi-bin -> /usr/lib/cgi-bin/php7.2
cli , web y cgi podría configurarse diferentemente./etc/alternatives y cli (línea de comando) generalmente no usa la versión cgi o la configuración cgi. Por lo tanto, se puede suponer que cambiar solo el enlace simbólico para php funcionará para la línea de comandos, probablemente no sea necesario cambiar php-cgi y php-cgi-bin . Por lo general, la versión más reciente está vinculada de manera predeterminada, por lo que el siguiente comando usa una versión anterior tomada de la lista en /usr/bin/ :$ sudo update-alternatives --set php /usr/bin/php7.0 update-alternatives: using /usr/bin/php7.0 to provide /usr/bin/php (php) in manual mode
Comprobando el cambio:
$: php -v PHP 7.0.29-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Apr 5 2018 08:34:50) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies with Zend OPcache v7.0.29-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2017, by Zend TechnologiesEl cambio fue aceptado y la versión usada ahora es más antigua.
$: man php ... [SCROLL DOWN] VERSION INFORMATION This manpage describes php, version 7.0.29-1+ubuntu16.04.1+deb.sury.org+1. COPYRIGHT ...
Esto significa que la versión de PHP es consistente con la página de manual y el comando man php devuelve las descripciones correctas para la versión de php actual y no se requieren ajustes manuales relacionados con la página de manual .
Aquí hay una forma más interactiva:
update-alternatives --config phpVerás la lista de todas las versiones disponibles y seleccionarás una de ellas
revisa lo que tienes antes de cambiar
php -vcambiar todo a php 7.2
sudo update-alternatives --set php /usr/bin/php7.2 sudo update-alternatives --set phar /usr/bin/phar7.2 sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.2 sudo update-alternatives --set phpize /usr/bin/phpize7.2 sudo update-alternatives --set php-config /usr/bin/php-config7.2 Solo para decir, si su servidor se administra con Plesk (como el mío en el momento de buscar en esta pregunta), es posible que no tenga versiones posteriores de PHP en /usr/bin
En este caso, sus versiones de PHP se ubicarán en /opt/plesk/php , por lo que puede usar el siguiente comando como superusuario (ejecute su primero si no es un superusuario) para configurar su versión PHP CLI (para 7.3 en este ejemplo):
echo "alias php='/opt/plesk/php/7.3/bin/php'" >> ~/.bashrcCierra la sesión y vuelve a iniciarla y... ¡listo!
7.3 en el comando a la versión que desee (en el caso del OP, sería 5.6ls /opt/plesk/phpFuente: Soporte de Plesk