Igual que el script de "Growling Flea", pero con nuevas versiones.
Agregar el PPA
Los paquetes PHP 5.6 y PHP 7.0 son de un PPA de terceros, no provistos por los repositorios oficiales de Ubuntu de Canonical. Los PPA que recomiendo aquí son de Ondřej Surý, que empaqueta PHP para Debian (que luego es usado por Ubuntu), así que si bien no es un repositorio oficial, ¡no es exactamente al azar! El PPA en sí está
aquí
Para agregar el PPA a su configuración:
sudo add-apt-repository ppa:ondrej/php
Entonces también queremos obtener información sobre lo que se ofrece en este nuevo PPA, así que ejecute:
sudo apt-get update
Instalar nuevas versiones de PHP
Ya tenía algunos de los paquetes php5 instalados, pero no desinstalé nada, solo dejé que resolviera lo que quería hacer cuando le pedí que instalara las nuevas versiones:
sudo apt-get install php5.6 php7.0
Esto dio lugar a muchas quejas de apt y muchos conflictos. La primera resolución sugerida fue eliminar todos los paquetes php5 de stock para poder instalar PHP 5.6, así que acepté la primera sugerencia.
Utilizo apache, por lo que esta configuración me dio apache con los módulos php5.6 y php7.0 disponibles, y el módulo php5.6 realmente cargado.
Además del PHP en sí, todas las extensiones y otras herramientas que esperaría con PHP están disponibles para ambas versiones de PHP, por lo que es muy fácil agregar los módulos que necesita. Estaba muy, muy impresionado con lo bien que se hace esto.
Configurar y cambiar versiones
Ahora tiene dos versiones completamente separadas de PHP instaladas en su sistema, así que echemos un vistazo a dónde se fueron todas las piezas.
Todos los archivos de configuración están en /etc/php/5.6
y /etc/php/7.0
respectivamente: aquí es donde puede configurar qué extensiones se cargan, establecer la configuración ini y todo lo demás para cada versión de forma aislada.
Soy un usuario de Apache, y como mencioné, ambos módulos están disponibles. Entonces, para cambiar de uno a otro, tengo que hacer:
sudo a2dismod php5.6
sudo a2enmod php7.0
sudo service apache2 restart
Para los usuarios de nginx, los cambios son casi tan fáciles, Digital Ocean tiene buena documentación al respecto (¡tienen excelentes documentos!), Así que consulte su guía:
https://www.digitalocean.com/community/tutorials/how-to- upgrade-to-php-7-on-ubuntu-14-04
ya que incluye una sección sobre la configuración de nginx para usar otra versión de PHP.
Desde la línea de comandos, tengo php5.6 y php7.0 disponibles como comandos. También todavía tengo un comando php: busque en / etc / Alternatives para ver que se vincula simbólicamente a una versión particular de PHP cli *. También puede verificar rápidamente cuál está usando el suyo ejecutando php -v
.
* más específicamente, ejecute qué php para ver qué versión de PHP se está utilizando, pero esto probablemente apuntará /usr/bin/php
, lo que para mí es en sí mismo un enlace simbólico al /etc/alternatives/php
comando.
Trabajando con extensiones
Este PPA viene con el paquete php-pear habitual que ofrece el comando pecl para ambas versiones de PHP, por lo que cualquier extensión disponible a través de PECL se puede instalar de la manera habitual. También necesitará los encabezados relevantes para instalar php5.6-dev o php7.0-dev.
Cuando finalice la instalación de pecl, recibirá una nota para agregar el archivo * .so a su php.ini; de hecho, lo mejor que puede hacer aquí es mirar lo que está en /etc/php/mods-available
. Ya habrá algunos módulos aquí, cada uno en su propio archivo con el nombre de la extensión y terminando en .ini. Puede copiar uno para usarlo como plantilla o crear el suyo propio y poner toda la configuración relevante para la extensión (como mínimo, lo que necesita extension=[extensionName].so
).
Una vez que la nueva extensión esté en mods disponibles, habilítela y luego verifíquela haciendo:
sudo phpenmod extension
php -m
Esto creará los enlaces simbólicos en los lugares correctos para que su versión actual de PHP cargue este módulo, y debería verlo en la lista de módulos de salida del php -m
. Consejo profesional: si no lo ve en la salida, desplácese hasta la parte superior de la salida y vea si hay algún mensaje de error útil allí.