14.04 Atualize corretamente para ppa: ondrej / php a partir de ppa: ondrej / php5-5.6

10

Fiz minhas atualizações habituais de pacotes de servidores hoje e descobri que ppa:ondrej/php5-5.6foi preterido e agora precisamos fazer o upgrade para ppa:ondrej/php.

As instruções básicas fornecidas devem ser executadas:

sudo add-apt-repository ppa:ondrej/php

E depois:

sudo apt-get update
sudo apt-get upgrade --show-upgraded

Olhando para o novo repositório, os nomes parecem não estar completamente alinhados, então acho que precisarei fazer algumas instalações do apt-get para obter todos os pacotes corretos instalados. Parece também que os subpacotes (isto é, php-gd) serão instalados para todas as versões do php e também poderão instalar o php 5.5 e o php 7.0 ( /programming/37197539/an-issue-after-ppaondrej- deprecação do php5 )

Então, minha pergunta é: qual é a maneira mais limpa de "alternar" ppas e limpar os pacotes existentes, considerando que este é um servidor de produção? Devo tentar remover todos os pacotes instalados do PPA anterior e / ou remover o PPA do meu sistema?

Ainda não está na página principal do PPA, mas a mensagem de atualização foi descontinuada em junho de 2016, portanto, não é um cronograma muito longo para reconstruir nossa imagem de servidor.

Eu encontrei esta página, que fornece instruções para mudar a versão PHP que o apache usa: https://dzone.com/articles/php-70-and-56-on-ubuntu

Loren
fonte
1
Escreverei um texto sobre o tópico no wiki do repositório aqui: github.com/oerdnj/deb.sury.org/wiki . Só preciso encontrar um pouco de tempo livre. Todos estão convidados a iniciar e contribuir entretanto :)
oerdnj

Respostas:

12

Os php5-*pacotes antigos são co-instaláveis ​​com o novo phpX.Y-*esquema, portanto, a primeira coisa que você precisa fazer é instalar e ativar novos pacotes:

Apache 2.4

Você precisa instalar novos libapache2-mod-phpX.Ypacotes, desativar o antigo php5 e ativar o novo módulo de versão, fe para PHP 5.6:

sudo apt-get install libapache2-mod-php5.6
sudo a2dismod php5
sudo a2enmod php5.6

NGINX / Apache 2.4 com PHP-FPM

Isso é ainda mais simples: basta instalar phpX.Y-fpme alterar o caminho do soquete na configuração do servidor da web /run/php/phpX.Y-fpm.socke copiar a configuração antiga, fe para PHP 5.6:

sudo apt-get install php5.6-fpm
# now change the socket path in your nginx/apache2 configuration
# and restart the server

Se você definiu mais pools de FPM, precisará copiar a configuração antiga para o novo caminho, novamente para o PHP 5.6:

# keep the new www.conf
sudo mv /etc/php/5.6/fpm/pool.d/www.conf /etc/php/5.6/fpm/pool.d/www-5.6.conf
# copy the old configuration to the new path
sudo cp /etc/php5/fpm/pool.d/* /etc/php/5.6/fpm/pool.d/
sudo update-rc.d php5-fpm disable # or uninstall php5-fpm package
# restart PHP 5.6 FPM to read the new configuration
sudo service php5.6-fpm restart

Agora, se você deseja remover os pacotes antigos, que você pode funcionar em alguns problemas, porque pode haver pacotes que requerem idade PHP5 * nomes, você pode querer adicionar ppa:ondrej/php5-compatque fornecem fina camada de pacotes de compatibilidade que mapa php5-<foo>para php5.6-<foo>para php5 principal * Pacotes:

sudo add-apt-repository ppa:ondrej/php5-compat
sudo apt-get update
sudo apt-get dist-upgrade

Definitivamente, tente isso primeiro em um ambiente de não produção ! O lado bom é que isso mantém /etc/php5intocada a configuração antiga , para que você possa migrar as configurações antigas.

Após atualizar os principais pacotes PHP, convém procurar o restante dos php5-*pacotes e instalar seus equivalentes, por exemplo,

apt-get install php-apcu # for php5-apcu
apt-get install php-memcached # for php5-memcached

Prepararei uma atualização para o repositório php5-compat, que fará esses mapeamentos automaticamente.

O texto mais atualizado pode ser sempre encontrado nos Wikis DEB.SURY.ORG PPA .

oerdnj
fonte
1
Obrigado por todo o seu trabalho! Nós temos um servidor intermediário no qual tentarei tudo primeiro. Em suas instruções, você pode incluir algo sobre a execução dpkg --get-selections | grep phppara listar todos os pacotes atuais para ajudar as pessoas a mapear as coisas (embora o ppa de mapeamento seja super útil por não ter que fazer isso e deixar que funcione.) Também pode ser bom para incluirsudo add-apt-repository --remove ppa:whatever/ppa5-5.6
Loren
Boa ideia com a remoção do PPA antigo.
Oerdnj 17/05
1
Hey @oerdnj. Não deveria ser a2dismod em vez de phpdismod? E a2enmod em vez de phpenmod?
Wojtek Naruniec
Boa captura, fixa.
22616 oerdnj
A extensão dbase não funciona com o seu módulo 5.6, eu poderia compilá-lo anteriormente para a versão 5.6 antiga, mas não para o novo repositório. Ele é compilado para a versão 5.5 antiga. mas a versão 5.6 é executada para que o módulo seja perdido. Há alguma chance de você não desabilitar o antigo 5.6 ppa?
Tebe