Cómo instalar y configurar LAMP en Debian 8 (Jessie)


Una de las cosas más importantes para configurar un servidor Linux es con el propósito de implementar un sitio web. Según la encuesta de NetCraft.com de febrero de 2016 del millón de sitios web más concurridos del mundo, aproximadamente el 49,90% de ellos se ejecutan en Apache.

Este tutorial explicará los conceptos básicos de la instalación y configuración de un servidor Linux (específicamente Debian 8 Jessie) para que funcione como un servidor LAMP.

En el mundo de la computación, LAMP es el acrónimo de Linux (aquí usando Debian 8), Apache, MySQL y PHP (LAMP).

LAMP se usa comúnmente para hacer referencia a la pila de software (específicamente MySQL y PHP) en un servidor web.

Antes de sumergirse en los aspectos de configuración, es importante conocer el servidor web Apache.

Apache fue uno de los servidores web “originales” y sus inicios se remontan a 1995. Apache todavía se usa ampliamente en la actualidad y se beneficia de la longevidad, gran cantidad de documentación y toneladas de módulos para agregar flexibilidad.

Instalación y configuración de MySQL y PHP

1. Esta primera parte describirá Debian como un servidor MySQL y PHP. El segmento Linux de LAMP ya debería estar hecho instalando Debian 8 siguiendo el artículo sobre TecMint:

  1. Instalación de Debian 8 Jessie

Una vez que Debian esté listo, ahora es el momento de instalar el software necesario usando el meta-empaquetador "apt".

# apt-get install mysql-server-5.5 php5-mysql php5

Durante la operación de instalación, el sistema puede pedirle que establezca una contraseña de usuario root de MySQL.

2. Una vez finalizada la instalación de MySQL y PHP, a menudo se recomienda asegurar la instalación de MySQL utilizando la utilidad mysql_secure_installation .

Una vez que ejecute el siguiente comando, le pedirá al usuario que elimine cosas como usuarios anónimos, pruebas de bases de datos y elimine el inicio de sesión remoto del usuario raíz en la base de datos SQL.

# mysql_secure_installation

Como ya configuramos la contraseña de root de MySQL durante la instalación de MySQL, simplemente ingrese esa contraseña para realizar cualquier cambio.

3. La siguiente serie de preguntas se referirá a eliminar usuarios anónimos, la base de datos de "prueba" y eliminar el acceso raíz remoto a la base de datos.

4. Ahora que MySQL está configurado, avancemos para realizar algunas configuraciones básicas de PHP para este servidor en particular. Si bien hay un montón de configuraciones que se pueden configurar para PHP, haremos algunas básicas que en su mayoría siempre son necesarias.

El archivo de configuración php abierto se encuentra en /etc/php5/apache2/php.ini .

# vi /etc/php5/apache2/php.ini

Ahora busque la cadena "memory_limit" y aumente el límite según las necesidades de su aplicación.

Otra configuración importante a verificar es “max_execution_time” y nuevamente por defecto se establecerá en 30. Si una aplicación requiere más, esta configuración se puede cambiar.

En este punto, MySQL y PHP5 están listos para comenzar a alojar sitios. Ahora es el momento de configurar Apache2.

Instalación y configuración de Apache2

6. Ahora es el momento de configurar Apache 2 para finalizar la configuración del servidor LAMP. El primer paso para configurar Apache2 es instalar el software usando el meta-empaquetador de apt.

# apt-get install apache2

Esto instalará todos los archivos y dependencias necesarios para Apache2. Una vez instalado, el servidor web Apache estará activo y ofrecerá una página web predeterminada. Hay varias formas de confirmar que el servidor web Apache está funcionando. La opción más sencilla es utilizar la utilidad lsof:

# lsof -i :80

La otra opción es simplemente navegar a la dirección IP del servidor web. Suponiendo una instalación predeterminada de Debian, es probable que el sistema esté configurado para usar DHCP para obtener una dirección IP automáticamente. Para determinar la dirección IP del servidor, se puede utilizar una de dos utilidades. Cualquiera de las dos empresas funcionará en esta situación.

# ip show addr			[Shown below in red]
# ifconfig			[Shown below in green]

Independientemente de la utilidad utilizada, la dirección IP obtenida se puede ingresar en un navegador web en una computadora en la misma red para confirmar que Apache muestra la página predeterminada.

En este punto, Apache está en funcionamiento. Si bien la página predeterminada de Debian es un sitio web llamativo, la mayoría de los usuarios querrán alojar algo personalizado. Los siguientes pasos lo guiarán a través de la configuración de Apache 2 para alojar un sitio web diferente.

7. Debian ha empaquetado algunas utilidades útiles para administrar sitios y módulos. Antes de explicar cómo utilizar estas utilidades, es importante comprender las funciones que cumplen.

  1. a2ensite: esta utilidad se utiliza para habilitar un sitio web después de que se haya creado el archivo de configuración apropiado.
  2. a2dissite: esta utilidad se utiliza para deshabilitar un sitio web especificando el archivo de configuración del sitio web.
  3. a2enmod: esta utilidad se utiliza para habilitar módulos Apache2 adicionales.
  4. a2dismod: esta utilidad se utiliza para deshabilitar módulos adicionales de Apache2.
  5. a2query: esta utilidad se puede utilizar para recopilar información sobre los sitios actualmente habilitados.

