2 de enero de 2019

Instalando PHP 7 en Ubuntu

Instalando una versión de PHP moderna en Ubuntu, en este caso se tratará de instalar PHP 7, que por no estar en el repositorio estandar de Ubuntu requiere algunos pasos específicos.

Este artículo también sirve para otras versiones de PHP que no están disponible en los repositorios oficiales de Ubuntu.

Si se tratará de PHP 5 bastaría con ejecutar desde consola el siguiente comando y ya está!:

sudo apt install php5

Sin embargo, en este caso se trata de PHP 7 y como no se encuentra en el repositorio estandar u oficiales de Ubuntu (que se actualizan sin mucha regularidad), debemos agregar varios pasos.

Un sitio web donde se encuentran muchos repositorios para Ubuntu es: https://launchpad.net.

Preparando al nuevo repositorio PPA

PPA significa 'Personal Package Archive', es decir repositorios donde podremos incluir nuestros propios paquetes para Linux-Ubuntu.

En primero lugar, para que el repositorio donde se encuentra PHP 7 (que es un repositorio PPA) responda de modo similar a los respositorios estándar de Ubuntu bajo el comando apt (por ejemplo poder instalar y remover los paquetes), se requiere incluir algunos script al repositorio.

Lo descrito anteriormente lo hace el comando:

sudo apt update
sudo apt install -y software-properties-common

Al parecer el paquete software-properties-common reemplaza al python-software-properties.

En segundo lugar, intentado agregar la dirección del nuevo repositorio mediante la ejecución del comando:

sudo apt-add-repository ppa:ondrej/php

Esto nos desplegará la siguiente información:

 Co-installable PHP versions: PHP 5.6, PHP 7.x and most 
 requested extensions are included. Only Supported Versions 
 of PHP (http://php.net/supported-versions.php) for 
 Supported Ubuntu Releases (https://wiki.ubuntu.com/Releases)
 are provided. Don't ask for end-of-life PHP versions or 
 Ubuntu release, they won't be provided.

Debian oldstable and stable packages are provided as well:
 https://deb.sury.org/#debian-dpa

You can get more information about the packages at 
https://deb.sury.org

BUGS&FEATURES: This PPA now has a issue tracker:
https://deb.sury.org/#bug-reporting

CAVEATS:
1. If you are using php-gearman, you need to add ppa:ondrej/pkg-gearman
2. If you are using apache2, you are advised to add ppa:ondrej/apache2
3. If you are using nginx, you are advise to add ppa:ondrej/nginx-mainline
   or ppa:ondrej/nginx

PLEASE READ: If you like my work and want to give me a 
little motivation, please consider donating regularly: https://donate.sury.org/

WARNING: add-apt-repository is broken with non-UTF-8 locales, see
https://github.com/oerdnj/deb.sury.org/issues/56 for workaround:

# LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
 More info: https://launchpad.net/~ondrej/+archive/ubuntu/php
Press [ENTER] to continue or ctrl-c to cancel adding it

Entonces, NO CONTINUAMOS con la ejecución de comando y salimos mediante Ctrl + C (presionado la tecla Control junto a la tecla 'c').

En consecuencia, según el mensaje anterior debemos corregir la sintaxis del comando para agregar ese repositorio, además de incluir el repositorio del servidor web Apache:

sudo LC_ALL=C.UTF-8 apt-add-repository ppa:ondrej/php
sudo LC_ALL=C.UTF-8 apt-add-repository ppa:ondrej/apache2

Más información acerca del desarrollador del paquete: https://launchpad.net/~ondrej/+archive/ubuntu/php/.

Luego buscar el paquete en particular (php7):

sudo apt update
apt search php7

Lo anterior generará una lista con los paquetes de PHP7 disponibles, en consecuencia de esa lista elegiremos: php7.0, libapache2-mod-php7.0, php7.0-cli, php7.0-mysql, php7.0-curl, php7.0-gd, php7.0-sqlite3.

Finalmente, el comando de instalación de PHP version '7.0' con sus recursos más populares será:

sudo apt install php7.0 libapache2-mod-php7.0 php7.0-cli
sudo apt install php7.0-mysql php7.0-curl
sudo apt install php7.0-gd php7.0-sqlite3

En este punto, ya habremos concluido la instalación de PHP 7.0.

Referencia de comandos entre las versiones de APT

acción Version antigua Version moderna
actualizar la lista de paquetes apt-cache update apt update
instalar apt-get install apt install
desinstalar apt-get remove apt remove
desinstalar [1] apt-get --purge remove apt remove purge
mostrar detalles de un paquete apt-cache showpkg apt show
buscar un paquete apt-cache search apt search

Referencias

Conocer todos los paquetes instalados por APT:

# para ver los paquetes instalados:
apt list --installed

# para ver los paquetes upgrapeables:
apt list --upgradable

Nueva versión de APT: https://mvogt.wordpress.com/2014/04/04/apt-1-0/, https://hipertextual.com/archivo/2014/04/nuevo-apt-ubuntu/.

Avanced Packing Tool (APT): https://help.ubuntu.com/lts/serverguide/apt.html.en

Respositorios PPA: https://launchpad.net/ubuntu/+ppas.

Una guía de como usar repositorios PPA: https://help.launchpad.net/Packaging/PPA.