GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar LEMP Stack (Nginx, MariaDB, PHP7.1) en Ubuntu 17.10

Este tutorial le mostrará cómo instalar Nginx, MariaDB y PHP7.1 (LEMP) en Ubuntu 17.10. Puede seguir este tutorial en un VPS (servidor privado virtual) o en una computadora Ubuntu 17.10 local. PHP7.1 está incluido en Ubuntu 17.10 y tiene un aumento de rendimiento menor sobre PHP7.0.

Paso 1:Actualizar paquetes de software

Antes de instalar la pila LEMP, es una buena idea actualizar el repositorio y los paquetes de software. Ejecute el siguiente comando en su sistema operativo Ubuntu 17.10.

sudo apt update

sudo apt upgrade

Paso 2:Instalar el servidor web Nginx

Nginx es un servidor web de alto rendimiento y muy popular en estos días. También se puede utilizar como un proxy inverso. Ingrese este comando para instalar el servidor web Nginx.

sudo apt install nginx

Después de instalarlo, podemos habilitar Nginx para que se inicie automáticamente cuando Ubuntu se inicie ejecutando el siguiente comando.

sudo systemctl enable nginx

Luego inicie Nginx con este comando:

sudo systemctl start nginx

Ahora comprueba su estado.

systemctl status nginx

Salida:

● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: en
   Active: active (running) since Tue 2017-12-12 06:17:50 UTC; 51s ago
     Docs: man:nginx(8)
 Main PID: 15672 (nginx)
    Tasks: 2 (limit: 4915)
   Memory: 6.3M
      CPU: 37ms
   CGroup: /system.slice/nginx.service
           ├─15672 nginx: master process /usr/sbin/nginx -g daemon on; master_pr
           └─15675 nginx: worker process

habilitado ” indica que el inicio automático en el momento del arranque está habilitado y podemos ver que Nginx se está ejecutando. Tenga en cuenta que el comando anterior no se cerrará inmediatamente después de ejecutarse. Tienes que pulsar “q ” para que se cierre.

Verifique la versión de Nginx.

nginx -v

Salida:

nginx version: nginx/1.12.1 (Ubuntu)

Ahora escriba la dirección IP pública de su servidor Ubuntu 17.10 en la barra de direcciones del navegador. Debería ver la página web "Bienvenido a Nginx", lo que significa que el servidor web Nginx se está ejecutando correctamente. Si está instalando LEMP en su computadora Ubuntu 17.10 local, escriba 127.0.0.1localhost en la barra de direcciones del navegador.

Finalmente, necesitamos hacer www-data (usuario de Nginx) como propietario del directorio raíz web. Por defecto, es propiedad del usuario root.

sudo chown www-data:www-data /usr/share/nginx/html -R

Paso 3:Instale el servidor de base de datos MariaDB

MariaDB es un reemplazo directo para MySQL. Está desarrollado por antiguos miembros del equipo de MySQL que están preocupados de que Oracle pueda convertir a MySQL en un producto de código cerrado. Ingrese el siguiente comando para instalar MariaDB en Ubuntu 17.10.

sudo apt install mariadb-server mariadb-client

Una vez instalado, el servidor MariaDB debería iniciarse automáticamente. Usa systemctl para comprobar su estado.

systemctl status mariadb

Salida:

● mariadb.service - MariaDB database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset:enabled) 
   Active: active (running) since Tue 2017-12-12 06:36:12 UTC; 6s ago
 Main PID: 17409 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 26 (limit: 4915)
   Memory: 59.9M
      CPU: 342ms
   CGroup: /system.slice/mariadb.service
           └─17409 /usr/sbin/mysqld

Si no se está ejecutando, inícielo con este comando:

sudo systemctl start mariadb

Para permitir que MariaDB se inicie automáticamente en el momento del arranque, ejecute

sudo systemctl enable mariadb

Ahora ejecute el script de seguridad posterior a la instalación.

sudo mysql_secure_installation

Cuando le pida que ingrese la contraseña raíz de MariaDB, presione la tecla Intro ya que la contraseña raíz aún no está configurada. Luego ingrese y para establecer la contraseña raíz para el servidor MariaDB.

