Búsqueda de sitios web

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


Una de las razones más comunes para configurar un sistema Linux es el alojamiento de un sitio web. Según la encuesta de febrero de 2016 de NetCraft.com sobre el millón de sitios web más concurridos del mundo, aproximadamente el 15,60 % de ellos se ejecutan en Nginx.

Junto con la alta probabilidad de que se proporcione algún tipo de contenido dinámico, así como algún tipo de base de datos de fondo para los sitios web, la capacidad de un administrador para configurar servidores LEMP ¡Es muy beneficioso tanto para quienes buscan empleo como para empleadores!

Este tutorial recorrerá 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 LEMP.

¿Qué es el servidor LEMP?

¡Gran pregunta! Como ocurre con la mayoría de las cosas en el mundo de la informática, LEMP es el acrónimo de Linux, Nginx, MySQL y PHP.

Este acrónimo se utiliza comúnmente para hacer referencia a colecciones de software en un servidor web. Este tutorial primero le explicará cómo configurar LEMP, específicamente MySQL y PHP.

Antes de separarnos en los aspectos de configuración de los sistemas, es importante conocer Nginx.

¿Qué es Nginx?

Nginx comenzó su vida en 2002 cuando el mundo de la informática comenzó a darse cuenta de que los sitios web con diez mil o más conexiones simultáneas eran una posibilidad muy real y, como resultado, Nginx se creó desde cero para abordar este problema.

Instalación y configuración de MySQL y PHP

1. Esta primera sección cubrirá Debian como servidor MySQL y PHP. ¡La parte Linux del servidor LEMP ya debería estar terminada instalando Debian! Sin embargo, si necesita una guía sobre cómo instalar Debian, lea el siguiente artículo en TecMint:

  1. Instalación de Debian 8 Jessie

Una vez que Debian esté listo, el proceso de instalación del resto del software necesario se puede completar con un comando rápido usando el metapaqueteador 'apt'.

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

Dependiendo del hardware del sistema y de la conexión a Internet, este proceso podría tardar algún tiempo. Al momento de escribir este artículo, una instalación nueva de Debian Jessie con todas las actualizaciones aplicadas requería alrededor de 70 MB de archivos de los repositorios (¡no está tan mal considerando lo que hará el servidor cuando todo esté terminado)! Durante el proceso de instalación, el sistema puede solicitar al usuario que establezca una contraseña de usuario raíz de SQL. Esta es diferente a la contraseña del usuario root real y, por motivos de seguridad, probablemente debería seguir siendo diferente.

2. Una vez que apt termine de instalar todo el software, los servicios básicos estarán en funcionamiento. Sin embargo, detenerse aquí sería un tutorial muy breve. Así que profundicemos un poco más en la configuración de cada uno de los software instalados comenzando por MySQL.

3. Después de la instalación de MySQL, a menudo se recomienda que el servidor SQL realice algunas tareas básicas de mantenimiento en la instalación predeterminada. Esto se logra fácilmente con la utilidad mysql_secure_installation.

Este comando simplemente se ejecuta desde la línea de comandos y le pedirá al usuario que elimine cosas como usuarios anónimos, pruebe bases de datos y elimine la capacidad de iniciar sesión remotamente como usuario raíz en la base de datos SQL.

mysql_secure_installation

Este comando iniciará un mensaje interactivo que hará preguntas sobre los temas anteriores. Dado que apt ya solicitó una contraseña de root de MySQL, será necesario ingresar esa contraseña para realizar cualquier cambio. Dado que la contraseña de root ya estaba configurada, No puede ser la respuesta al mensaje sobre cómo cambiar la contraseña de root en el servidor MySQL.

4. El siguiente conjunto de preguntas se referirá a los usuarios anónimos, la base de datos 'test' y el acceso raíz a la base de datos de forma remota. Por lo general, es seguro responder a todas estas preguntas, a menos que exista una razón particular por la que la configuración necesite dejar intacta una de estas opciones.

NOTA: Puede haber un error al eliminar una base de datos llamada 'test', no se preocupe por esto ya que la base de datos puede o Es posible que no exista y, independientemente, el script seguirá haciendo lo que se necesita.

En este punto, MySQL está listo para funcionar. Sin saber qué bases de datos o usuarios se necesitarán, es difícil realizar mucha más configuración. Sin embargo, la mayoría de los sitios web suelen crear automáticamente las bases de datos y los usuarios necesarios cuando se instala el software. Sin embargo, esto depende en gran medida del software y requeriría un vistazo rápido a los archivos README del software o a las instrucciones de instalación.

5. Ahora que MySQL está configurado, avancemos y configuremos algunas configuraciones básicas de PHP para este servidor en particular. Si bien hay toneladas de configuraciones que pueden manipularse para PHP, solo hay unas pocas básicas que casi siempre deben modificarse. El archivo de configuración de PHP se encuentra en /etc/php5/fpm/php.ini. Abra este archivo con cualquier editor de texto.

nano /etc/php5/fpm/php.ini

