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

10

Eu passei pelos meus upgrades de pacote de servidor habituais hoje e descobri que ppa:ondrej/php5-5.6 foi depreciado e agora precisamos fazer o upgrade para ppa:ondrej/php .

As instruções básicas fornecidas são:

sudo add-apt-repository ppa:ondrej/php

E então:

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 eu acho que precisarei fazer algumas instalações do apt-get para ter todos os pacotes corretos instalados. Parece também que os sub-pacotes (ie php-gd) serão instalados para todas as versões php e também podem instalar o php 5.5 e php 7.0 ( link )

Então, minha pergunta é: qual é a maneira mais limpa de "trocar" os 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 deu uma depreciação em junho de 2016, portanto, não é uma linha do tempo muito longa para reconstruir a imagem do nosso servidor.

Eu encontrei esta página, que fornece instruções para trocar a versão do PHP que o apache usa: link

    
por Loren 17.05.2016 / 15:53

1 resposta

11

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

Apache 2.4

Você precisa instalar novos pacotes libapache2-mod-phpX.Y , desativar o php5 antigo e ativar o novo módulo com versão, por exemplo. 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-fpm e alterar o caminho do soquete na configuração do servidor da Web para /run/php/phpX.Y-fpm.sock e copiar a configuração antiga, por exemplo, 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 do FPM, você precisa 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ê quiser remover os pacotes antigos, poderá encontrar alguns problemas, pois pode haver pacotes que exijam nomes antigos do php5 *, talvez você queira adicionar ppa:ondrej/php5-compat que fornecem uma camada fina de pacotes de compatibilidade que mapeiam php5-<foo> to php5.6-<foo> para pacotes principais do php5 *:

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

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

Após atualizar os pacotes principais do PHP, talvez você queira procurar o restante dos pacotes php5-* e instalar seus equivalentes, por exemplo

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

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

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

    
por oerdnj 17.05.2016 / 17:03