A continuación, puede presionar Entrar para responder a todas las preguntas restantes, lo que eliminará al usuario anónimo, deshabilitará el inicio de sesión raíz remoto y eliminará la base de datos de prueba. Este paso es un requisito básico para la seguridad de la base de datos MariaDB. (Observe que Y está en mayúscula, lo que significa que presionar Intro es lo mismo que escribir Y).

De manera predeterminada, el paquete MaraiDB en Ubuntu usa unix_socket para autenticar el inicio de sesión del usuario, lo que básicamente significa que puede usar el nombre de usuario y la contraseña del sistema operativo para iniciar sesión en la consola de MariaDB. Entonces puede ejecutar el siguiente comando para iniciar sesión sin proporcionar la contraseña de root de MariaDB.

sudo mariadb -u root

Para salir, ejecuta

exit;

Verifique la información de la versión del servidor MariaDB.

mariadb --version

Como puede ver, hemos instalado MariaDB 10.1.25.

mariadb Ver 15.1 Distrib 10.1.25-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Paso 4:Instale PHP7.1

PHP7.1 está incluido en el repositorio de Ubuntu 17.10 y tiene un pequeño aumento de rendimiento sobre PHP7.0. Ingrese el siguiente comando para instalar PHP7.1 y algunas extensiones comunes.

sudo apt install php7.1 php7.1-fpm php7.1-mysql php-common php7.1-cli php7.1-common php7.1-json php7.1-opcache php7.1-readline php7.1-mbstring php7.1-xml php7.1-gd php7.1-curl

Las extensiones de PHP son comúnmente necesarias para los sistemas de gestión de contenido (CMS) como WordPress. Por ejemplo, si su instalación carece de php7.1-xml , entonces algunas de las páginas de su sitio de WordPress pueden estar en blanco y puede encontrar un error en el registro de errores de Nginx como:

PHP message: PHP Fatal error:  Uncaught Error: Call to undefined function xml_parser_create()

La instalación de estas extensiones de PHP garantiza que su CMS funcione sin problemas. Ahora inicie php7.1-fpm.

sudo systemctl start php7.1-fpm

Habilite el inicio automático en el momento del arranque.

sudo systemctl enable php7.1-fpm

Comprobar estado:

systemctl status php7.1-fpm

Salida de muestra:

● php7.1-fpm.service - The PHP 7.1 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.1-fpm.service; enabled; vendor preset:enabled)
   Active: active (running) since Tue 2017-12-12 06:53:08 UTC; 4min 25s ago
     Docs: man:php-fpm7.1(8)
 Main PID: 27560 (php-fpm7.1)
   Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/se
    Tasks: 3 (limit: 4915)
   Memory: 28.0M
      CPU: 58ms
   CGroup: /system.slice/php7.1-fpm.service
           ├─27560 php-fpm: master process (/etc/php/7.1/fpm/php-fpm.conf)
           ├─27580 php-fpm: pool www
           └─27583 php-fpm: pool www

Paso 5:Crear un bloque de servidor Nginx

Un bloque de servidor Nginx es como un host virtual en Apache. No usaremos el bloque de servidor predeterminado porque es inadecuado para ejecutar código PHP y si lo modificamos, se convierte en un desastre. Así que elimine el default enlace simbólico en sites-enabled directorio ejecutando el siguiente comando. (Todavía está disponible como /etc/nginx/sites-available/default .)

sudo rm /etc/nginx/sites-enabled/default

A continuación, cree un nuevo archivo de bloqueo del servidor en /etc/nginx/conf.d/ directorio.

sudo nano /etc/nginx/conf.d/default.conf

Pegue el siguiente texto en el archivo. Reemplace 12.34.56.78 con la dirección IP real de su servidor.

server {
  listen 80;
  listen [::]:80;
  server_name 12.34.56.78;
  root /usr/share/nginx/html/;
  index index.php index.html index.htm index.nginx-debian.html;

  location / {
    try_files $uri $uri/ /index.php;
  }

  error_page 404 /404.html;
  error_page 500 502 503 504 /50x.html;

  location = /50x.html {
    root /usr/share/nginx/html;
  }

  location ~ \.php$ {
    fastcgi_pass unix:/run/php/php7.1-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
  }

  location ~ /\.ht {
    deny all;
  }
}

Guarde y cierre el archivo. Luego pruebe las configuraciones de Nginx.

sudo nginx -t

Si la prueba es exitosa, vuelva a cargar Nginx.

