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 pri­n­ci­pa­l­me­n­te para mostrar una in­fo­r­ma­ción pe­r­ma­ne­n­te 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 ac­tua­li­za­cio­nes regulares – por ejemplo, aquellas donde se presentan noticias, pro­nó­s­ti­cos del clima o datos del mercado de valores. Las páginas web dinámicas requieren una in­frae­s­tru­c­tu­ra especial, que consta de un sistema operativo, un servidor web, un gestor de bases de datos y uno o más lenguajes de pro­gra­ma­ción; fa­ci­li­da­des que ofrece por ejemplo, el servidor LAMP.

¿Qué es un servidor LAMP?

El acrónimo LAMP está compuesto por las iniciales de sus cuatro co­m­po­ne­n­tes: Linux, Apache, MySQL y PHP. Estos forman la in­frae­s­tru­c­tu­ra en el servidor, que hace posible la creación y el alo­ja­mie­n­to de páginas web dinámicas. Los co­m­po­ne­n­tes in­di­vi­dua­les se acumulan unos sobre otros, por lo que esta pla­ta­fo­r­ma también recibe el nombre de LAMP stack (del inglés “apilar”).

Su fu­n­cio­na­mie­n­to es muy simple. Linux sirve como sistema operativo base para ejecutar el servidor web Apache. Este último no puede in­te­r­pre­tar co­n­te­ni­dos dinámicos, pero es aquí donde PHP entra a ejercer sus funciones de pro­gra­ma­ción del lado del servidor. El proceso funciona entonces de la siguiente manera: Apache le envía un código fuente al in­té­r­pre­te PHP, in­clu­ye­n­do la in­fo­r­ma­ción co­rre­s­po­n­die­n­te 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 fi­na­l­me­n­te en el navegador web del visitante.

Un servidor LAMP es la opción preferida por muchos por sus bajo coste y su alta di­s­po­ni­bi­li­dad. Además, sus co­m­po­ne­n­tes in­di­vi­dua­les pueden ser re­em­pla­za­dos fá­ci­l­me­n­te 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 pro­gra­ma­ción co­m­pa­ti­bles son Perl, Ruby o Python.

¿Cómo instalar un servidor LAMP?

Antes de instalar un servidor LAMP, es im­po­r­ta­n­te aclarar un par de cosas. Además, es fu­n­da­me­n­tal ase­gu­rar­se de que el hardware utilizado tenga la su­fi­cie­n­te capacidad para instalar y trabajar con la in­frae­s­tru­c­tu­ra LAMP. En principio, este sistema no demanda un re­n­di­mie­n­to muy superior, pero sí es im­po­r­ta­n­te contar al menos con el espacio necesario. De­pe­n­die­n­do del contenido que se ofrezca a los usuarios, puede ser necesario contar con un hardware más potente, como por ejemplo, servicios de al­ma­ce­na­mie­n­to de archivos en línea o servicios de streaming. Es im­po­r­ta­n­te co­n­si­de­rar el tráfico de datos existente, el tráfico potencial, así como también el número de visitas.

Una vez co­n­se­gui­do el hardware, es posible de­ca­n­tar­se por una de las muchas di­s­tri­bu­cio­nes exi­s­te­n­tes de Linux. Bien sea Red Hat, openSUSE, Debian, Ubuntu o CentOS, debe co­n­si­de­rar­se el nivel de co­no­ci­mie­n­tos y manejo de Linux, como también el uso previsto para el servidor LAMP.

A co­n­ti­nua­ción, en­co­n­tra­rás in­fo­r­ma­ción detallada sobre cómo instalar los cuatro co­m­po­ne­n­tes de un servidor LAMP Ubuntu.

Primer paso: El sistema operativo

Muchas di­s­tri­bu­cio­nes de Linux están di­s­po­ni­bles de forma gratuita como software de código abierto, incluso Ubuntu. Seguir los si­guie­n­tes pasos y re­qui­si­tos te permitirá eje­cu­tar­lo como sistema operativo, basado en Debian:

  1. Descarga o compra Ubuntu Server Edition en la página principal de Ubuntu; a co­n­ti­nua­ción debes quemar el archivo ISO en un CD o guardarlo en una memoria USB.
  2. Inicia el sistema con ayuda del CD o de la memoria USB.
  3. Se­le­c­cio­na el idioma y comienza la in­s­ta­la­ción en el servidor.
  4. Introduce in­fo­r­ma­ción sobre opciones de lenguaje, diseño del teclado, pre­fe­re­n­cias de red, nombre de host, zona horaria y co­n­tra­se­ña.
  5. Configura el disco duro.
  6. Ahora el in­s­ta­la­dor escaneará el CD o la memoria USB del programa buscando ac­tua­li­za­cio­nes. En este punto es re­co­me­n­da­ble se­le­c­cio­nar la opción que evita que se realicen ac­tua­li­za­cio­nes de manera au­to­má­ti­ca.
  7. Una vez terminada la in­s­ta­la­ción, se debe reiniciar el sistema e in­tro­du­cir lo siguiente en la línea de comandos:
