-
Se você tiver uma versão do PHP mais recente instalada em seu sistema e precisa instalar uma versão mais antiga, você precisará desinstalar a versão mais recente, instalar a mais antiga e depois reinstalar a versão mais recente.
-
Se você instalar o PHP para os dois Banco de Dados (MySQL e PostgreSQL), deve manter atenção para instalar somente os módulos necessários para cada um.
-
Esse repositório (ppa:ondrej/php) é mantido pelo Ondřej Surý.
sudo apt-get update
sudo apt-get upgrade
-
Adicionar o repositório:
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
-
Instalando o PHP 5.6
sudo apt-get install php5.6 php5.6-cli php5.6-intl php5.6-mcrypt php5.6-opcache php5.6-readline libapache2-mod-php5.6 php5.6-mbstring php5.6-json php5.6-curl php-imagick php5.6-mysql phpmyadmin
-
Verificar a versão instalada:
php -v
-
Ou:
php --version
-
Exemplo de saída:
PHP 5.6.30-10+deb.sury.org~xenial+2 (cli)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
-
-
Instalando o PHP 7.1
sudo apt-get install php7.1 php7.1-cli php7.1-intl php7.1-mcrypt php7.1-opcache php7.1-readline libapache2-mod-php7.1 php7.1-mbstring php7.1-json php7.1-curl php-imagick php7.1-mysql phpmyadmin
-
Verificar a versão instalada:
php -v
-
Ou:
php --version
-
Exemplo de saída:
PHP 7.1.5-1+deb.sury.org~xenial+1 (cli) (built: Apr 11 2017 22:12:32) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.1.5-1+deb.sury.org~xenial+1, Copyright (c) 1999-2017, by Zend Technologies
-
-
Adicionar o repositório:
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
-
Instalando o PHP 5.6
sudo apt-get install php5.6 php5.6-cli php5.6-intl php5.6-mcrypt php5.6-opcache php5.6-readline libapache2-mod-php5.6 php5.6-mbstring php5.6-json php5.6-curl php-imagick php5.6-pgsql
-
Verificar a versão instalada:
php -v
-
Ou:
php --version
-
Exemplo de saída:
PHP 5.6.30-10+deb.sury.org~xenial+2 (cli)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
-
-
Instalando o PHP 7.1
sudo apt-get install php7.1 php7.1-cli php7.1-intl php7.1-mcrypt php7.1-opcache php7.1-readline libapache2-mod-php7.1 php7.1-mbstring php7.1-json php7.1-curl php-imagick php7.1-pgsql
-
Verificar a versão instalada:
php -v
-
Ou:
php --version
-
Exemplo de saída:
PHP 7.1.5-1+deb.sury.org~xenial+1 (cli) (built: Apr 11 2017 22:12:32) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.1.5-1+deb.sury.org~xenial+1, Copyright (c) 1999-2017, by Zend Technologies
-
-
Ativar as extensões php5.6-mcrypt, php7.1-mcrypt e php5.6-mbstring, php7.1-mbstring:
sudo phpenmod mcrypt
sudo phpenmod mbstring
-
Depois de ativada as extensões, reinicie o Apache:
sudo service apache2 restart
-
Habilitar as mensagens de erros do PHP (5.6 / 7.1).
-
Para habilitar as mensagens erros, precisamos editar o arquivo php.ini. Acesse o diretório referente a versão do PHP que você instalou e depois abra o arquivo com privilégios de super usuário.
cd /etc/php/5.6/apache2
cd /etc/php/7.1/apache2
sudo nano php.ini
-
Com o arquivo aberto, procure pelas variáveis display_errors, display_startup_errors e log_errors. Altere o valor de Off para On nas variáveis, como na imagem a baixo:
-
Procure pela variável error_log, remova o ; da frente e configure um caminho para armazenar o arquivo de logs de erros, assim como na imagem a baixo (certifique-se de que o arquivo tenha permissão de leitura e escrita):
-
Salve o arquivo e reinicie o apache.
sudo service apache2 restart
-
-
Teste se a instalação do PHP está correta. Crie um arquivo "info.php" no diretório dos projetos "/var/www/html" e dentro do arquivo insira a função a baixo e salve.
<?php phpinfo(); ?>
-
Vá no navegador e acesse o arquivo pela URL:
"localhost/info.php" ou "127.0.0.1/info.php"
-
Se abrir a página de informações do PHP, a instalação da linguagem está correta.
-
Se estiver na versão do PHP 5.6 e quiser usar a versão do PHP 7.1, digite o comando a baixo:
sudo a2dismod php5.6; sudo a2enmod php7.1; sudo service apache2 restart | sudo update-alternatives --set php /usr/bin/php7.1
- Ou:
sudo a2dismod php5.6; sudo a2enmod php7.1; sudo service apache2 restart; echo 2 | sudo update-alternatives --config php
-
Se estiver na versão do PHP 7.1 e quiser usar a versão do PHP 5.6, digite os comandos na seguinte ordem:
sudo a2dismod php7.1; sudo a2enmod php5.6; sudo service apache2 restart | sudo update-alternatives --set php /usr/bin/php5.6
- Ou:
sudo a2dismod php7.1; sudo a2enmod php5.6; sudo service apache2 restart; echo 1 | sudo update-alternatives --config php
Para testar se a versão do PHP 7.1 está funcionando junto a do PHP 5.6, podemos utilizar um código simples usando o operador de comparação Spaceship (nave espacial, <=>), que está disponível a partir do PHP 7.0.
-
Crie um arquivo em algum diretório do sistema com um nome qualquer (teste.php, por exemplo), e cole o código a baixo:
<?php
$var1 = var_dump(10 <=> 10);
echo $var1; // 0
$var2 = var_dump(10 <=> 5);
echo $var2; // 1
$var3 = var_dump(5 <=> 10);
echo $var3; // -1
?>
-
Execute o arquivo com as duas versões do PHP no terminal.
php5.6 teste.php
-
Ou:
php7.1 teste.php
-
Versão PHP 5.6 -> Deverá ocorrer o erro a baixo, pois não há suporte para este operador.
PHP Parse error: syntax error, unexpected '>' in /home/sim/Área de Trabalho/teste.php on line 2
-
Versão PHP 7.1 -> Deverá gerar a seguinte saída:
int(0)
int(1)
int(-1)
(Opcional) Podemos criar um par de Alias para não termos que digitar todo aquele comando enorme para alterar as versões do PHP
-
Para criá-los, é preciso modidificar o arquivo .bashrc que se encontra em /home/USER/.bashrc (se não existir o arquivo, crie-o). Abra o arquivo com privilégios de super usuário no editor de texto que preferir.
sudo nano ~/.bashrc
-
Inclua os aliases no arquivo, de preferência junto aos outros aliases existentes.
alias phpV5='sudo a2dismod php7.1; sudo a2enmod php5.6; sudo service apache2 restart | sudo update-alternatives --set php /usr/bin/php5.6'
alias phpV7='sudo a2dismod php5.6; sudo a2enmod php7.1; sudo service apache2 restart | sudo update-alternatives --set php /usr/bin/php7.1'
-
Ou:
alias phpV5='sudo a2dismod php7.1; sudo a2enmod php5.6; sudo service apache2 restart; echo 1 | sudo update-alternatives --config php'
alias phpV7='sudo a2dismod php5.6; sudo a2enmod php7.1; sudo service apache2 restart; echo 2 | sudo update-alternatives --config php'
-
Por fim, para gravar definitivamente os aliases e ser possível executá-los, digite o comando o baixo:
source ~/.bashrc
https://tecadmin.net/install-php5-on-ubuntu/
https://phpraxis.wordpress.com/2016/05/16/install-php-5-6-or-5-5-in-ubuntu-16-04-lts-xenial-xerus/
http://php.net/manual/pt_BR/language.operators.comparison.php
https://www.linuxdescomplicado.com.br/2015/06/criar-comandos-usando-alias.html
http://sejalivre.org/como-usar-aliases-para-personalizar-comandos-no-ubuntu/