Cómo Instalar PHP en Debian 9

Cómo Instalar PHP en Debian 9

En esta entrada vamos a ver cómo instalar PHP en Debian 9 (para cualquier revisión) desde los repositorios oficiales de la distribución. Siguiendo con la serie de artículos de configuración de un servidor Linux basado en Debian, ya le toca el turno a este lenguaje de scripting del lado del servidor.

Hasta ahora hemos visto cómo instalar Debian 9, cómo instalar Apache en Debian 9 y cómo instalar MySQL en Debian 9. El paso lógico ahora es instalar PHP en Debian.

Antes de Instalar PHP en Debian 9

Para la instalación de PHP en Debian se asume que tenemos una versión actualizada de Debian, conexión a Internet y acceso al sistema con un usuario con privilegios de root o sudo.

Cómo Instalar PHP en Debian 9

Para instalar PHP en Debian 9 usaremos la versión existente en los repositorios, descargándola a través de apt. Como es costumbre, actualizamos la información de estos repositorios y procedemos con la descarga de PHP:

~$ sudo apt update && apt -y install php

El paquete php es un alias que apunta a la última versión disponible en el repositorio. Si lo que quieres es instalar PHP 7, en el momento de escribir esta entrada, Debian 9.6 ofrece por defecto PHP 7.0.

También hay que señalar que al instalar PHP en Debian se añadirán los paquetes del servidor web Apache si no estuviera instalado previamente. En cualquiera de los supuestos, al instalar PHP en Debian, nos quedará automáticamente Apache funcionando y configurado para un uso estándar con PHP.

Cómo comprobar que PHP funciona

Para comprobar empíricamente que PHP ha quedado configurado y listo para su uso en Apache, una forma rápida y sencilla de hacerlo es creando un archivo con extensión .php en algún lugar accesible por el servidor web. Por ejemplo, crearemos el archivo /var/www/html/phpinfo.php con el siguiente contenido:

<?php
   phpinfo();

No uso la etiqueta de cierre  ?> en el script porque no sólo no es necesario, sino que es una buena práctica.

Ahora, si accedemos a la URL correspondiente (por dominio o IP, según qué tengamos configurado en Apache) a través de un navegador, deberíamos ver algo como lo siguiente:

como instalar php en debian 9
PHP 7 en Debian 9: Test de funcionamiento de PHP a través de la funcion phpinfo()

 

A pesar de que es imposible crear un script PHP más pequeño, la información que obtenemos es enorme. Vale la pena consultarla no sólo tras instalar PHP por primera vez, si no más adelante, conforme vayamos añadiendo módulos y modificando configuraciones.

Cómo configurar PHP en Debian 9

Si has llegado hasta aquí tendrás un servidor web Apache 2 con PHP funcional. Pero querrás configurar PHP para afinarlo a las características de tu sitio web. Especialmente, querrás que PHP funcione de una forma u otra según si se trata de un servidor de desarrollo o un servidor de producción. Para ello editaremos el famoso archivo php.ini.

¿Dónde está php.ini en Debian 9?

PHP, como casi cualquier otro elemento del sistema, instala su configuración bajo /etc/, de modo que tenemos la carpeta /etc/php/7.0/ en la cual encontramos los distintos archivos de configuración, tanto de la interfaz de línea de comandos (cli), los módulos disponibles y, el que más suele interesar, la configuración para Apache.

Así que podemos encontrar el archivo php.ini en Debian bajo la ruta /etc/php/7.0/apache2/php.ini, con permisos de escritura sólo para root, por lo que para realizar ajustes de configuración necesitaremos tales privilegios.

~$ sudo nano /etc/php/7.0/apache2/php.ini

Configurar php.ini

Casi lo primero que tenemos que hacer al abrir php.ini con el editor es establecer el huso horario en que queremos que trabajen nuestras aplicaciones web sobre PHP.

Editaremos la cláusula date.timezone, que por defecto viene desactivada a través de un comentario, e indicaremos el uso horario deseado. Por ejemplo, para España el valor adecuado sería Europe/Madrid:

...

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Europe/Madrid

...

Si tu zona horaria es disintinta, puedes consultar todos los valores disponibles en http://php.net/manual/es/timezones.php y elegir el que te corresponde.

Lo siguiente que tenemos que configurar es el uso del servidor, como servidor de desarrollo o producción. Esto es muy importante porque un servidor en producción configurado como de desarrollo puede provocar graves problemas de seguridad al exponer cierta información en caso de errores de las aplicaciones.

Y al contrario, un servidor de desarrollo configurado como de producción nos provocará muchos dolores de cabeza al tratar de depurar errores en las aplicaciones que estemos desarrollando.

