LAMP

Instalar servidor web en Ubuntu 18.04

Este artículo muestra como instalar un servidor web con Linux, Apache, MySQL y PHP (LAMP) de la forma más sencilla posible para ser utilizado en entornos de desarrollo. La versión de Linux Ubuntu que voy a utilizar es la 18.04, es posible que la forma en la que se instala, en otras versiones pueda variar. Una vez instalados todos los componentes, el siguiente paso es configurar todos los parámetros necesarios para optimizar el funcionamiento a demás de implementar toda la seguridad posible si nuestro servidor web va a funcionar en un entorno real.

Lo primero que yo hago es actualizar e instalar los repositorios instalados en ubuntu.

Desde el terminal ejecutamos los siguientes comandos para actualizar los repositorios ya instalados en nuestro Linux:

sudo apt update
sudo apt upgrade

Instalar Apache en Linux Ubuntu

Una vez completa la actualización de los repositorios ya podremos proceder a la instalación de nuestro servidor Apache:

sudo apt install apache2

Para asegurarnos de que todo ha ido bien, abrimos nuestro navegador favorito y escribimos dirección IP o nombre del servidor.

Por ejemplo: https://192.168.1.200

Tiene que aparecer la página web predeterminada de Apache. Aquí encontraremos información importante, como cual es el fichero de configuración del servidor Apache o la ruta predeterminada hacia el document root, directorio destinado para contener las páginas web.

Información de Apache

Instalar un servidor MySQL

MySQL es un sistema de administración de bases de datos. Por lo general las webs necesitan guardar o cargar datos de configuración, clientes, etc… y es aquí donde entran en juego las base de datos con distintas tablas para almacenar toda esta información.

El comando para instalar el servidor MySQL es:

sudo apt install mysql-server

Lo siguiente es configurar el acceso a la base de datos y eliminar algunos parámetros peligrosos. Existe un comando preinstalado que nos ayuda a realizar estas configuraciones de una forma muy sencilla:

sudo mysql_secure_installation

Te preguntará si quieres configurar la validación de contraseña: VALIDATE PASSWORD PLUGIN.
Nota: Esta configuración dependerá de las necesidades de tu servidor. Si está habilitada, una contraseña que no cumpla los criterios especificados, será rechazada por MySQL y generará un error.

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Press y|Y for Yes, any other key for No:

Si pulsas «Y», tendrás que seleccionar el nivel de validación de contraseña.

There are three levels of password validation policy:

LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG:

A continuación, escribe y confirma la contraseña para el usuario root de MySQL. Asegúrate de utilizar una contraseña fuerte (si el servidor se ejecuta en un entorno de producción), la contraseña nunca debería dejarse en blanco.
Cuando seleccionamos validación de contraseña, el asistente muestra el nivel de fortaleza de la contraseña para el usuario root y te pregunta si quieres cambiarla.

Using existing password for root.

Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) :

Para el resto preguntas, solamente escribe «Y» y pulsa la tecla Enter.

Llegados a este punto es muy recomendable instalar alguna herramienta que nos permita gestionar nuestras bases de datos fácil y cómodamente. Una de las más utilizadas es phpMyAdmin, aprende a instalar phpMyAdmin en Linux desde cero.

Instalar PHP

Según la documentación oficial, php es un lenguaje de código abierto pensado para el desarrollo web y que puede ser incrustado en HTML. Este lenguaje permite a nuestra web comunicarse con el servidor y realizar consultas a una base de datos.

El siguiente comando instalara PHP a demás de un modulo para ser ejecutado sobre el servidor web Apache y otro para que se comunique con la base de datos MySQL:

sudo apt install php libapache2-mod-php php-mysql

Nota: El administrador de paquetes apt instalara la versión más reciente de php que encuentre en sus repositorios (en este momento php7.2).

Para asegurarnos de que php se ha instalado correctamente y conocer más detalles sobre la configuración y los módulos cargados en php, nos posicionamos en el directorio /var/www/html (document root de Apache), y creamos un archivo nuevo con el nombre info.php.

sudo nano info.php

Dentro de el archivo escribimos la siguiente línea código y guardamos los cambios:

<?php phpinfo(); ?>

Para mostrar la configuración de PHP, abrimos un navegador web y en la barra de direcciones de nuestro navegador favorito escribimos https://IP o host/php.info

Por ejemplo: https://192.168.1.200/php.info

Información de PHP

Si todo esta correcto deberíamos ver algo parecido a la imagen de encima.

Instalar otra versión de PHP

Es posible que necesitemos tener varias versiones de PHP instaladas, a si que vamos a ver como instalar otras versiones y como decirle a nuestro servidor que versión tiene que ejecutar.

Es recomendable desactivar el módulo proxy_fcgi porque «podría» generar problemas en el cambio a php 5.6.

sudo a2dismod proxy_fcgi proxy
sudo service apache2 restart

Voy a instalar PHP 5.6 utilizando un repositorio de terceros. Las siguientes líneas de comando añaden el repositorio lo actualiza y después instala PHP v.5.6

$sudo add-apt-repository ppa:ondrej/php
$sudo apt update
$sudo apt install php5.6 php5.6-mysql php-gettext php5.6-mbstring php-xdebug libapache2-mod-php5.6

Cambiar entre versiones de PHP

De php5.6 a php7.2
Ejecutar las siguientes líneas de comando:

sudo a2dismod php5.6
sudo a2enmod php7.2
sudo service apache2 restart
sudo update-alternatives --set php /usr/bin/php7.2

De php7.2 a php5.6
Ejecutar las siguientes líneas de comando:

sudo a2dismod php7.2
sudo a2enmod php5.6
sudo service apache2 restart
sudo update-alternatives --set php /usr/bin/php5.6

Para ver la versión de PHP que se esta ejecutando sin necesidad de cargar el archivo info.php se puede usar el siguiente comando:

php -v

 

Comentarios y opiniones

Puede que tarde en responder, se paciente.

*
*