Como instalar uma versão PHP diferente (atualização ou downgrade) na versão Ubuntu ainda suportada?


226

Estou tentando atualizar para instalar o PHP 5.5, 5.6 ou 7.0 no Ubuntu 12.04 / 14.04 / 16.04 LTS e só consigo o PHP 5.3.10 para Ubuntu 12.04, PHP 5.5.9 para Ubuntu 14.04 ou PHP 7.0.4 para Ubuntu 16.04 usando repositórios oficiais (usando o apt-get).

Não tenho muita certeza de como fazer uma atualização manual - pois preciso:

  • para brincar com os novos recursos (est) do PHP
  • instalar a versão mais antiga do PHP devido ao suporte no software

1
se sudo apt-get upgrade Não atualize o PHP, tente sudo apt-get dist-upgrade. Para atualização de distribuição.
Moiz Kiyani

Respostas:


292

Você pode usar um PPA para manter-se atualizado com o PHP ou instalar a versão anterior do PHP (por exemplo, PHP 5.6 no Ubuntu 16.04 LTS).

Os repositórios mais usados ​​são de Ondřej Surý, mantenedor do Debian PHP:

  • ppa: ondrej / phpLogotipo do Launchpad (para versões co-instaláveis ​​do PHP 5.6 / 7.0 / 7.1, o PHP 5.5 não é mais suportado)

Os pacotes compatíveis do php5:

( Clique aqui para obter instruções sobre o uso de PPAs. )

Os PPAs do PHP anteriormente continham a atualização do Apache 2.4. Isso não é mais um caso, você precisa adicionar um repositório separado do Apache 2.4:

Se você deseja usar esses PPAs, faça o seguinte:

ppa: ondrej / phpLogotipo do Launchpad (para PHP 5.6 / 7.0 / 7.1)

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install php7.1   # for PHP 7.1
sudo apt-get install php7.0   # for PHP 7.0
sudo apt-get install php5.6   # for PHP 5.6

Para alternar entre versões instaladas, use

sudo update-alternatives --config php

Então você deve configurar o Apache para funcionar com a versão correta:

sudo a2dismod php7.1         # unload the current version
sudo a2enmod  php5.6         # load the version you need
sudo service apache2 restart # restart webserver to apply

ppa: ondrej / php5-compatLogotipo do Launchpad (para php5 compat)

sudo add-apt-repository ppa:ondrej/php
sudo add-apt-repository ppa:ondrej/php5-compat
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install php5 # this will pull php5.6 package 

Se você não possui add-apt-repositorybinário, faça o seguinte:

sudo apt-get install python-software-properties

Precauções:

PHP 5.4

O PHP 5.4 mais recente pré-empacotado agora reside em PPA separado: ppa: ondrej / php5-oldstableLogotipo do Launchpad

Esteja ciente de que o PHP 5.4 atingiu seu fim de vida em 3 de setembro de 2015 e não recebe nenhuma atualização de segurança. Recomenda-se migrar para pelo menos o PHP 5.6 que receberá a segurança atualizada até 31 de dezembro de 2018 .


5
Acontece que você tem que correr sudo apt-get updateprimeiro!
precisa saber é o seguinte

3
existe o pacote php5-cli para isso!
matteosister

11
Depois de adicionar o PPA, você poderia fazer: sudo apt-get dist-upgrade
matteosister

2
Após instalar o ppa, atualizando o php e executando php -v, as informações da versão começam com esta mensagem de erro: Falha ao carregar /usr/lib/php5/20090626/xdebug.so: /usr/lib/php5/20090626/xdebug.so: não é possível abrir o compartilhado arquivo de objeto: Não existe esse arquivo ou diretório . Irritante.
Systemovich 24/10/12

3
Use apt-get install software-properties-commonse apt-get install python-software-propertiesnão fornecer o add-apt-repositorycomando.
precisa saber é o seguinte

3

Levará algum tempo para que os pacotes PHP 5.4 cheguem ao Ubuntu, pois há muitas verificações de dependência a serem feitas. O Ubuntu 12.04 está agora na versão beta, então duvido que eles o atualizem para o PHP 5.4 (embora eu não tenha nenhum conhecimento oficial ou interno disso) - provavelmente não aparecerá até o Ubuntu 12.10 em outubro deste ano. Se você quiser mais cedo do que isso, terá que encontrar um pacote de terceiros ou aprender a construí-lo a partir do código-fonte.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.