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 php
Conmutació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 restart
Línea de comando:
$ sudo update-alternatives --set php /usr/bin/php7.1
Desde 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 restart
Línea de comando:
$ sudo update-alternatives --set php /usr/bin/php5.6
Fuente
fuente
php -v
de 7.2 a 7.1! Es genial y simple.create_function
ya 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
a2enmod
para php 5 o 7. Yo usaríaupdate-alternatives
. Puede hacersudo update-alternatives --config php
para 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-alternatives
en 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.1
De 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.6
fuente
Para enumerar todas las versiones disponibles y elegir entre ellas:
O hacerlo manualmente
sudo a2dismod php7.1 // disable sudo a2enmod php5.6 // enable
fuente
Puede crear un script para cambiar de versiones:
sudo nano switch_php
luego 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_php
Para 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 Version
de7.1
a7.2
podemos usar el siguiente comandosudo a2dismod php7.1 && sudo update-alternatives --set php /usr/bin/php7.2 && sudo a2enmod php7.2 && sudo service apache2 restart
a2dismod
se usa para deshabilitar la versión actual de php ya2enmod
se 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 restart
Lí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.2
Y viceversa, cambiar de PHP 7.2 => PHP 5.6
Apache:-
sudo a2dismod php7.2 sudo a2enmod php5.6 sudo service apache2 restart
Lí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.6
fuente
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 restart
Cambie de PHP 7.2 a PHP 5.6 usando:
sudo a2dismod php7.2 && sudo a2enmod php5.6 && sudo service apache2 restart
fuente
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.sh
script 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.sh
fuente
Desde PHP 5.6 => PHP 7.1
$ sudo a2dismod php5.6 $ sudo a2enmod php7.1
para 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 restart
fuente
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.sh
fuente
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.1
ahora, ejecutando el nuevo blog de Laravel, procederá correctamente
fuente