¿Cómo instalo la pila LEMP (Nginx, MariaDB y PHP) en Ubuntu 18.04 LTS? | Hosting mas barato

La pila LEMP es un poderoso conjunto de aplicaciones para desarrollar e implementar aplicaciones y páginas web dinámicas. La pila LEMP consiste tradicionalmente en Nginx, MySQL y PHP. Sin embargo, debido a la arquitectura modular de esta pila, estos componentes se pueden intercambiar y reemplazar por otros con la misma funcionalidad.
Este tutorial lo ayudará a instalar LEMP (Nginx, MariaDB y PHP) en su servidor Ubuntu 18.04.
Si ha instalado hosting VPS o hosting web de servidor dedicado con Ubuntu 18.04, ¡comencemos!
El primer paso para instalar la pila LEMP es instalar el servidor web Nginx:
$ sudo apt-get update $ sudo apt install nginx
Una vez completada la instalación, ejecute el siguiente comando para iniciar Nginx:
$ sudo systemctl start nginx
Luego, confirme el estado del servidor web que acaba de instalar:
$ sudo systemctl status nginx
Esto le dará el siguiente resultado:
● nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2018-10-29 07:58:38 EDT; 57s ago Docs: man:nginx(8) Process: 1836 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 1823 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 1839 (nginx) Tasks: 2 (limit: 2322) CGroup: /system.slice/nginx.service ├─1839 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; └─1841 nginx: worker process
Si el firewall UFW está habilitado en su servidor Ubuntu, debe configurarlo para permitir el servidor web Nginx. Debe habilitar el perfil más insostenible para permitir el tráfico que desea a través de UFW.
Primero, ejecute el siguiente comando para ver las aplicaciones que tienen un perfil aprovisionado en su servidor:
$ sudo ufw app list
Esto le dará el siguiente resultado:
Available applications Apache Apache Full Apache Secure Nginx Full Nginx HTTP Nginx HTTPS OpenSSH
A partir del resultado anterior, OpenSSH y Nginx han implementado perfiles UFW en sus sistemas Ubuntu.
$ sudo ufw allow in"Nginx Full"
Verifique el estado de UFW:
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Nginx HTTP ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx HTTP (v6) ALLOW Anywhere (v6)
¡Eso es! Ahora está listo para ejecutar la página de prueba del servidor Nginx. Vaya a su navegador preferido y busque http: // dirección ip / o http: // localhost /
Si todo está bien, obtendrá la siguiente página:
Una vez que haya instalado el servidor web, el siguiente paso es instalar el servidor de la base de datos. Como se mencionó anteriormente, estamos instalando el servidor MariaDB, que es el mejor reemplazo para la base de datos MySQL.
Para instalar el servidor de base de datos MariaDB desde el repositorio oficial de Ubuntu, ejecute el siguiente comando:
$ sudo apt install mariadb-server mariadb-client
Sin embargo, el MariaDB que se encuentra en estos repositorios puede no ser la última versión. Por lo tanto, para instalar el último servidor de base de datos MariaDB, debe instalarlo desde el repositorio oficial de MariaDB.
Para hacer esto, primero ejecute el siguiente comando para agregar el repositorio y luego importe las claves de instalación:
$ sudo apt-get install software-properties-common $ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 $ sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://sgp1.mirrors.digitalocean.com/mariadb/repo/10.3/ubuntu bionic main'
A continuación, ejecute el siguiente comando para actualizar el índice del paquete para aceptar el repositorio, luego instale el servidor de la base de datos. MariaDB:
$ sudo apt update $ sudo apt install mariadb-server
Ahora puede ejecutar el siguiente comando para confirmar la versión instalada de MariaDB:
$ sudo systemctl status mysql
Esto le dará un resultado similar al siguiente:
● mariadb.service - MariaDB 10.3.10 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2018-10-2405:39:11 EDT; 2min 57s ago Docs:man:mysql (8) https://mariadb.com/kb/en/library/systemd/ Main PID:3428 (mysqld) Status:"Taking your SQL requests now..." Tasks:32 (limit:1152) CGroup:/system.slice/mariadb.service └─994/usr/sbin/mysqld
Para hacer una copia de seguridad de MariaDB, ejecute el siguiente comando:
$ mysql_secure_installation
Se le pedirá que ingrese la contraseña actual de root. Como acaba de instalar MariaDB, presione Entrar para continuar. Esto lo guiará a través de una serie de indicaciones con preguntas que incluyen:
Set root password? [Y/n] type Y and press ENTER. Enter and reenter your prefered password and press enter to implement it. Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
Una vez que se respondan todas las preguntas, su instalación de MariaDB estará segura.
Ejecute el siguiente comando para implementar PHP:
$ sudo apt-get install php-fpm php-mysql
Una vez que PHP está instalado, el siguiente paso es hacer una copia de seguridad. Esto se puede hacer editando el php.ini Archivo. Primero, ejecute el siguiente comando para abrir este archivo:
$ sudo nano /etc/php/7.2/fpm/php.ini
Encuentra esa linea ; cgi.fix_pathinfo = 1 y reemplace 1 con 0:
cgi.fix_pathinfo=0
Guarde los cambios y salga del editor nano, luego ejecute el siguiente comando para reiniciar PHP-FPM:
$ sudo systemctl restart php7.2-fpm
A continuación, ejecute el siguiente comando para verificar el estado del servicio PHP-FPM:
$ sudo systemctl status php7.2-fpm
Esto le dará un resultado similar al siguiente:
● php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2018-10-2908:12:46 EDT; 7s ago Docs:man:php-fpm7.2(8) Main PID:29535 (php-fpm7.2) Status:"Process active: 0, Idle: 2, Request: 0, Slow: 0, Traffic: 0req/se " Tasks:3 (limit:1152) CGroup:/system.slice/php7.2-fpm.service ............
Primero, ejecute el siguiente comando para abrir el archivo de hosts virtuales de Nginx:
$ sudo nano /etc/nginx/sites-available/default
Busque la parte del servidor y agregue la dirección IP o FQDN de su servidor Ubuntu 18.04: también verifique que el index.php Se agrega la línea:
[...] server { listen 80 default_server; listen [::]:80 default_server; [...] root /var/www/html; # Add index.php to the list if you are using PHP index index.php index.html index.htm index.nginx-debian.html; server_name 192.168.225.22; [...]
A continuación, búscalo # ubicación ~ .php $ Secciona y ajusta las líneas como se resalta a continuación:
location ~ .php$ { include snippets/fastcgi-php.conf; # ## With php-fpm (or other unix sockets): fastcgi_pass unix:/run/php/php7.2-fpm.sock; ## With php-cgi (or other tcp sockets): # fastcgi_pass 127.0.0.1:9000; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # location ~ /.ht { deny all; } }
Guarde los cambios y salga del editor nano.
Ahora ejecute el siguiente comando para verificar el archivo alojado en el directorio / ejecutar / php:
$ ls /run/php/
Esto le dará el siguiente resultado:
php7.2-fpm.pidphp7.2-fpm.sock
El archivo almacenado en este directorio es php7.2-fpm.pid php7.2-fpm.sock y no php7.0-fpm.sock como se indica en la sección de ubicación ~ .php $. Asegúrese siempre de que el nombre ideal esté en el Ubicación ~ .php $ directiva.
A continuación, ejecute el siguiente comando para verificar el archivo de configuración de Nginx en busca de posibles errores de sintaxis:
$ sudo nginx -t
Si todo está bien, debería obtener el siguiente resultado:
nginx: the configuration file /etc/nginx/nginx.confsyntaxis ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Ahora reinicie el servicio Nginx:
$ sudo systemctl restart nginx
Para probar su configuración de PHP a través del navegador web, primero ejecute el siguiente comando para crear un info.php Archivo en la carpeta raíz del documento.
$ sudo nano /var/www/html/info.php
A continuación, agregue el siguiente contenido a este archivo:
<?php phpinfo(); ?>
Guarde los cambios y salga del editor Nano, reinicie Nginx para implementar estos cambios.
Ahora vaya a su navegador preferido y busque http: //IP-Adresse/info.php. Si PHP se ejecuta correctamente, debería obtener el siguiente resultado:
Ahora que tiene un servicio PHP completamente funcional, instale módulos PHP adicionales para expandir su funcionalidad. Si no está seguro de qué módulo PHP instalar, ejecute el siguiente comando para ver los módulos disponibles:
$ sudo apt-cachesearch php- | less
Esto le dará una salida de todos los módulos PHP que se pueden instalar en su servidor Ubuntu 18.04. Desplácese hacia arriba y hacia abajo para determinar qué módulo desea instalar. El comando utilizado para instalar los módulos PHP tiene el siguiente formato:
$ sudo apt-get install "module name"
Por ejemplo para instalar php-gd, ejecute el comando:
$ sudo apt-get install php-gd
Por otro lado, para instalar todos los módulos PHP disponibles, ejecute el comando:
$ sudo apt-get install php*
Si desea conocer más detalles sobre un módulo PHP, ejecute el comando:
$ sudo apt-cache show "module name"
Después de instalar los módulos PHP adicionales, ejecute el siguiente comando para reiniciar el servidor Nginx:
$ sudo systemctl restart nginx
¡Eso es! Ha instalado la pila LEMP en su servidor Ubuntu 18.04. Ahora puede implementar sus aplicaciones web y sitios web con la pila web LEMP recién instalada.