En definitiva, se trata de perfilar el manejo de errores en PHP. Existen ciertas cláusulas en php.ini que van a configurar el comportamiento de PHP ante los errores. En el propio php.ini aparecen comentarios indicando los valores óptimos para entornos de producción y desarrollo, por lo que nos limitaremos a especificar los valores concretos para cada cláusula.

Por ejemplo, si se trata de un servidor de desarrollo, querremos que PHP muestre la información de los errores que se produzcan. Editaríamos la sección de manejo de errores de php.ini asignando valores como se nos indica en el propio archivo:

...
; Development Value: E_ALL
; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
; http://php.net/error-reporting
error_reporting = E_ALL

...
; Development Value: On
; Production Value: Off
; http://php.net/display-errors
display_errors = On

...
; Development Value: On
; Production Value: Off
; http://php.net/display-startup-errors
display_startup_errors = On

...

Como puedes ver en el ejemplo, he asignado a cada cláusula los valores que indica la documentación para entornos de desarrollo. Para un entorno de producción (que debe ocultar toda la información posible sobre errores de la aplicación) bastaría con cambiar estos valores por los correspondientes.

Cómo instalar módulos de PHP en Debian 9

Al instalar PHP en Debian se incorporan un puñado de módulos por defecto, pero hay muchos más que podemos necesitar en cualquier momento, según los requerimientos de nuestras aplicaciones.

Para instalar módulos de PHP en Debian basta con usar apt indicando el módulo que necesitamos. Si no conocemos el nombre exacto del módulo, como pista tendremos en cuenta que la nomenclatura de los paquetes empieza por php- seguido del nombre del módulo. Examinando el listado de paquetes podemos encontrar lo que buscamos:

~$ sudo apt-cache search php |grep -i php
php-doctrine-orm - tool for object-relational mapping
php-geshi - Generic Syntax Highlighter
php-icinga - PHP library to communicate with and use Icinga
php-guestfs - guest disk image management system - PHP bindings
php-swiftmailer - Swiftmailer, free feature-rich PHP mailer
php-libvirt-php - libvirt bindings for PHP
php-amqp - AMQP extension for PHP
php-amqplib - pure PHP implementation of the AMQP protocol
php-analog - PHP micro logging package
...
...
...
php-symfony-yaml - convert YAML to PHP arrays and the other way around
php-tcpdf - PHP class for generating PDF files on-the-fly
php-tideways - Tideways PHP Profiler Extension
php-twig - Flexible, fast, and secure template engine for PHP
php-twig-doc - Twig template engine documentation
php-wikidiff2 - external diff engine for mediawiki
php-xdebug - Xdebug Module for PHP
php-zeroc-ice - PHP extension for Ice
~$

El listado es enorme, y en cada revisión de Debian y PHP se añaden más. Filtrando un poco más, si sabemos qué andamos buscando, podemos estrechar los resultados. Por ejemplo, si queremos buscar el módulo de MySQL para PHP, podemos filtrar la lista anterior:

~$ sudo apt-cache search php |grep -i ^php- |grep -i mysql
php-mysql - MySQL module for PHP [default]
php-mdb2-driver-mysql - mysql MDB2 driver
~$

Cuando hayamos encontrado el paquete del módulo que buscamos, o si ya sabíamos cuál era, lo instalaremos directamente con apt:

~$ sudo apt install php-mysql

Y con esto tendremos instalado el módulo con sus correspondientes dependencias.

Normalmente es necesario recargar la configuración de Apache para que PHP tenga en cuenta los módulos recién instalados:

~$ sudo systemctl reload apache2

Cómo configurar los módulos de PHP en Debian

Como ya vimos antes, la carpeta de configuraciones de PHP 7 es /etc/php/7.0/, dentro de la cual encontraremos mods-available/ en la que residen los distintos archivos .ini que sirven para ajustar la configuración de cada módulo.

Si tienes que perfilar la configuración de algún módulo basta editar (con permisos de root) el archivo .ini correspondiente y cambiar los valores que necesites. Si son módulos ejecutados bajo Apache, como es habitual, habrá que recargar la configuración del servidor web.

Conclusión

Ahora que ya sabes cómo instalar PHP en Debian 9, si has seguido los tutoriales anteriores, tu máquina ya está en condiciones de ejecutar complejas aplicaciones web tanto en entornos de desarrollo como de producción.

En siguientes entregas dotaremos a nuestra máquina Debian GNU/Linux de mayores capacidades, basadas en parte de lo que ya tenemos.

Para cualquier duda, pregunta, sugerencia o corrección, déjame un comentario.

¿Te ha servido este artículo? Si te ha resultado útil, quién sabe, ¡tal vez te apetece invitarme a un café!

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (3 votos, promedio: 5,00 de 5)
Cargando…

Deja un comentario

Cerrar menú

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información

ACEPTAR
Aviso de cookies