Cómo instalar Drupal en Windows WSL • _

Tutoriales mayo 30, 2021

En este post veremos cómo instalar Drupal en Windows 10 WSL (Subsistema de Windows para Linux) 2 con el servidor HTTP Nginx en Ubuntu 20.04 | 18.04.

Es posible que Drupal no sea el sistema de gestión de contenido más popular en uso hoy en día, pero no se queda muy atrás de WordPress. Es una plataforma de código abierto y funciona muy bien en sistemas Linux, incluido Ubuntu.

Si está ejecutando Windows y desea usar Drupal, usar Windows con WSL 2 podría ser su mejor opción y los pasos a continuación le mostrarán cómo hacerlo.

Con WSL, puede instalar el sistema operativo Linux completo dentro de Windows. Así que obtenga Windows, habilite WSL, instale un sistema operativo Linux y ejecute Drupal.

En 2017, Windows lanzó la versión original de WSL. WSL 2 es una mejora con respecto a la versión 1 y viene con un aumento del rendimiento, compatibilidad total con las llamadas del sistema y construido con una nueva arquitectura que ofrece características que hacen de WSL una forma asombrosa de ejecutar un entorno Linux en Windows.

Si tiene una máquina que cumple con los requisitos anteriores para ejecutar WSL 2, continúe a continuación.

Para comenzar a ejecutar Drupal en Windows con WSL, sigue los pasos a continuación:

Habilitar WSL en Windows

Para habilitar WSL en Windows, querrá abrir Potencia Shell terminal como administrador. Haga clic en Inicio y luego comience a escribir PowerShell.

A continuación, haga clic con el botón derecho Windows PowerShell aplicación y elija ejecutarla como administrador.

Cuando se abra la consola, ejecute los siguientes comandos:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

Después de la instalación, debería recibir un mensaje de éxito similar a las líneas siguientes:

Deployment Image Servicing and Management tool
Version: 10.0.19041.844

Image Version: 10.0.19042.844

Enabling feature(s)
[==========================100.0%==========================]
The operation completed successfully.

Habilitar plataforma de máquina virtual

WSL 2 requiere que la plataforma de máquina virtual Windows 10 esté habilitada. Esto no es Hyper-V. Para habilitar la función de la plataforma VM en Windows, ejecute los siguientes comandos desde la misma consola del administrador de PowerShell.

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Si está utilizando una versión de Windows 10 anterior a 2004, luego use los siguientes comandos:

Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -NoRestart

Cuando haya terminado de ejecutar los comandos anteriores, reinicie su ordenador para que se apliquen todos los cambios de configuración. Si no reinicia, es posible que no se reconozca el siguiente comando.

Después de reiniciar su ordenador, vuelva a iniciar sesión e inicie PowerShell como administrador. Luego, ejecute los siguientes comandos para configurar WSL 2 como la versión predeterminada de WSL.

wsl --set-default-version 2

Instalar Ubuntu en Windows 10

Ahora que WSL 2 está instalado y listo para usarse, abra el enlace a continuación para descargar e instalar una copia de Ubuntu 20.04 desde la tienda de Windows.

Obtenga Ubuntu 20.04 LTS – Microsoft Store

Ubuntu 20.04 LTS en Windows le permite usar Ubuntu Terminal y ejecutar utilidades de línea de comandos de Ubuntu, incluidas bash, ssh, git, apt y muchas más.

Haga clic en el botón Obtener e instálelo. Después de instalar Ubuntu, querrá tener la opción de iniciar Ubuntu desde el entorno WSL de Windows.

Después de iniciar Ubuntu, debería instalarse y pedirle que cree su cuenta.

Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: richard
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

