Não é possível instalar o php5 no Ubuntu 16.04

53

então instalei recentemente meu primeiro Ubuntu, para ser mais preciso, uma compilação diária do 16.04, no meu novo laptop desde que o hardware era novo para a 15.10. Agora estou no processo de configurá-lo e quero instalar o php5 e algumas extensões.

Quando executo sudo apt-get install libapache2-mod-php5, recebo a mensagem de erro informando que não há pacote de instalação disponível para php5 e libapache2.

A mensagem de erro está em alemão, então duvido que isso ajude, mas de qualquer maneira aqui está. :-) E: For package »libapache2-mod-php5« existiert kein Installationskandidat.

Preciso adicionar um repositório apt-get? Ou o que estou fazendo de errado?

user529857
fonte

Respostas:

76

TL; DR: Se você quiser ficar com o php5, precisará permanecer no Ubuntu 14.04 LTS

Usando o PHP 7.0 no Ubuntu 16.04 LTS

O Ubuntu 16.04 mudou para o PHP 7.0 com uma nova infraestrutura para o pacote PHP. Portanto, não, você não pode instalar o php5 no Ubuntu 16.04, mas pode instalar os pacotes PHP 7.0 com:

apt-get install libapache2-mod-php

Isso instalará um pacote virtual que depende da versão mais recente do PHP e será usado libapache2-mod-php7.0como uma dependência.

Se você estiver procurando extensões, sempre use também uma variante sem versão (por exemplo, em php-apcuvez de php7.0-apcu), pois as extensões PECL são compactadas sem a versão para permitir atualizações suaves.

Usando o PHP PPA para co-instalar o PHP 5.6 com o PHP 7.0

Existe uma opção para co-instalar pacotes PHP 5.6 usando ppa:ondrej/php.

Para mais informações, consulte a resposta: https://askubuntu.com/a/762161/309221

Extraído do link acima:

Assumindo que libapache2-mod-phpé uma maneira adequada de ativar o PHP no Apache para você, você pode proceder desta maneira:

sudo add-apt-repository ppa:ondrej/php

sudo apt-get update

sudo apt-get install php7.0 php5.6 php5.6-mysql php-gettext php5.6-mbstring php-xdebug libapache2-mod-php5.6 libapache2-mod-php7.0

Alterne a versão do PHP (Apache):

  • do php5.6 para o php7.0:
    sudo a2dismod php5.6 ; sudo a2enmod php7.0 ; sudo service apache2 restart

  • do php7.0 para o php5.6:
    sudo a2dismod php7.0 ; sudo a2enmod php5.6 ; sudo service apache2 restart

oerdnj
fonte
2
Não, não há pacotes PHP 5.x nos repositórios Xenial. Somente no PPA.
oerdnj
Parece que você está certo: bugs.launchpad.net/ubuntu/+source/php5/+bug/1522422
NoBugs
Quando mudei para o php5.6, recebi o erro "O trabalho do apache2.service falhou porque o processo de controle saiu com o código do erro. Consulte" status do systemctl apache2.service "e" journalctl -xe "para obter detalhes.
lyhong
E o que o jornal diz?
oerdnj
encontrado algo assim apache2: Erro de sintaxe na linha 140 de /etc/apache2/apache2.conf: Erro de sintaxe na linha 3 de / e
lyhong
25

EDIT: a resposta aceita não diz explicitamente como instalar o PHP 5.6 e 7.0, então eu queria estendê-lo.

Para mais informações, consulte a resposta: https://askubuntu.com/a/762161/309221

Extraído do link acima:

Assumindo que libapache2-mod-phpé uma maneira adequada de ativar o PHP no Apache para você, você pode proceder desta maneira:

sudo add-apt-repository ppa:ondrej/php

sudo apt-get update

sudo apt-get install php7.0 php5.6 php5.6-mysql php-gettext php5.6-mbstring php-xdebug libapache2-mod-php5.6 libapache2-mod-php7.0

Alterne a versão do PHP (Apache):

  • do php5.6 para o php7.0:
    sudo a2dismod php5.6 ; sudo a2enmod php7.0 ; sudo service apache2 restart

  • do php7.0 para o php5.6:
    sudo a2dismod php7.0 ; sudo a2enmod php5.6 ; sudo service apache2 restart

FlavioEscobar
fonte
11
FYI: O PPA que você usa é mantido pela pessoa que escreveu a resposta aceita. E a última linha nessa resposta: "Existe uma opção para co-instalar pacotes PHP 5.6 usando ppa: ondrej / php". Note que você não está instalando pacotes PHP5 também, mas php5.6
Muru
11
Existem várias diferenças no empacotamento e no local dos arquivos de configuração que qualquer um que procure pelos pacotes php5 antigos ficaria surpreso com os novos.
muru 9/05/19
Eu editei minha resposta para não dizer que a resposta aceita estava incorreta, mas apenas a estende.
FlavioEscobar
@NoBugs Possui a extensão imagick empacotada. Pare de vomitar coisas sem pelo menos verificar se são verdadeiras ou não.
13136 oerdnj
@FlavioEscobar Mesclamos suas edições na minha resposta. Obrigado por estender a resposta.
13136 oerdnj