sudo systemctl reload nginx

Paso 6:Pruebe PHP

Para probar PHP-FPM con el servidor web Nginx, necesitamos crear un info.php archivo en el directorio raíz del documento.

sudo nano /usr/share/nginx/html/info.php

Pegue el siguiente código PHP en el archivo.

<?php phpinfo(); ?>

Guarde y cierre el archivo. Ahora, en la barra de direcciones del navegador, ingrese server-ip-address/info.php . Reemplazar sever-ip-address con tu IP real. Si sigue este tutorial en su computadora local, escriba 127.0.0.1/info.phplocalhost/info.php .

Debería ver la información de PHP de su servidor. Esto significa que los scripts PHP pueden ejecutarse correctamente con el servidor web Nginx.

Cómo instalar PHP7.2

PHP7.2 es la última versión estable de PHP, lanzada el 30 de noviembre de 2017 y tiene un aumento de rendimiento menor que PHP7.1. Podemos agregar el PPA de Ondrej Sury para instalar PHP7.2 en Ubuntu 17.10. Ese tipo también es el mantenedor de Certbot PPA.

sudo apt install software-properties-common

sudo add-apt-repository ppa:ondrej/php

sudo apt update

Luego podemos instalar PHP7.2 y extensiones comunes usando el siguiente comando.

sudo apt install php7.2 php7.2-fpm php7.2-mysql php-common php7.2-cli php7.2-common php7.2-json php7.2-opcache php7.2-readline php7.2-mbstring php7.2-xml php7.2-gd php7.2-curl

Ahora inicie PHP7.2-FPM.

sudo systemctl start php7.2-fpm

Habilite el inicio automático en el momento del arranque del sistema.

sudo systemctl enable php7.2-fpm

Compruebe su estado:

systemctl status php7.2-fpm

Uso de PHP7.2-FPM con Nginx

Para hacer que Nginx use PHP7.2-FPM en lugar de PHP7.1-FPM, necesitamos editar el archivo de bloque del servidor Nginx.

sudo nano /etc/nginx/conf.d/default.conf

Busque la siguiente línea.

fastcgi_pass unix:/run/php/php7.1-fpm.sock;

Cambiar php7.1-fpm a php7.2-fpm .

fastcgi_pass unix:/run/php/php7.2-fpm.sock;

Guarde y cierre el archivo. Luego, vuelva a cargar Nginx para que el cambio surta efecto.

sudo systemctl reload nginx

Si actualiza server-ip-address/info.php página, verá que Nginx ahora usa PHP7.2-FPM.

PHP7.1 puede coexistir con PHP7.2. Si no desea utilizar PHP7.1, puede eliminarlo. Tenga en cuenta que algunas aplicaciones web pueden no ser compatibles con PHP7.2 como NextCloud 12. En mi prueba, WordPress funciona bien con PHP7.2.

¡Felicitaciones! Ha instalado con éxito Nginx, MariaDB y PHP7 en Ubuntu 17.10. Para la seguridad de su servidor, debe eliminar el archivo info.php ahora para evitar miradas indiscretas.

sudo rm /usr/share/nginx/html/info.php

¡Eso es todo! Espero que este tutorial te haya ayudado a instalar la pila LEMP en Ubuntu 17.10 . Como siempre, si esta publicación le resultó útil, suscríbase a nuestro boletín gratuito para obtener más consejos y trucos.


Ubuntu
  1. Cómo instalar LEMP Stack en Arch Linux

  2. Cómo instalar Nginx, MariaDB, PHP (LEMP Stack) en Debian 11

  3. Cómo instalar LEMP en Ubuntu 18.04

  4. Cómo instalar Magento 2.4 con LEMP Stack en Ubuntu 20.04

  5. Cómo instalar LEMP Stack Nginx, MySQL, PHP en Ubuntu 22.04

Cómo instalar LEMP en Ubuntu 15.10

Cómo instalar LEMP en Ubuntu 16.04

Cómo instalar la pila LAMP en Ubuntu 17.10

Cómo instalar LAMP Stack en Ubuntu 18.04 LTS

Cómo instalar LEMP Stack con PhpMyAdmin en Ubuntu 20.04

¿Cómo instalar LEMP Stack (Nginx, MariaDB, PHP7.2) en Ubuntu 18.04 LTS?