Welcome to Ubuntu 20.04.2 LTS (GNU/Linux 4.4.0-19041-Microsoft x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Mon Apr 12 17:57:37 CDT 2021

  System load:    0.52      Processes:             7
  Usage of /home: unknown   Users logged in:       0
  Memory usage:   26%       IPv4 address for eth0: 10.0.2.15
  Swap usage:     0%

1 update can be installed immediately.
0 of these updates are security updates.
To see these additional updates run: apt list --upgradable

¡Deberias hacer eso!

Algunos comandos de solución de problemas para ejecutar cuando se encuentra con los problemas anteriores. Estos se ejecutan a continuación e intentan iniciar la imagen de Ubuntu nuevamente.

wsl --set-default-version 1
bcdedit /set hypervisorlaunchtype auto start

Ahora que el entorno WSL de Windows 10 está listo, continúe a continuación para instalar Nginx, MariaDB, PHP y configurar Drupal para que se ejecute.

Instalar el servidor HTTP Nginx

Drupal requiere un servidor web para funcionar, y Nginx es uno de los servidores web de código abierto más populares disponibles en la actualidad.

Para instalar Nginx en Ubuntu, ejecute los siguientes comandos:

sudo apt update
sudo apt install nginx

Después de instalar Nginx, los siguientes comandos se pueden utilizar para detener y comienzo Servicios Nginx.

sudo service nginx stop
sudo service nginx start

Para probar si Nginx está instalado y funcionando, abra su navegador web y busque la dirección IP o el nombre de host del servidor.

http: // localhost

Si ve la página anterior en el navegador, entonces Nginx está funcionando como se esperaba.

Instalar el servidor MariaDB

También necesitará un servidor de base de datos para ejecutar Drupal. Un servidor de base de datos es donde se almacena el contenido de Drupal.

Un verdadero servidor de base de datos de código abierto que puede usar con Drupal es el servidor de base de datos MariaDB. Es rápido, seguro y el servidor predeterminado para casi todos los servidores Linux.

Para instalar MariaDB, ejecute los siguientes comandos:

sudo apt install mariadb-server mariadb-client

Después de instalar MariaDB, los siguientes comandos se pueden utilizar para detener, comienzo y permitir El servicio MariaDB se inicia siempre cuando se inicia el servidor.

sudo service mysql stop
sudo service mysql start

A continuación, ejecute los siguientes comandos para proteger el servidor de la base de datos con una contraseña de root si no se le solicitó que lo hiciera durante la instalación.

sudo mysql_secure_installation

Cuando se le solicite, responda las preguntas siguientes siguiendo la guía.

  • Ingrese la contraseña actual para root (ingrese para ninguna): Simplemente presione el Ingresar
  • ¿Establecer contraseña de root? [Y/n]: Y
  • Nueva contraseña: Introducir la contraseña
  • Re-ingrese nueva contraseña: repite la contraseña
  • ¿Eliminar usuarios anónimos? [Y/n]: Y
  • ¿Deshabilitar el inicio de sesión de root de forma remota? [Y/n]: Y
  • ¿Eliminar la base de datos de prueba y acceder a ella? [Y/n]: Y
  • ¿Recargar tablas de privilegios ahora? [Y/n]: Y

Para verificar y validar que MariaDB esté instalado y funcionando, inicie sesión en la consola de la base de datos usando los siguientes comandos:

sudo mysql -u root -p

escriba la contraseña de root cuando se le solicite.

mariadb bienvenido

Si ve una pantalla similar a la que se muestra arriba, entonces el servidor se instaló correctamente.

Instalar PHP y módulos relacionados

Drupal es una aplicación basada en PHP y se requiere PHP para ejecutarla. Ejecute los siguientes comandos para instalar PHP y los módulos relacionados para admitir Drupal.

sudo apt install php-fpm php-common php-mysql php-gmp php-curl php-intl php-mbstring php-xmlrpc php-gd php-xml php-cli php-zip

Después de instalar PHP, vaya y configure algunos ajustes básicos que pueden ser necesarios para que Drupal funcione correctamente.

Para este tutorial, se instaló PHP 7.4. Según su entorno, es posible que se instale otra versión de PHP. Así que verifica eso.

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

A continuación se muestran buenos ajustes para configurar para la mayoría de los sitios web de Drupal.

file_uploads = On
allow_url_fopen = On
short_open_tag = On
memory_limit = 256M
cgi.fix_pathinfo = 0
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = America/Chicago

Eso debería instalar PHP 7.4 con algunas configuraciones básicas para permitir que Drupal funcione.

Después de configurar PHP, el siguiente comando se puede utilizar para detener e iniciar los servicios PHP7.4.

sudo service php7.4-fpm stop
sudo service php7.4-fpm start

Crear base de datos Drupal

Cuando todos los servidores instalados anteriormente, es el momento de comenzar a configurar el entorno Drupal. Primero, ejecute los pasos a continuación para crear una base de datos en blanco para que la use Drupal.

Inicie sesión en la consola de la base de datos MariaDB usando los siguientes comandos:

sudo mysql -u root -p

Luego crea una base de datos llamada drupaldb

CREATE DATABASE drupaldb;

A continuación, cree un usuario de base de datos llamado drupaldbuser y establecer contraseña

CREATE USER 'drupaldbuser'@'localhost' IDENTIFIED BY 'new_password_here';

Luego, conceda al usuario acceso completo a la base de datos.

GRANT ALL ON drupaldb.* TO 'drupaldbuser'@'localhost' WITH GRANT OPTION;

Finalmente, guarde sus cambios y salga.

FLUSH PRIVILEGES;
EXIT;

Descarga Drupal

En este punto, Drupal está listo para descargarse e instalarse. Utilice los siguientes comandos para descargar la última versión de Drupal.

Para obtener la última versión de Drupal, es posible que desees usar el repositorio de GitHub … Instale Composer, Curl y otras dependencias para comenzar …

sudo apt install curl git
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

Después de instalar curl y Composer arriba, cámbiese al directorio raíz de Nginx y descargue los paquetes Drupal de Github… Reemplace siempre el número de rama con la rama más reciente.

Para ver las versiones de Drupal, vea esto página.

cd /var/www/
sudo git clone --branch 9.1.9 https://git.drupal.org/project/drupal.git
cd /var/www/drupal
sudo composer install

Luego ejecute el comando a continuación para permitir www-datos usuario poseer el directorio de Drupal.

sudo chown -R www-data:www-data /var/www/drupal/
sudo chmod -R 755 /var/www/drupal/

Configurar Nginx VirtualHost

A continuación se muestra el lugar donde configura el archivo Nginx VirtualHost para el sitio de Drupal que está creando. Este archivo define cómo se manejan y procesan las solicitudes de los clientes.

Ejecute los siguientes comandos para crear un nuevo archivo VirtualHost llamado Drupal en el / etc / nginx / sites-available / directorio.

sudo nano /etc/nginx/sites-available/drupal

A continuación se muestra una muy buena configuración para la mayoría de los sitios de Drupal en el servidor Nginx. Esta configuración debería funcionar muy bien.

Copie el contenido a continuación y guárdelo en el archivo creado anteriormente.

server {
    listen 80;
    listen [::]:80;
    root /var/www/drupal;
    index  index.php index.html index.htm;
    server_name  example.com www.example.com;

    client_max_body_size 100M;
    autoindex off;

    location ~ ..*/.*.php$ {
        return 403;
    }

    location ~ ^/sites/.*/private/ {
        return 403;
    }

    # Block access to scripts in site files directory
    location ~ ^/sites/[^/]+/files/.*.php$ {
        deny all;
    }

    # Block access to "hidden" files and directories whose names begin with a
    # period. This includes directories used by version control systems such
    # as Subversion or Git to store control files.
    location ~ (^|/). {
        return 403;
    }

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

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

    # Don't allow direct access to PHP files in the vendor directory.
    location ~ /vendor/.*.php$ {
        deny all;
        return 404;
    }


    location ~ '.php$|^/update.php' {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    # Fighting with Styles? This little gem is amazing.
    # location ~ ^/sites/.*/files/imagecache/ { # For Drupal <= 6
    location ~ ^/sites/.*/files/styles/ { # For Drupal >= 7
        try_files $uri @rewrite;
    }

    # Handle private files through Drupal. Private file's path can come
    # with a language prefix.
    location ~ ^(/[a-z-]+)?/system/files/ { # For Drupal >= 7
        try_files $uri /index.php?$query_string;
    }
}

Guarda el archivo y cierra.

Después de guardar el archivo anterior, ejecute los siguientes comandos para habilitar el nuevo sitio, luego reinicie el servidor Nginx.

sudo ln -s /etc/nginx/sites-available/drupal /etc/nginx/sites-enabled/
sudo service nginx restart

En esta etapa, Drupal está listo y se puede iniciar yendo a la IP o al nombre de host del servidor.

http://example.com

Eso debería abrir el asistente de configuración de Drupal.

Escriba la conexión de la base de datos y continúe

Cree una cuenta y contraseña de administrador de Drupal, guarde y continúe.

Inicie sesión con la cuenta de arriba y listo.

¡Eso es!

Conclusión:

En este tutorial hemos visto cómo instalar Drupal en Windows 10 con Ubuntu. Si encuentra algún error arriba, utilice el formulario de comentarios a continuación para informar.

También te puede gustar la publicación a continuación: