¿Cómo instalar y configurar Apache y módulo PHP en Ubuntu 18.04 LTS?

Si estamos interesados en desarrollar en PHP, y llevarlo a cabo en un ámbito local, lo primero que necesitaremos instalar en nuestro sistema es un servidor HTTP que procesará nuestro código. Recordemos que PHP es un lenguaje que se ejecuta desde el lado del servidor, no del cliente, por lo que el uso de un servidor web que traduzca nuestro código a lenguaje del lado del cliente es fundamental.

Aunque existen diferentes servidores HTTP (como Nginx, Cherokee o Tomcat), Apache, por su versatilidad y por ser código abierto, es una potente alternativa. En Ubuntu 18 (y por lo general en todas las distros y versiones) lo instalaremos de la siguiente manera.

Antes instalar, es recomendable tener actualizado el sistema mediante apt-get update, y apt-get upgrade.
$ sudo apt-get install apache2

Por su parte, instalaremos el PHP de la siguiente manera

$ sudo apt-get install php

Con esto, tendremos instalado Apache y PHP en su última versión.

Necesitaremos también algo que conecte nuestro servidos Apache con nuestro motor PHP. Necesitaremos el módulo PHP para Apache. Lo instalaremos de la siguiente manera:

$ sudo apt-get install libapache2-mod-php

¿Dónde se encuentra la raíz de mi servidor Apache?

O, lo que es lo mismo, ¿dónde tengo que colocar mis ficheros php? La encontrarás en la siguiente ruta:

/var/www/html

¿Por qué no puedo escribir en la carpeta /var/www/html?

Cuando instalamos Apache en nuestro Ubuntu, el sistema crea un nuevo usuario (y, por consiguiente, un nuevo grupo) llamado www-data. Por medio de este usuario se establecerán las operaciones con nuestro servidor web. En este sentido, solo root y, en última instancia, www-data, serán los que puedan modificar el contenido de esta carpeta.

Como tener que loguearnos como el usuario www-data o como root para poder operar con nuestro servidor es bastante engorroso, tendremos que encontrar alguna estrategia para poder trabajar con él desde nuestro usuario habitual. Para ello, hay varias posibilidades (desde darle permiso 777 a la carpeta hasta cambiar el propietario de la misma), sin embargo, como no somos mucho de extremos, lo más sensato puede resumirse en estas dos opciones:

Incluir nuestro usuario en el grupo www-data

Para tener, de esta manera, permisos de grupo. Para llevarlo a cabo, suponiendo que mi usuario es Concha, lo ejecutaremos de esta forma en el terminal:

$ sudo usermod -a -G www-data concha

De esta forma, nuestro usuario pertenecerá al grupo del propietario de la carpeta, por lo que tendremos los permisos que se marquen para los miembros del grupo.

Hacer que la carpeta pertenezca al grupo sudo (del que forma parte nuestro usuario)

Para ello, ejecutaremos lo siguiente en el terminal:

$ sudo chgrp sudo /var/www/html/

¿Qué permisos debe tener la carpeta /var/www/html/ ?

Indiferentemente de que hayamos aplicado una u otra de las alternativas anteriormente expuestas, la carpeta /var/www/html debería tener el permiso 774 o 775 (nunca 777). Con el permiso 774, tanto propietario como grupo tendrán plenos privilegios sobre la carpeta; el resto de usuarios tendrá permisos de lectura (es decir, solo podrán ver los archivos). Con el permiso 775, además, estos últimos tendrán privilegios de ejecución.

El cambio de permisos se lleva a cabo en el terminal de la siguiente manera:

$ sudo chmod 775 /var/www/html/

De esta manera, siguiendo estos pasos, tendremos correctamente instalado nuestro servidor Apache con implementación PHP en Ubuntu 18.


Concha Alviz

Me llamo Concha Alviz y llevo, en esto del Diseño y de la Comunicación, más de una década. Licenciada en Publicidad y Relaciones Públicas, empecé mi carrera profesional como diseñadora gráfica en el campo de la Publicidad y el Marketing para, más adelante, especializarme en diseño web y en desarrollo de front-ends.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

l
Tradúcelo »