Eu instalei php 5.6 e e php 7.1 no meu Ubuntu 16.04
Eu sei que com o Apache como meu servidor web, posso fazer
a2enmod php5.6 #to enable php5
a2enmod php7.1 #to enable php7
Quando eu desabilito o php7.1 em módulos Apache e habilito o php 5.6, o Apache reconhece a mudança e usa o interpretador php 5.6 conforme o esperado.
Mas quando executo o servidor web php interno a partir da linha de comando:
php -S localhost:8888
php lida com solicitações usando php 7. Então, como faço para alternar entre php 5.6 e php 7.1 na linha de comando?
Respostas:
Modo de comutação interativo
sudo update-alternatives --config php
Troca Manual
Do PHP 5.6 => PHP 7.1
O PHP 5.6 padrão está definido em seu sistema e você precisa mudar para o PHP 7.1.
Apache:
$ sudo a2dismod php5.6 $ sudo a2enmod php7.1 $ sudo service apache2 restart
Linha de comando:
$ sudo update-alternatives --set php /usr/bin/php7.1
Do PHP 7.1 => PHP 5.6
O PHP 7.1 padrão está definido em seu sistema e você precisa mudar para o PHP 5.6.
Apache:
$ sudo a2dismod php7.1 $ sudo a2enmod php5.6 $ sudo service apache2 restart
Linha de comando:
$ sudo update-alternatives --set php /usr/bin/php5.6
Fonte
fonte
php -v
de 7.2 para 7.1! É ótimo e simples.create_function
não é mais suportado a partir do php 7.2 .)digite isso em sua linha de comando, deve funcionar para todos os ubuntu entre 16.04, 18.04 e 20.04.
e é isso que você vai conseguir
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:
Escolha a versão apropriada
fonte
Eu acho que você deveria tentar isso
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
fonte
Na verdade, eu não recomendaria usar
a2enmod
para php 5 ou 7. Eu usariaupdate-alternatives
. Você pode fazersudo update-alternatives --config php
para definir qual versão do PHP em todo o sistema deseja usar. Isso faz com que sua linha de comando e as versões do Apache funcionem da mesma forma. Você pode ler mais sobreupdate-alternatives
na página de manual .fonte
Para listar todas as versões disponíveis e escolher entre elas:
Ou faça manualmente
sudo a2dismod php7.1 // disable sudo a2enmod php5.6 // enable
fonte
Você pode criar um script para alternar entre as versões: em
sudo nano switch_php
seguida, digite:#!/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 )"
sair e salvar torná-lo executável:
sudo chmod +x switch_php
Para executar o script basta digitar
./switch_php [VERSION_NUMBER]
onde o parâmetro é 7 ou 5,6Agora você pode facilmente mudar do PHP7 para o PHP 5.6!
fonte
Por exemplo
Eu quero mudar
PHP Version
de7.1
para7.2
podemos usar o comando abaixosudo a2dismod php7.1 && sudo update-alternatives --set php /usr/bin/php7.2 && sudo a2enmod php7.2 && sudo service apache2 restart
a2dismod
é usado para desabilitar a versão atual do php ea2enmod
é usado para habilitar a versãofonte
Pode ser que você tenha uma versão antiga do PHP como o PHP 5.6 em seu sistema e também instalou o PHP 7.2, então há vários PHP em sua máquina. Existem alguns aplicativos que foram desenvolvidos quando o PHP 5.6 mais antigo era a versão mais recente, eles ainda estão ativos e você está trabalhando nesses aplicativos. Você pode estar trabalhando no Laravel simultaneamente, mas o Laravel requer PHP 7+ para começar. Entendendo a foto?
Nesse caso, você pode alternar entre as versões do PHP para atender aos seus requisitos.
Mudar de PHP 5.6 => PHP 7.2
Apache:-
sudo a2dismod php5.6 sudo a2enmod php7.2 sudo service apache2 restart
Linha 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
E vice-versa, mude de PHP 7.2 => PHP 5.6
Apache:-
sudo a2dismod php7.2 sudo a2enmod php5.6 sudo service apache2 restart
Linha 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
fonte
Digite o comando fornecido em seu terminal ..
Para desativar a versão do PHP selecionada ...
Para habilitar outra versão do PHP ....
Irá atualizar a versão do Php, a mesma coisa reverter se você quiser o downgrade da versão, você pode ver por PHP_INFO ();
fonte
Mude de PHP 5.6 para PHP 7.2 usando:
sudo a2dismod php5.6 && sudo a2enmod php7.2 && sudo service apache2 restart
Mude de PHP 7.2 para PHP 5.6 usando:
sudo a2dismod php7.2 && sudo a2enmod php5.6 && sudo service apache2 restart
fonte
Você pode usar esses scripts de troca de PHP de código aberto, que foram projetados especificamente para uso no Ubuntu 16.04 LTS.
https://github.com/rapidwebltd/php-switch-scripts
Existe um
setup.sh
script que instala todas as dependências necessárias para PHP 5.6, 7.0, 7.1 e 7.2. Depois de concluído, você pode apenas executar um dos seguintes scripts de switch para alterar a versão do módulo PHP CLI e 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
fonte
Do PHP 5.6 => PHP 7.1
$ sudo a2dismod php5.6 $ sudo a2enmod php7.1
para versões antigas do linux
para uma versão mais recente
fonte
siga os passos:
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
fonte
Fiz um script bash para alternar entre as diferentes versões do PHP no Ubuntu.
Espero que ajude alguém.
Aqui está o script: (salve-o em /usr/local/bin/sphp.sh, não se esqueça de adicionar + x sinalizador com o comando: sudo chmod + x /usr/local/bin/sphp.sh)
fonte
Você pode usar o script abaixo para alternar facilmente entre as versões do PHP. Eu incluí a configuração do phpize também.
https://github.com/anilkumararumulla/switch-php-version
Baixe o arquivo de script e execute
sh switch.sh
fonte
Ao instalar o laravel no Ubuntu 18.04, seja o padrão de instalação do PHP 7.3.0RC3 selecionado, mas o laravel e o symfony não serão instalados corretamente reclamando sobre missin php-xml e php-zip, mesmo que estejam instalados. Você precisa mudar para o php 7.1, usando as instruções acima ou,
sudo update-alternatives --set php /usr/bin/php7.1
agora, rodando laravel new blog, irá proceder corretamente
fonte