GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Instale varias instancias de Drupal con Nginx en Ubuntu 20.04

Drupal es una plataforma abierta, escalable y gratuita que se utiliza para crear y administrar contenido de sitios web. Tiene una gran comunidad y es utilizado por millones de personas y organizaciones en todo el mundo. Drupal proporciona una interfaz web simple y fácil de usar que lo ayuda a crear una variedad de sitios web que van desde sitios web personales hasta sitios web impulsados ​​por grandes comunidades.

En esta guía, le mostraremos cómo implementar varias instancias de Drupal con Nginx en Ubuntu 20.04.

Requisitos

  • Un servidor con Ubuntu 20.04.
  • Dos nombres de dominio válidos apuntados con la IP de su servidor.
  • Se configura una contraseña raíz en el servidor.

Paso 1:instalar las dependencias requeridas

Primero, deberá actualizar los paquetes de su sistema a la versión actualizada e instalar las dependencias requeridas en su sistema. Puedes hacerlo con el siguiente comando:

apt-get update -y
apt-get install gnupg2 software-properties-common unzip git wget -y

Una vez que todas las dependencias estén instaladas, puede continuar con el siguiente paso.

Paso 2:Instalar Nginx y MariaDB

Aquí, hospedaremos Drupal con Nginx. Entonces Nginx debe estar instalado en su servidor. Si no está instalado, puede instalarlo con el siguiente comando:

apt-get install nginx -y

Después de instalar Nginx, deberá instalar la última versión de MariaDB en su servidor. De forma predeterminada, la última versión de MariaDB no está incluida en el repositorio predeterminado de Ubuntu 20.04. Por lo tanto, deberá agregar el repositorio de MariaDB a APT.

Primero, agregue la clave GPG con el siguiente comando:

apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

A continuación, agregue el repositorio de MariaDB con el siguiente comando:

add-apt-repository "deb [arch=amd64,arm64,ppc64el] http://mariadb.mirror.liquidtelecom.com/repo/10.4/ubuntu $(lsb_release -cs) main"

Una vez que se agrega el repositorio, actualice el repositorio e instale la última versión de MariaDB con el siguiente comando:

apt-get update -y
apt-get install mariadb-server -y

Una vez que el servidor MariaDB esté instalado, puede continuar con el siguiente paso.

Paso 3:Instalar PHP 7.4

Drupal no es compatible con PHP 8.0. Por lo tanto, deberá instalar PHP 7.4 en su sistema. Puede instalar PHP versión 7.4 con otras extensiones requeridas con el siguiente comando:

apt-get install php7.4 php7.4-fpm php7.4-gd php7.4-common php7.4-mysql php7.4-apcu php7.4-gmp php7.4-curl php7.4-intl php7.4-mbstring php7.4-xmlrpc php7.4-gd php7.4-xml php7.4-cli php7.4-zip -y

Una vez que todos los paquetes estén instalados, edite el archivo php.ini y modifique algunos cambios:

nano /etc/php/7.4/fpm/php.ini

Cambie las siguientes líneas:

date.timezone = Asia/Kolkata
memory_limit = 256M
upload_max_filesize = 64M
max_execution_time = 600
cgi.fix_pathinfo = 0

Guarde y cierre el archivo y luego reinicie PHP-FPM para aplicar los cambios:

systemctl restart php7.4-fpm

Paso 4:Crear base de datos Drupal

A continuación, deberá crear una base de datos y un usuario para ambas instancias de Drupal.

Primero, conéctese a MySQL con el siguiente comando:

mysql

Una vez conectado, cree una base de datos para ambas instancias de Drupal con el siguiente comando:

MariaDB [(none)]> create database drupal1db;
MariaDB [(none)]> create database drupal2db;

A continuación, cree un usuario de base de datos para ambas instancias de Drupal con el siguiente comando:

MariaDB [(none)]> create user [email protected] identified by 'password';
MariaDB [(none)]> create user [email protected] identified by 'password';

A continuación, otorgue todos los privilegios a ambas bases de datos de Drupal con el siguiente comando:

MariaDB [(none)]> grant all privileges on drupal1db.* to [email protected] identified by 'password';
MariaDB [(none)]> grant all privileges on drupal2db.* to [email protected] identified by 'password';

A continuación, elimine los privilegios y salga de MySQL con el siguiente comando:

MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

Una vez que haya terminado, puede continuar con el siguiente paso.

Paso 5:Descarga Drupal

A continuación, deberá descargar la última versión de Drupal desde su sitio web oficial.

Primero, cambie el directorio a la raíz web de Nginx con el siguiente comando:

cd /var/www/html

A continuación, descargue la última versión de Drupal con el siguiente comando:

wget -q https://www.drupal.org/download-latest/tar.gz -O drupal-latest.tar.gz

A continuación, extraiga el archivo descargado con el siguiente comando:

tar -xf drupal-latest.tar.gz

Luego, copie el directorio extraído a drupal1 y drupal2:

cp -r drupal-9.1.5 drupal1
cp -r drupal-9.1.5 drupal2

A continuación, establezca la propiedad adecuada con el siguiente comando:

chown -R www-data:www-data /var/www/html/drupal*

Una vez que haya terminado, puede continuar con el siguiente paso.

Paso 6:Configurar Nginx

A continuación, deberá crear dos archivos de configuración de host virtual Nginx para cada instancia de Drupal.

Primero, cree un archivo de configuración de host virtual Nginx para la primera instancia de Drupal:

nano /etc/nginx/conf.d/drupal1.conf

Agregue las siguientes líneas:

server {
    listen 80;
    root /var/www/html/drupal1;
    index  index.php index.html index.htm;
    server_name drupal1.example.com;

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

    location @rewrite {
               rewrite ^/(.*)$ /index.php?q=$1;
        }

    location ~ [^/]\.php(/|$) {
         include snippets/fastcgi-php.conf;
         fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
         include fastcgi_params;
    }

    location ~ ^/sites/.*/files/styles/ { # For Drupal >= 7
               try_files $uri @rewrite;
        }

    location ~ ^(/[a-z\-]+)?/system/files/ { # For Drupal >= 7
        try_files $uri /index.php?$query_string;
        }
}

Guarde y cierre el archivo cuando haya terminado.

A continuación, cree un archivo de configuración de host virtual de Nginx para la segunda instancia de Drupal:

nano /etc/nginx/conf.d/drupal2.conf

Agregue las siguientes líneas:

server {
    listen 80;
    root /var/www/html/drupal2;
    index  index.php index.html index.htm;
    server_name drupal2.example.com;

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

    location @rewrite {
               rewrite ^/(.*)$ /index.php?q=$1;
        }

    location ~ [^/]\.php(/|$) {
         include snippets/fastcgi-php.conf;
         fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
         include fastcgi_params;
    }

    location ~ ^/sites/.*/files/styles/ { # For Drupal >= 7
               try_files $uri @rewrite;
        }

    location ~ ^(/[a-z\-]+)?/system/files/ { # For Drupal >= 7
        try_files $uri /index.php?$query_string;
        }
}

Guarde y cierre el archivo cuando haya terminado, luego verifique el Nginx para detectar cualquier error de sintaxis con el siguiente comando:

nginx -t

Debería ver el siguiente resultado:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

A continuación, reinicie el servicio Nginx para aplicar los cambios:

systemctl restart nginx

También puede comprobar el estado de Nginx con el siguiente comando:

systemctl status nginx

Deberías obtener 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 Tue 2021-03-23 08:50:47 UTC; 6s ago
       Docs: man:nginx(8)
    Process: 19946 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 19959 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 19964 (nginx)
      Tasks: 2 (limit: 2353)
     Memory: 2.7M
     CGroup: /system.slice/nginx.service
             ??19964 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??19965 nginx: worker process

Mar 23 08:50:47 ubuntu2004 systemd[1]: Starting A high performance web server and a reverse proxy server...
Mar 23 08:50:47 ubuntu2004 systemd[1]: Started A high performance web server and a reverse proxy server.

Paso 7:Acceda a Drupal

Ahora, abra su navegador web y escriba la URL http://drupal1.example.com o http://drupal2.example.com . Será redirigido al asistente de instalación web de Drupal como se muestra a continuación:

Seleccione su idioma y haga clic en Guardar y continuar botón. Debería ver la siguiente página:

Seleccione el tipo de instalación estándar y haga clic en Guardar y continuar botón. Debería ver la siguiente página:

Proporcione los detalles de su base de datos y haga clic en Guardar y continuar botón. Debería ver la siguiente página:

Proporcione la información de su sitio y haga clic en Guardar y continuar botón. Debería ver el panel de control de Drupal en la siguiente página:

Conclusión

En la publicación anterior, aprendió cómo implementar varias instancias de Drupal con Nginx en el servidor Ubuntu 20.04. Ahora puede implementar cualquier número de instancias de Drupal en su servidor. Solo necesita definir el nombre de dominio y la ruta de instalación de Drupal para cada nueva instancia de Drupal. Siéntase libre de preguntarme si tiene alguna pregunta.


Ubuntu
  1. Cómo instalar Nextcloud con Nginx en Ubuntu 18.04 LTS

  2. Cómo instalar Seafile con Nginx en Ubuntu 20.04 LTS

  3. Cómo instalar SuiteCRM con Nginx en Ubuntu 16.04

  4. Cómo instalar Magento 2 con Nginx y Letsencrypt en Ubuntu 18.04

  5. Instalar Nextcloud con Nginx en Ubuntu 20.04 LTS - ¿Guía paso a paso?

Cómo instalar múltiples WordPress con Nginx en Ubuntu 18.04

Instale WordPress en Ubuntu 20.04 con Apache, MariaDB, PHP7.4 (LAMP)

Instale WordPress en Ubuntu 20.04 con Nginx, MariaDB, PHP7.4 (LEMP)

Cómo instalar WordPress 4.7 en Ubuntu 16.04 con Apache, MariaDB, PHP7

Instale WordPress en Ubuntu 18.04 con Nginx, MariaDB, PHP7.2 (LEMP)

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