Revisé mis actualizaciones habituales de paquetes de servidor hoy y descubrí que ppa:ondrej/php5-5.6
se ha depreciado y ahora debemos actualizar a ppa:ondrej/php
.
Las instrucciones básicas proporcionadas son para ejecutar:
sudo add-apt-repository ppa:ondrej/php
Y entonces:
sudo apt-get update
sudo apt-get upgrade --show-upgraded
Mirando el nuevo repositorio, los nombres no parecen alinearse completamente, así que creo que tendré que hacer algunas instalaciones de apt-get para instalar todos los paquetes correctos. También parece que los subpaquetes (es decir, php-gd) se instalarán para todas las versiones de php y también pueden instalar php 5.5 y php 7.0 ( /programming/37197539/an-issue-after-ppaondrej- php5-deprecation )
Entonces mi pregunta es, ¿cuál es la forma más limpia de "cambiar" ppas y limpiar los paquetes existentes teniendo en cuenta que este es un servidor de producción? ¿Debo tratar de eliminar todos los paquetes instalados del PPA anterior y / o eliminar el PPA de mi sistema?
Todavía no está en la página principal del PPA, pero el mensaje de actualización dejó en desuso en junio de 2016, por lo que no es una línea de tiempo muy larga para reconstruir la imagen de nuestro servidor.
Encontré esta página, que proporciona instrucciones para cambiar la versión de PHP que usa Apache: https://dzone.com/articles/php-70-and-56-on-ubuntu
Respuestas:
Los
php5-*
paquetes antiguos son coinstalables con el nuevophpX.Y-*
esquema, por lo que lo primero que debe hacer es instalar y habilitar nuevos paquetes:Apache 2.4
Debe instalar nuevos
libapache2-mod-phpX.Y
paquetes y luego deshabilitar el antiguo php5 y habilitar el nuevo módulo versionado, por ejemplo, para PHP 5.6:NGINX / Apache 2.4 con PHP-FPM
Esto es aún más sencillo, simplemente instale
phpX.Y-fpm
y cambie la ruta del socket en la configuración de su servidor web/run/php/phpX.Y-fpm.sock
y copie la configuración anterior, por ejemplo, para PHP 5.6:Si ha definido más grupos FPM, debe copiar la configuración anterior a la nueva ruta, nuevamente para PHP 5.6:
Ahora bien, si desea eliminar los paquetes antiguos, usted podría encontrarse con algunos problemas ya que puede haber paquetes que requieren PHP5 edad * Los nombres, es posible que desee agregar
ppa:ondrej/php5-compat
que proporcionan fina capa de paquetes de compatibilidad ese mapaphp5-<foo>
aphp5.6-<foo>
para php5 principal * paquetes:¡Definitivamente intente esto primero en un entorno sin producción ! Lo bueno es que esto mantiene
/etc/php5
intacta la configuración anterior , por lo que puede migrar la configuración anterior.Después de actualizar los principales paquetes de PHP, es posible que desee buscar el resto de los
php5-*
paquetes e instalar su equivalente, por ejemploPrepararé una actualización para el repositorio php5-compat, que hará estas asignaciones automáticamente.
El texto más actualizado siempre se puede encontrar en los wikis de PPA DEB.SURY.ORG .
fuente
dpkg --get-selections | grep php
para enumerar todos los paquetes actuales para ayudar a las personas a mapear cosas (aunque el ppa de mapeo será muy útil para no tener que hacer eso y dejar que simplemente funcione). También podría ser bueno para incluirsudo add-apt-repository --remove ppa:whatever/ppa5-5.6