LEMP es una excelente alternativa a los servidores LAMP tradicionales. Nginx es más ligero y más rápido que Apache en algunas situaciones. También se puede configurar para hacer otras cosas útiles, como servir como un proxy inverso. Al igual que con LAMP, Debian es una excelente plataforma para servidores LEMP. Todo lo que necesita está disponible en los repositorios de Debian, por lo que es fácil comenzar.
PHPinfo en LEMP en Debian 10.
Requisitos de software y convenciones de la línea de comandos de Linux Categoría | Requisitos, convenciones o versión de software utilizada |
Sistema | Debian 10 Buster |
Software | Nginx, MariaDB y PHP |
Otro | Acceso privilegiado a su sistema Linux como root o a través de sudo comando. |
Convenciones | # – requiere que los comandos de Linux dados se ejecuten con privilegios de root, ya sea directamente como usuario root o mediante el uso de sudo comando $ – requiere que los comandos de Linux dados se ejecuten como un usuario normal sin privilegios |
Configurar MariaDB
El mejor lugar para comenzar a configurar su servidor LEMP es la base de datos. Para esta guía, MaraiDB servirá como base de datos. Dado que es un reemplazo directo para MySQL, MariaDB es una excelente opción. Antes de que pueda usar MariaDB para cualquiera de sus proyectos, necesitará configurarlo. No se necesita mucho para ejecutar una aplicación como WordPress, por lo que no llevará mucho tiempo.
Instalar MariaDB
Comience por instalar el servidor MariaDB.
$ sudo apt install mariadb-server
Configurar la base de datos
Con MariaDB instalado, está listo para preparar su base de datos para trabajar con aplicaciones web. MariaDB tiene un script que lo ayudará a proteger automáticamente su servidor de base de datos, así que comience por ejecutarlo.
$ sudo mysql_secure_installation
Siga las indicaciones del guión. Configure una contraseña de root, cuando se le solicite. Los valores predeterminados son buenos para todo lo demás.
Ahora, inicie sesión en MariaDB usando mysql
comando y especificando el root
usuario.
# mysql -u root -p
Crea una base de datos para tu proyecto.
CREATE DATABASE newdb;
A continuación, cree un usuario que se conectará y administrará la base de datos.
CREATE USER 'username'@'localhost' IDENTIFIED BY 'userpassword';
Ese usuario necesitará el control total de la base de datos para poder ejecutar una aplicación web. Otórguele todos los privilegios sobre la base de datos y sus tablas.
GRANT ALL PRIVILEGES ON newdb.* TO 'username'@'localhost';
Todo está configurado y listo para usar. Vacíe sus privilegios y salga de MariaDB.
FLUSH PRIVILEGES;
\q
Instalar PHP
PHP es la siguiente pieza del rompecabezas. No necesitará todo el paquete PHP de Debian, solo PHP-FPM. Instálelo con el módulo MySQL.
$ sudo apt install php-fpm php-mysql
Instalar Nginx
Casi todo está en su lugar. Solo necesita configurar el servidor web, Nginx. Para comenzar, instale Nginx en su sistema desde los repositorios de Debian.
$ sudo apt install nginx
Configurar Nginx
Nginx es un servidor web potente y ofrece un montón de opciones. Eso también significa que se necesita mucha configuración para que funcione exactamente como lo desea. Esta guía le brindará una configuración de trabajo básica, pero puede hacer mucho más con Nginx.
Las configuraciones del sitio de Nginx se almacenan en /etc/nginx/sites-available
y vinculado a /etc/nginx/sites-enabled
. Cree un nuevo archivo para la configuración de su servidor en /etc/nginx/sites-available
y ábralo en su editor de texto.
Comience por crear un bloque de servidor para decirle a Nginx que esta es una nueva configuración de sitio.
server {
}
El resto de su configuración irá en ese bloque. A continuación, agregue las direcciones de escucha. Estos son los números de puerto seguidos de atributos importantes de su sitio. Si este va a ser su sitio único o predeterminado, agregue default_server
después del número de puerto.
server {
listen 80 default_server;
listen [::]:80 default_server;
}
Agregue en la carpeta raíz web donde desea colocar su sitio. /var/www/html
es el valor predeterminado habitual. Siga eso informando a Nginx el nombre del índice de su sitio, más conocido como la página de inicio.
server {
listen 80 default_server;
listen [::]:80 default_server;
root /ver/www/html;
index index.php index.html;
}
Ahora, agregue el nombre de dominio de su sitio como server_name
. Si este es solo un servidor local, use _
en lugar de un dominio.
server {
listen 80 default_server;
listen [::]:80 default_server;
root /ver/www/html;
index index.php index.html;
server_name yourwebsite.com;
}
El siguiente bloque de configuración le dice a Nginx que busque archivos que coincidan con la dirección web actual.
server {
listen 80 default_server;
listen [::]:80 default_server;
root /ver/www/html;
index index.php index.html;
server_name yourwebsite.com;
location / {
try_files $uri $uri/ =404;
}
}
Configuración de Nginx para LEMP en Debian 10.
Finalmente, este último bloque le dice a Nginx que pase los archivos PHP a PHP-FPM. Ahí es donde se realizará la mayor parte del trabajo.
server {
listen 80 default_server;
listen [::]:80 default_server;
root /ver/www/html;
index index.php index.html;
server_name yourwebsite.com;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
}
}
Cuando haya terminado, guarde su configuración y salga. Ahora, vincúlelo a sites-enabled
.
$ sudo ln -s /etc/nginx/sites-available/your-site /etc/nginx/sites-enabled/your-site
Luego, reinicie el servidor para habilitar el sitio.
$ sudo systemctl restart nginx
Prueba tu servidor
La forma más fácil de asegurarse de que su servidor funcione correctamente es crear un nuevo archivo PHP en su raíz web para ejecutar código PHP. Crear index.php
en /var/www/html/
y ábralo con su editor de texto. Coloque la siguiente línea de código en el archivo y guárdelo.
<?php phpinfo(); ?>
Abra su navegador y navegue hasta su servidor. Debería ver una tabla de información de PHP sobre su servidor. Si lo hace, su servidor funciona normalmente y está listo para su aplicación PHP, como WordPress.
Conclusión
A partir de ahí, puedes hacer casi cualquier cosa. La configuración del servidor permanecerá en su lugar y todo debería seguir funcionando, a menos que lo cambie. También puede agregar varios sitios más al mismo servidor Nginx con configuraciones similares. Simplemente cambie el server_name
para apuntar a un dominio diferente.