sudo apt-get update

De esta forma habrás fi­na­li­za­do la in­s­ta­la­ción de Ubuntu, y por lo tanto, tendrás las bases para realizar la co­n­fi­gu­ra­ción de los demás co­m­po­ne­n­tes del servidor LAMP Ubuntu.

Segundo paso: El servidor web

En caso de que durante la in­s­ta­la­ción de Ubuntu, Apache no haya sido es­ta­ble­ci­do como servidor web, es posible hacerlo en cualquier momento usando el siguiente comando:

sudo apt-get install apache2

La correcta in­s­ta­la­ción de Apache 2 (“2” co­rre­s­po­n­de a la versión más actual) puede ser ve­ri­fi­ca­da uti­li­za­n­do el enlace "localhost" o co­n­fi­r­ma­n­do la IP del host a través de cualquier navegador web. Una vez aparece el mensaje “It works!”, puedes empezar con la co­n­fi­gu­ra­ción haciendo los si­guie­n­tes ajustes:

  1. KeepAlive es una he­rra­mie­n­ta 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 es­pe­cia­l­me­n­te para aquellos sistemas con menor capacidad, es re­co­me­n­da­ble se­le­c­cio­nar la opción “KeepAlive Off” en la ficha de co­n­fi­gu­ra­ción etc/apache2/apache2.conf.
  2. Apache utiliza el módulo Event como Módulo de Mu­l­ti­Pro­ce­sa­mie­n­to (MPMs), mientras que PHP usa el módulo Prefork. En la sección /etc/apache2/mods-available en­co­n­tra­rás los datos mpm_prefork.conf, y deberás co­n­fi­gu­rar­los de la siguiente manera:
<IfModule mpm_prefork_module>
StartServers              2
MinSpareServers           6
MaxSpareServers           12
MaxRequestWorkers         39
MaxConnectionsPerChild    3000
</IfModule>
  1. También podrás des­ac­ti­var el módulo Event, para luego activar el módulo Perfork:
sudo a2dismod mpm_event
sudo a2enmod mpm_prefork
  1. 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 di­fe­re­n­tes tablas. Uno o más clientes envían so­li­ci­tu­des al servidor MySQL, que puede in­s­ta­lar­se con el siguiente comando:

sudo apt-get install mysql-server

Durante la in­s­ta­la­ción es posible de­te­r­mi­nar una co­n­tra­se­ña para la cuenta de usuario raíz del servidor MySQL, algo que es altamente re­co­me­n­da­do. El siguiente paso es la co­n­fi­gu­ra­ción de la seguridad de MySQL. El programa MySQL permite cambiar la co­n­tra­se­ñ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 in­s­ta­la­ció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 co­n­ti­nua­ción podrás crear y de­te­r­mi­nar 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 pro­gra­ma­ción

El último paso en la co­n­fi­gu­ra­ción del LAMP stack es la in­s­ta­la­ción del lenguaje de pro­gra­ma­ción – en este caso PHP, así como la de la librería PEAR (PHP Extension and Ap­pli­ca­tion Re­po­si­to­ry), que incluye útiles ex­te­n­sio­nes y módulos para PHP. La in­s­ta­la­ción se inicia con el comando:

sudo apt-get install php5 php-pear

También es re­co­me­n­da­ble instalar el soporte de MySQL para PHP5:

sudo apt-get install php5-mysql

Una vez fi­na­li­za­do el proceso de in­s­ta­la­ción, el archivo de co­n­fi­gu­ra­ción de PHP – que se encuentra en /etc/php5/apache2/php.ini, deberá ser mo­di­fi­ca­do 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 re­n­di­mie­n­to. Además, es posible guardar aquellos errores en error.log. A co­n­ti­nua­ción, se debe crear el di­re­c­to­rio de registro para PHP y asignar los derechos de pro­pie­ta­rio del servidor Apache:

sudo mkdir /var/log/php
sudo chown www-data /var/log/php

Al cargar de nuevo Apache, se habrá co­m­ple­ta­do la in­s­ta­la­ció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 be­ne­fi­cios es que, como su nombre indica, es un código de pro­gra­ma­ción abierto y accesible para todos. Como co­n­se­cue­n­cia, los así llamados Open-source Software (OSS) le permiten a los usuarios desplegar apli­ca­cio­nes y realizar mejoras en cualquier momento. A di­fe­re­n­cia del software privado, este resulta muy atractivo incluso para usuarios ex­pe­ri­me­n­ta­dos, que pueden gestionar por si mismos el soporte y la co­n­fi­gu­ra­ción del producto.

Instalar un servidor LAMP no solo vale la pena debido a su fle­xi­bi­li­dad y su bajo coste, sino también por la manera en que sus elementos se co­m­ple­me­n­tan. Los se­r­vi­do­res LAMP permiten la operación y el de­sa­rro­llo de páginas web estáticas y dinámicas. El ejemplo más re­co­no­ci­do es el software para wikis libre MediaWiki, de­sa­rro­lla­do para Wikipedia y pro­gra­ma­do usando un sistema LAMP.

Ir al menú principal