Usando las capacidades de búsqueda de nano ctrl+w busque la cadena “memory_limit” (omitiendo las comillas). En una instalación predeterminada, esta línea ya estará configurada en 128M pero si una aplicación necesita más, esta línea se puede cambiar para adaptarla a los requisitos.

Otra opción importante a comprobar es “max_execution_time” y nuevamente, de forma predeterminada, se establecerá en 30. Si una aplicación requiere más, esta opción se puede cambiar. Algunas personas prefieren configurar también el registro de php en un archivo/directorio especial. Si esto fuera un requisito, busque la cadena “error_log =” y luego descomente la línea eliminando el punto y coma que generalmente está ahí de forma predeterminada.

En este punto, se puede agregar un valor para el archivo de registro al final de la línea. Asegúrese de que la ruta exista en el sistema. Una vez que haya terminado de realizar los cambios necesarios en el archivo php.ini, guarde los cambios y salga del editor de texto. En este punto, MySQL y PHP5 están listos para comenzar a alojar sitios. Ahora es el momento de configurar Nginx.

Instalación y configuración de Nginx

6. Nginx (motor X) es un servidor web alternativo y muy potente. Esta sección de este tutorial explicará cómo configurar una página web para que Nginx la aloje. El primer paso para configurar Nginx es instalar los paquetes necesarios usando la utilidad 'apt'.

apt-get install nginx

Suponiendo que se cumplan todas las dependencias, navegar a la dirección IP del servidor en un navegador web debería generar el sitio web predeterminado de Nginx.

NOTA: Hay casos en los que después de instalar Nginx, el servidor no se inicia automáticamente. Si navegar a la dirección IP del servidor en un navegador web no muestra la siguiente página, emita el siguiente comando para asegurarse de que se inicie Nginx.

service nginx start

Nginx ahora aloja correctamente la página predeterminada. Si bien la página predeterminada de Debian es un sitio web llamativo, la mayoría de los usuarios querrán alojar algo personalizado.

7. Los siguientes pasos le guiarán por la configuración de Nginx para alojar un sitio web diferente. Nginx, al igual que Apache 2, tiene su propio directorio de configuraciones ubicado en /etc/nginx. Cambie a este directorio usando la utilidad cd.

cd /etc/nginx

Para este tutorial hay varios archivos y directorios importantes para configurar un sitio web usando Nginx. Los dos primeros directorios que son importantes son los directorios "sitios disponibles" y "sitios habilitados". Al igual que Apache 2, Nginx utiliza archivos de configuración para cada sitio en el directorio de sitios disponibles que, cuando están activos, se vinculan simbólicamente en el directorio de sitios habilitados.

Lo primero que se necesita para deshacerse del sitio predeterminado es eliminar el enlace simbólico en los sitios habilitados.

rm sites-enabled/default

8. Ahora es necesario crear y vincular un nuevo archivo de configuración del sitio para que Nginx proporcione la página. La creación del archivo de configuración del sitio se puede simplificar copiando y modificando la configuración predeterminada del sitio.

cp sites-available/default sites-available/tecmint-test

Esto creará un nuevo archivo de configuración del sitio con el que trabajar. Abra este archivo en un editor de texto para cambiar la ruta en la que Nginx servirá los archivos.

nano sites-available tecmint-test

Dentro de este archivo hay varias opciones importantes que se deben cambiar para que Nginx proporcione un sitio. La primera es la línea que comienza con "root", ya que esta línea define dónde debe servir Nginx los archivos para este sitio en particular.

Este tutorial lo dejará como predeterminado '/var/www/html' y simplemente colocará los archivos html que se entregarán en este directorio. Sin embargo, asegúrese de modificar esta ruta si va a haber varios sitios o una configuración personalizada en este servidor.

La siguiente línea de importancia es la línea "índice". Dado que este artículo trata sobre la instalación de LEMP y un sitio podría potencialmente servir páginas php, es necesario informar a Nginx que la página predeterminada puede ser una página php. Para hacer esto, simplemente agregue 'index.php' al final de la lista de índice de archivos.

Antes de habilitar el nuevo sitio, debe haber algo que Nginx pueda servir. La página de índice predeterminada ya existe, pero para confirmar que otro sitio está funcionando, reemplacemos el contenido de la página predeterminada con algo más.

echo “It's ALIVE!” > /var/www/html/index.html

9. El siguiente paso es habilitar el nuevo sitio vinculando el archivo de configuración recién creado al directorio sites-enabled. Esto se logra fácilmente con el uso del comando ln y luego recargando la configuración de Nginx con la utilidad de servicio.

ln -s /etc/nginx/sites-available/tecmint-test sites-enabled/tecmint-test
service nginx reload

En este punto, Nginx debería estar ofreciendo la nueva página web "simple". ¡Esto se puede confirmar navegando a la dirección IP del servidor a través de un navegador web!

Nuevamente, este artículo pretende ser configuraciones muy simples de LEMP. La mayoría de los sitios requerirían una configuración adicional de todas las partes involucradas, ¡pero las opciones de configuración podrían ser miles! Mucha suerte con la configuración elegida para alojar sitios web.