Primero, recopilemos algo de experiencia con los dos primeros. Dado que Apache 2 aloja actualmente la "página web predeterminada", sigamos adelante y desactívela con a2dissite.

# a2dissite 000-default.conf

Este comando deshabilitará el sitio web de Apache predeterminado que se ve en la captura de pantalla anterior. Sin embargo, para que los cambios surtan efecto, se debe volver a cargar la configuración de Apache 2.

# service apache2 reload

Este comando le indicará a Apache 2 que actualice los sitios habilitados/deshabilitados que aloja actualmente. Esto se puede confirmar al intentar conectarse a la dirección IP del servidor web nuevamente y notar que no se muestra nada (algunas computadoras almacenarán información en caché, si la máquina aún muestra el sitio web predeterminado después de ejecutar los dos comandos anteriores, intente borrar el sitio web) caché de los navegadores). Otra opción para confirmar que el sitio ya no está habilitado es usar la utilidad a2query.

# a2query -s

Están sucediendo muchas cosas en esta captura de pantalla, así que analicemos las cosas. El cuadro verde de arriba es a2query -s que le indica a Apache 2 que indique qué sitios están siendo atendidos actualmente.

El cuadro amarillo es a2dissite 000-default.conf seguido de service apache2 reload. Estos dos comandos le indican a Apache 2 que desactive el sitio predeterminado y luego vuelva a cargar los sitios activos/inactivos.

El cuadro rojo es a2query -s que se está emitiendo de nuevo, pero observe que esta vez Apache responde que no se está sirviendo nada. Veamos ahora cómo crear un sitio no predeterminado. El primer paso es cambiar al directorio de configuración de Apache 2 que es /etc/apache2 usando la utilidad cd.

# cd /etc/apache2

Hay varios archivos y directorios importantes en este directorio, sin embargo, en aras de la brevedad, aquí solo se cubrirán las necesidades. Lo primero que debe hacer al configurar un nuevo sitio es crear un nuevo archivo de configuración en el directorio "sitios disponibles". Cambie los directorios al directorio "sitios disponibles" y luego cree un nuevo archivo de configuración.

# cd sites-available
# cp 000-default.conf tecmint-test-site.conf

Esto copiará la configuración del sitio predeterminado en el nuevo archivo de configuración del sitio para modificaciones adicionales. Abra la página de configuración del nuevo sitio con un editor de texto.

# nano tecmint-test-site.conf

Dentro de este archivo hay una línea muy importante para conseguir un sitio web alojado, esa línea es la línea "DocumentRoot". Esta línea le dice a Apache dónde están los archivos web necesarios que debería servir cuando lleguen solicitudes de recursos particulares. Por ahora, esta línea se establecerá en un directorio que no existe pero que pronto incluirá un sitio web simple para que lo muestre este servidor Debian.

DocumentRoot /var/www/tecmint

Guarde los cambios en este archivo y salga del editor de texto. Ahora, el directorio desde el que se le dijo a Apache 2 que sirviera archivos debe crearse y llenarse con archivos. Si bien este artículo funcionará con archivos HTML, es posible que no haya tiempo suficiente para explicar cómo crear un sitio web en pleno funcionamiento y deja ese proceso en manos del lector. Así que creemos el directorio para que apache lo sirva y agreguemos una página web html básica llamada "index.html".

# mkdir /var/www/tecmint
# touch /var/www/tecmint/index.html
# echo “It's ALIVE!” >> /var/www/tecmint/index.html

Los comandos anteriores crearán un nuevo directorio llamado "tecmint", así como un nuevo archivo llamado "index.html" en el directorio tecmint.

El comando echo colocará algo de texto en ese archivo para que realmente muestre algo en el navegador web cuando Apache atienda el sitio web.

Nota: ¡La página creada por el autor para este tutorial se mostrará de manera diferente! Ahora, usando los comandos discutidos anteriormente, es necesario decirle a Apache que sirva este nuevo documento html.

# a2ensite tecmint-test-site.conf
# service apache2 reload
# a2query -s tecmint-test-site.conf

El último comando anterior simplemente confirmará que Apache2 realmente está sirviendo el sitio web recién creado. En este punto, navegue un navegador web a la dirección IP del servidor nuevamente y vea si se muestra el sitio web recién creado (nuevamente, a las computadoras les gusta almacenar datos en caché y, como tal, pueden ser necesarias varias actualizaciones para obtener la nueva página web).

Si el recién creado "¡¡¡Está VIVO !!!" aparece el sitio, entonces Apache 2 se ha configurado correctamente y muestra el sitio web. ¡Felicidades! Si bien esta es una configuración simple que prepara un servidor LAMP de Linux para alojar un sitio, hay cosas mucho más complejas que se pueden hacer y la configuración depende en gran medida de ese objetivo final.