He instalado php 5.6 y php 7.1 en mi Ubuntu 16.04
Sé que con Apache como servidor web, puedo hacer
a2enmod php5.6 #to enable php5
a2enmod php7.1 #to enable php7
Cuando desactivo php7.1 en los módulos de Apache y habilito php 5.6, Apache reconoce el cambio y usa el intérprete de php 5.6 como se esperaba.
Pero cuando ejecuto el servidor web php interno desde la línea de comandos:
php -S localhost:8888
php maneja las solicitudes usando php 7. Entonces, ¿cómo cambio entre php 5.6 y php 7.1 en la línea de comandos?

Respuestas:
Modo de conmutación interactivo
sudo update-alternatives --config phpConmutación manual
Desde PHP 5.6 => PHP 7.1
PHP 5.6 predeterminado está configurado en su sistema y necesita cambiar a PHP 7.1.
Apache:
$ sudo a2dismod php5.6 $ sudo a2enmod php7.1 $ sudo service apache2 restartLínea de comando:
$ sudo update-alternatives --set php /usr/bin/php7.1Desde PHP 7.1 => PHP 5.6
PHP 7.1 predeterminado está configurado en su sistema y necesita cambiar a PHP 5.6.
Apache:
$ sudo a2dismod php7.1 $ sudo a2enmod php5.6 $ sudo service apache2 restartLínea de comando:
$ sudo update-alternatives --set php /usr/bin/php5.6Fuente
fuente
php -vde 7.2 a 7.1! Es genial y simple.create_functionya no es compatible a partir de php 7.2 .)escriba esto en su línea de comando, debería funcionar para todos los ubuntu entre 16.04, 18.04 y 20.04.
y esto es lo que obtendrás
There are 4 choices for the alternative php (providing /usr/bin/php). Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/bin/php7.2 72 auto mode 1 /usr/bin/php5.6 56 manual mode 2 /usr/bin/php7.0 70 manual mode 3 /usr/bin/php7.1 71 manual mode 4 /usr/bin/php7.2 72 manual mode Press <enter> to keep the current choice[*], or type selection number:Elija la versión adecuada
fuente
De hecho, no recomendaría usar
a2enmodpara php 5 o 7. Yo usaríaupdate-alternatives. Puede hacersudo update-alternatives --config phppara establecer qué versión de PHP para todo el sistema desea utilizar. Esto hace que su línea de comandos y las versiones de Apache funcionen igual. Puede leer másupdate-alternativesen la página de manual .fuente
Creo que deberías probar esto
De php5.6 a php7.1
sudo a2dismod php5.6 sudo a2enmod php7.1 sudo service apache2 restart sudo update-alternatives --set php /usr/bin/php7.1 sudo update-alternatives --set phar /usr/bin/phar7.1 sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.1De php7.1 a php5.6
sudo a2dismod php7.1 sudo a2enmod php5.6 sudo service apache2 restart sudo update-alternatives --set php /usr/bin/php5.6 sudo update-alternatives --set phar /usr/bin/phar5.6 sudo update-alternatives --set phar.phar /usr/bin/phar.phar5.6fuente
Para enumerar todas las versiones disponibles y elegir entre ellas:
O hacerlo manualmente
sudo a2dismod php7.1 // disable sudo a2enmod php5.6 // enablefuente
Puede crear un script para cambiar de versiones:
sudo nano switch_phpluego escriba esto:#!/bin/sh #!/bin/bash echo "Switching to PHP$1..." case $1 in "7") sudo a2dismod php5.6 sudo a2enmod php7.0 sudo service apache2 restart sudo ln -sfn /usr/bin/php7.0 /etc/alternatives/php;; "5.6") sudo a2dismod php7.0 sudo a2enmod php5.6 sudo service apache2 restart sudo ln -sfn /usr/bin/php5.6 /etc/alternatives/php;; esac echo "Current version: $( php -v | head -n 1 | cut -c-7 )"salir y guardar hacerlo ejecutable:
sudo chmod +x switch_phpPara ejecutar el script simplemente escriba
./switch_php [VERSION_NUMBER]donde el parámetro es 7 o 5.6¡Eso es todo, ahora puede cambiar fácilmente de PHP7 a PHP 5.6!
fuente
P.ej
Quiero cambiar
PHP Versionde7.1a7.2podemos usar el siguiente comandosudo a2dismod php7.1 && sudo update-alternatives --set php /usr/bin/php7.2 && sudo a2enmod php7.2 && sudo service apache2 restarta2dismodse usa para deshabilitar la versión actual de php ya2enmodse usa para habilitar la versiónfuente
Puede ser que tenga una versión antigua de PHP como PHP 5.6 en su sistema y también instaló PHP 7.2, por lo que hay múltiples PHP en su máquina. Hay algunas aplicaciones que se desarrollaron cuando la versión anterior de PHP 5.6 era la última versión, todavía están activas y usted está trabajando en esas aplicaciones. Es posible que esté trabajando en Laravel simultáneamente, pero Laravel requiere PHP 7+ para comenzar. ¿Conseguir la imagen?
En ese caso, puede cambiar entre las versiones de PHP para adaptarse a sus necesidades.
Cambiar de PHP 5.6 => PHP 7.2
Apache:-
sudo a2dismod php5.6 sudo a2enmod php7.2 sudo service apache2 restartLínea de comando:-
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.2Y viceversa, cambiar de PHP 7.2 => PHP 5.6
Apache:-
sudo a2dismod php7.2 sudo a2enmod php5.6 sudo service apache2 restartLínea de comando:-
sudo update-alternatives --set php /usr/bin/php5.6 sudo update-alternatives --set phar /usr/bin/phar5.6 sudo update-alternatives --set phar.phar /usr/bin/phar.phar5.6 sudo update-alternatives --set phpize /usr/bin/phpize5.6 sudo update-alternatives --set php-config /usr/bin/php-config5.6fuente
Escriba el comando dado en su terminal ..
Para deshabilitar la versión de PHP seleccionada ...
Para habilitar otra versión de PHP ...
Actualizará la versión de Php, lo mismo revertirá si desea que la versión se reduzca, puede verla en PHP_INFO ();
fuente
Cambie de PHP 5.6 a PHP 7.2 usando:
sudo a2dismod php5.6 && sudo a2enmod php7.2 && sudo service apache2 restartCambie de PHP 7.2 a PHP 5.6 usando:
sudo a2dismod php7.2 && sudo a2enmod php5.6 && sudo service apache2 restartfuente
Puede usar estos scripts PHP Switch de código abierto, que fueron diseñados específicamente para su uso en Ubuntu 16.04 LTS.
https://github.com/rapidwebltd/php-switch-scripts
Hay un
setup.shscript que instala todas las dependencias necesarias para PHP 5.6, 7.0, 7.1 y 7.2. Una vez que esto esté completo, puede ejecutar uno de los siguientes scripts de cambio para cambiar la CLI de PHP y la versión del módulo Apache 2../switch-to-php-5.6.sh ./switch-to-php-7.0.sh ./switch-to-php-7.1.sh ./switch-to-php-7.2.shfuente
Desde PHP 5.6 => PHP 7.1
$ sudo a2dismod php5.6 $ sudo a2enmod php7.1para versiones antiguas de Linux
para una versión más reciente
fuente
por favor siga los pasos:
i.e : your current version is : current_version = 7.3 , and you want to change it to : new_version = 7.2 1) sudo a2dismod php(current_version) 2) sudo a2enmod php(new_version) 3) sudo update-alternatives --config php (here you need to select php version number) 4) restart apache through : sudo /etc/init.d/apache2 restart OR sudo service apache2 restartfuente
Hice un script bash para cambiar entre diferentes versiones de PHP en Ubuntu.
Espero que ayude a alguien.
Aquí está el script: (guárdelo en /usr/local/bin/sphp.sh, no olvide agregar la bandera + x con el comando: sudo chmod + x /usr/local/bin/sphp.sh)
fuente
Puede usar el siguiente script para cambiar fácilmente entre la versión de PHP. También he incluido la configuración de phpize.
https://github.com/anilkumararumulla/switch-php-version
Descargue el archivo de script y ejecútelo
sh switch.shfuente
Al instalar laravel en Ubuntu 18.04, seleccione la instalación predeterminada de PHP 7.3.0RC3, pero laravel y symfony no se instalarán correctamente quejándose de missin php-xml y php-zip, incluso aunque estén instalados. Necesita cambiar a php 7.1, siguiendo las instrucciones anteriores o,
sudo update-alternatives --set php /usr/bin/php7.1ahora, ejecutando el nuevo blog de Laravel, procederá correctamente
fuente