Servidor LAMP: una solución económica para webs dinámicas
Existen dos tipos de páginas web: estáticas y dinámicas. Las webs estáticas están alojadas en un servidor y creadas en lenguaje HTML. Están pensadas principalmente para mostrar una información permanente a la que es posible acceder en cualquier momento. El contenido de las páginas web dinámicas, por su parte, se genera de forma activa cada vez que se realiza una solicitud. Estas últimas resultan muy útiles cuando la temática de la web requiere actualizaciones regulares – por ejemplo, aquellas donde se presentan noticias, pronósticos del clima o datos del mercado de valores. Las páginas web dinámicas requieren una infraestructura especial, que consta de un sistema operativo, un servidor web, un gestor de bases de datos y uno o más lenguajes de programación; facilidades que ofrece por ejemplo, el servidor LAMP.
¿Qué es un servidor LAMP?
El acrónimo LAMP está compuesto por las iniciales de sus cuatro componentes: Linux, Apache, MySQL y PHP. Estos forman la infraestructura en el servidor, que hace posible la creación y el alojamiento de páginas web dinámicas. Los componentes individuales se acumulan unos sobre otros, por lo que esta plataforma también recibe el nombre de LAMP stack (del inglés “apilar”).
Su funcionamiento es muy simple. Linux sirve como sistema operativo base para ejecutar el servidor web Apache. Este último no puede interpretar contenidos dinámicos, pero es aquí donde PHP entra a ejercer sus funciones de programación del lado del servidor. El proceso funciona entonces de la siguiente manera: Apache le envía un código fuente al intérprete PHP, incluyendo la información correspondiente sobre las acciones del visitante de la web, y permite el acceso a la base de datos MySQL. El resultado es devuelto a Apache y este se muestra finalmente en el navegador web del visitante.
Un servidor LAMP es la opción preferida por muchos por sus bajo coste y su alta disponibilidad. Además, sus componentes individuales pueden ser reemplazados fácilmente por aquellos con las mismas funciones. Como sistema operativo se puede usar, por ejemplo, Windows (WAMP) o MacOS (MAMP). En vez de Apache, es común utilizar nginx como servidor web y en cuanto a gestor de bases de datos, MySQL y MariaDB son muy similares. Otros lenguajes de programación compatibles son Perl, Ruby o Python.
¿Cómo instalar un servidor LAMP?
Antes de instalar un servidor LAMP, es importante aclarar un par de cosas. Además, es fundamental asegurarse de que el hardware utilizado tenga la suficiente capacidad para instalar y trabajar con la infraestructura LAMP. En principio, este sistema no demanda un rendimiento muy superior, pero sí es importante contar al menos con el espacio necesario. Dependiendo del contenido que se ofrezca a los usuarios, puede ser necesario contar con un hardware más potente, como por ejemplo, servicios de almacenamiento de archivos en línea o servicios de streaming. Es importante considerar el tráfico de datos existente, el tráfico potencial, así como también el número de visitas.
Una vez conseguido el hardware, es posible decantarse por una de las muchas distribuciones existentes de Linux. Bien sea Red Hat, openSUSE, Debian, Ubuntu o CentOS, debe considerarse el nivel de conocimientos y manejo de Linux, como también el uso previsto para el servidor LAMP.
A continuación, encontrarás información detallada sobre cómo instalar los cuatro componentes de un servidor LAMP Ubuntu.
Primer paso: El sistema operativo
Muchas distribuciones de Linux están disponibles de forma gratuita como software de código abierto, incluso Ubuntu. Seguir los siguientes pasos y requisitos te permitirá ejecutarlo como sistema operativo, basado en Debian:
- Descarga o compra Ubuntu Server Edition en la página principal de Ubuntu; a continuación debes quemar el archivo ISO en un CD o guardarlo en una memoria USB.
- Inicia el sistema con ayuda del CD o de la memoria USB.
- Selecciona el idioma y comienza la instalación en el servidor.
- Introduce información sobre opciones de lenguaje, diseño del teclado, preferencias de red, nombre de host, zona horaria y contraseña.
- Configura el disco duro.
- Ahora el instalador escaneará el CD o la memoria USB del programa buscando actualizaciones. En este punto es recomendable seleccionar la opción que evita que se realicen actualizaciones de manera automática.
- Una vez terminada la instalación, se debe reiniciar el sistema e introducir lo siguiente en la línea de comandos:
sudo apt-get update
De esta forma habrás finalizado la instalación de Ubuntu, y por lo tanto, tendrás las bases para realizar la configuración de los demás componentes del servidor LAMP Ubuntu.
Segundo paso: El servidor web
En caso de que durante la instalación de Ubuntu, Apache no haya sido establecido como servidor web, es posible hacerlo en cualquier momento usando el siguiente comando:
sudo apt-get install apache2
La correcta instalación de Apache 2 (“2” corresponde a la versión más actual) puede ser verificada utilizando el enlace "localhost" o confirmando la IP del host a través de cualquier navegador web. Una vez aparece el mensaje “It works!”, puedes empezar con la configuración haciendo los siguientes ajustes:
- KeepAlive es una herramienta que mejorará la velocidad de tu página web, pero que también acaparará una gran cantidad de espacio en el disco. Por lo tanto, y especialmente para aquellos sistemas con menor capacidad, es recomendable seleccionar la opción “KeepAlive Off” en la ficha de configuración etc/apache2/apache2.conf.
- Apache utiliza el módulo Event como Módulo de MultiProcesamiento (MPMs), mientras que PHP usa el módulo Prefork. En la sección /etc/apache2/mods-available encontrarás los datos mpm_prefork.conf, y deberás configurarlos de la siguiente manera:
<IfModule mpm_prefork_module>
StartServers 2
MinSpareServers 6
MaxSpareServers 12
MaxRequestWorkers 39
MaxConnectionsPerChild 3000
</IfModule>
- También podrás desactivar el módulo Event, para luego activar el módulo Perfork:
sudo a2dismod mpm_event
sudo a2enmod mpm_prefork
- Para finalizar, solo tendrás que reiniciar el servidor:
sudo service apache2 restart
Tercer paso: El gestor de base de datos
El sistema MySQL opera como una especie de servidor en la que se pueden crear múltiples bases de datos. Por cada base de datos se pueden crear diferentes tablas. Uno o más clientes envían solicitudes al servidor MySQL, que puede instalarse con el siguiente comando:
sudo apt-get install mysql-server
Durante la instalación es posible determinar una contraseña para la cuenta de usuario raíz del servidor MySQL, algo que es altamente recomendado. El siguiente paso es la configuración de la seguridad de MySQL. El programa MySQL permite cambiar la contraseña, eliminar cuentas de usuarios anónimos o bases de datos de prueba, e incluso bloquea el acceso a la cuenta root a menos que se use el localhost. El comando de instalación es:
sudo apt-get install mysql-server
Para crear una base de datos en MySQL deberas iniciar sesión:
mysql -u root -p
A continuación podrás crear y determinar los derechos de acceso de los usuarios:
create database webdata;
grant all on webdata.*to “usuario” identified by “contraseña”;
Cuarto paso: El lenguaje de programación
El último paso en la configuración del LAMP stack es la instalación del lenguaje de programación – en este caso PHP, así como la de la librería PEAR (PHP Extension and Application Repository), que incluye útiles extensiones y módulos para PHP. La instalación se inicia con el comando:
sudo apt-get install php5 php-pear
También es recomendable instalar el soporte de MySQL para PHP5:
sudo apt-get install php5-mysql
Una vez finalizado el proceso de instalación, el archivo de configuración de PHP – que se encuentra en /etc/php5/apache2/php.ini, deberá ser modificado de la siguiente manera:
error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
error_log = /var/log/php/error.log
max_input_time = 30
De esta forma el sistema arrojará un reporte de errores para un mejor rendimiento. Además, es posible guardar aquellos errores en error.log. A continuación, se debe crear el directorio de registro para PHP y asignar los derechos de propietario del servidor Apache:
sudo mkdir /var/log/php
sudo chown www-data /var/log/php
Al cargar de nuevo Apache, se habrá completado la instalación del servidor LAMP:
sudo service apache2 reload
LAMP: El software de código abierto para cualquier proyecto web
La mayor ventaja de un software de código abierto es que su uso, por lo general, no tiene ningún coste. Otro de los beneficios es que, como su nombre indica, es un código de programación abierto y accesible para todos. Como consecuencia, los así llamados Open-source Software (OSS) le permiten a los usuarios desplegar aplicaciones y realizar mejoras en cualquier momento. A diferencia del software privado, este resulta muy atractivo incluso para usuarios experimentados, que pueden gestionar por si mismos el soporte y la configuración del producto.
Instalar un servidor LAMP no solo vale la pena debido a su flexibilidad y su bajo coste, sino también por la manera en que sus elementos se complementan. Los servidores LAMP permiten la operación y el desarrollo de páginas web estáticas y dinámicas. El ejemplo más reconocido es el software para wikis libre MediaWiki, desarrollado para Wikipedia y programado usando un sistema LAMP.