GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar Drupal 8 con Nginx, PHP-FPM y SSL en Ubuntu 15.10

Drupal es un conocido sistema de gestión de contenido de código abierto basado en PHP. Está disponible de forma gratuita y se publica bajo la Licencia Pública General GNU. Drupal se puede utilizar para todos los tamaños de sitios web, desde grandes sitios web internacionales hasta blogs personales y sitios corporativos o gubernamentales. La parte central de Drupal se llama "Drupal Core", contiene el sistema básico de administración de contenido, administración de usuarios, administración de menús, personalización del diseño y administración del sistema. Drupal Core se puede ampliar mediante complementos, hasta ahora, la comunidad de Drupal ha proporcionado más de 31.000 módulos para Drupal. La versión actual de Drupal es 8.0.

En este tutorial, instalaremos Drupal 8 con el servidor web Nginx, MariaDB como servidor de base de datos y PHP-FPM para manejar las solicitudes de PHP. También le mostraré cómo instalar un certificado SSL para proteger el sitio web de Drupal.

Requisitos

  • Ubuntu 15.10 - versión de 64 bits.
  • Privilegios de raíz.

Paso 1:actualice el sistema Ubuntu

Inicie sesión en el servidor de ubuntu con ssh, luego conviértase en usuario root y actualice el repositorio de ubuntu:

sudo su
sudo apt-get update

Paso 2:instalar Nginx y PHP-FPM

Nginx o "engine-x" es un servidor HTTP rápido que se centra en un alto rendimiento con poco uso de memoria/RAM. Podemos usar Nginx también como proxy inverso, para los protocolos HTTP, HTTPS, POP3 e IMAP. En este tutorial, utilizaremos Nginx como servidor HTTP habilitado para SSL.

Instale Nginx con el siguiente comando apt como usuario sudo/root:

sudo apt-get install nginx -y

Luego, instale php-fpm con php-gd requerido por drupal core:

apt-get install php5-fpm php5-cli php5-gd php5-mysql -y

En el siguiente paso, configuraremos Nginx.

Paso 3:configurar Nginx y PHP-FPM

En este paso, configuraremos Nginx para usar php-fpm para atender solicitudes HTTP para páginas PHP. Vaya al directorio php-fpm "/etc/php/fpm" y edite el archivo "php.ini":

cd /etc/php/fpm/
vim php.ini

En línea 773 , descomente la línea cgi.fix_pathinfo y cambie el valor a "0 ".

cgi.fix_pathinfo=0

Guarde el archivo y salga del editor.

Ahora modificamos la configuración predeterminada de nginx virtualhost. Edite el archivo "predeterminado" y habilite la directiva php-fpm.

cd /etc/nginx/sites-available/
vim default

Descomente la línea 45 - 52 para usar php-fpm con nginx.

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
        #
        #       # With php5-cgi alone:
        #       fastcgi_pass 127.0.0.1:9000;
        #       # With php5-fpm:
                fastcgi_pass unix:/var/run/php5-fpm.sock;
        }

Guarde el archivo y salga.

Luego pruebe la configuración de Nginx con el comando "nginx -t " para asegurarse de que es válido:

nginx -t

Si no hay ningún error, reinicie nginx y el servicio php-fpm:

systemctl restart nginx
systemctl restart php5-fpm

A continuación, pruebe que php-fpm funciona correctamente con nginx creando un nuevo archivo de información de php en el directorio web "/var/www/html".

cd /var/www/html/
echo "<?php phpinfo(); ?>" > info.php

Visita la IP del servidor:192.168.1.101/info.php un navegador web El resultado debería ser similar a la siguiente captura de pantalla.

Paso 4:instalar y configurar MariaDB

MariaDB es una bifurcación del servidor de base de datos del sistema de administración de bases de datos relacionales MYSQL, ofrece una funcionalidad de reemplazo directo para mysql.

Instale la última versión de MariaDB con el comando apt-get:

sudo apt-get install mariadb-client mariadb-server -y

Cuando se haya completado la instalación, inicie MariaDB:

systemctl start mysql

El nombre del servicio MariaDB es "mysql", por eso el comando systemctl usa la palabra mysql aquí.

Ahora configuraremos el nombre de usuario y la contraseña de MariaDB con el siguiente comando:

mysql_secure_installation

Inicie sesión en el shell de MariaDB con su contraseña y cree una nueva base de datos para drupal llamada "drupaldb " y cree un nuevo usuario de MariaDB/MySQL "drupaluser " con la contraseña "[email protected] " y, finalmente, conceda al usuario permisos para la base de datos. ¡Elija una contraseña segura en lugar de "[email protected]" para su instalación!

mysql -u root -p


create database drupaldb;
create user [email protected] identified by '[email protected]';
grant all privileges on drupaldb.* to [email protected] identified by '[email protected]';
flush privileges;
\q

La base de datos "drupaldb " con el usuario "drupaluser " ha sido creado.

Paso 5:generar un certificado SSL autofirmado

Vaya a /etc/nginx directorio y cree un nuevo directorio con el nombre "ssl" para el archivo de configuración SSL.

mkdir -p /etc/nginx/ssl
cd /etc/nginx/ssl

A continuación, genere un nuevo certificado SSL autofirmado con el siguiente comando openssl:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/drupal.key -out /etc/nginx/ssl/drupal.crt

Complete la información solicitada. Se ha generado el archivo de certificado SSL, ahora cambie los permisos del archivo de clave privada "drupal.key" a 600:

chmod 600 drupal.key

Paso 6:configurar VirtualHost para Drupal

Instalaremos Drupal 8 en el directorio "/var/www/drupal8" con el nombre de dominio "drupal8.me". Reemplace el nombre de dominio en su instalación con el nombre de dominio del sitio web para el que desea utilizar esta instalación de Drupal. Así que vamos a crear el directorio:

mkdir -p /var/www/drupal8

Luego vaya al directorio de host virtual de Nginx "/etc/nginx/sites-available/" y cree un nuevo archivo "drupal8" con el editor vim:

cd /etc/nginx/sites-available/
vim drupal8

Pegue la configuración de Nginx para drupal a continuación en el archivo drupal8:

server {
    server_name drupal8.me;
    root /var/www/drupal8; ## <-- Your only path reference.

    listen 80;
    listen [::]:80;
    listen 443 default ssl;

    ssl_certificate      /etc/nginx/ssl/drupal.crt;
    ssl_certificate_key  /etc/nginx/ssl/drupal.key;

    # Redirect HTTP to HTTPS
    if ($scheme = http) {
        return 301 https://$server_name$request_uri;
    }

    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    # Very rarely should these ever be accessed outside of your lan
    location ~* \.(txt|log)$ {
        allow 192.168.0.0/16;
        deny all;
    }

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

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

    # 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 @rewrite; # For Drupal <= 6
        try_files $uri /index.php?$query_string; # For Drupal >= 7
    }

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

    # In Drupal 8, we must also match new paths where the '.php' appears in the middle,
    # such as update.php/selection. The rule we use is strict, and only allows this pattern
    # with the update.php front controller.  This allows legacy path aliases in the form of
    # blog/index.php/legacy-path to continue to route to Drupal nodes. If you do not have
    # any paths like that, then you might prefer to use a laxer rule, such as:
    #   location ~ \.php(/|$) {
    # The laxer rule will continue to work if Drupal uses this new URL pattern with front
    # controllers other than update.php in a future release.
    location ~ '\.php$|^/update.php' {
        fastcgi_split_path_info ^(.+?\.php)(|/.*)$;
        #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $request_filename;
        fastcgi_intercept_errors on;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
    }

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

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires max;
        log_not_found off;
    }
}

Guarde el archivo y salga del editor.

Se ha creado el archivo de host virtual de Drupal, ahora tenemos que activarlo creando un enlace simbólico al archivo en el directorio "habilitado para sitios":

ln -s /etc/nginx/sites-available/drupal8 /etc/nginx/sites-enabled/

Pruebe la configuración de Nginx y reinicie Nginx:

nginx -t
systemctl restart nginx

Paso 7:instalar y configurar Drupal

Tenemos que instalar git y drush antes de comenzar con la instalación de Drupal. Drush es un shell de línea de comandos y una interfaz de secuencias de comandos Unix para Drupal. Instálalo con apt el siguiente comando:

sudo apt-get install git drush -y

Luego ingrese al directorio drupal8 que creamos anteriormente y descargue Drupal con el comando git o drush:

cd /var/www/drupal8
git clone --branch 8.0.x http://git.drupal.org/project/drupal.git

Si desea utilizar drush, ejecute el siguiente comando en su lugar:

drush dl drupal-8

Espere hasta que finalice la descarga, luego mueva todos los archivos de Drupal al directorio principal:

mv drupal/* /var/www/drupal8/

En el siguiente paso configuraremos el archivo de configuración de Drupal. Desde el directorio principal de Drupal, vaya al directorio "sites/default" y copie los dos archivos de configuración "settings.php " y "servicios.yml ":

cd sites/default
cp default.settings.php settings.php
cp default.services.yml services.yml

Luego tenemos que crear un nuevo directorio con el nombre "archivos " dentro del directorio "sites/default". El comando "chmod" garantiza que el archivo de configuración y el directorio "files" se puedan escribir para la instalación de Drupal:

mkdir files/
chmod a+w *

Ahora visite su sitio de Drupal (en mi caso http://drupal8.me) con el navegador web, será redirigido automáticamente a la conexión https y aparecerá la página del instalador de Drupal.

Elija su idioma, usaré "English" aquí.

Haz clic en "Guardar y continuar" .

Ahora seleccione el tipo de instalación. Puede usar tipo estándar o mínimo. Usaré "Estándar ".

Ahora se le mostrará la página de configuración de la base de datos. Complete los detalles de la base de datos para la base de datos que hemos creado para Drupal.

Espere hasta que finalice la instalación.

Ahora tenemos que configurar los ajustes del perfil del sitio como nombre del sitio, usuario y contraseña para administrador, correo electrónico etc.

Ahora Drupal está instalado. Será redirigido a la página de inicio de Drupal.

Verá un mensaje de error sobre los permisos de los archivos de configuración de Drupal "settings.php" y "services.yml". Simplemente cambie el permiso de ellos con los siguientes comandos:

cd sites/default/
chmod 644 settings.php services.yml

Ahora Drupal 8 está instalado con Nginx y SSL en ubuntu 15.10.

Conclusión

Drupal es un marco de gestión de contenido gratuito y de código abierto basado en PHP. Se puede utilizar para un blog personal, una página de inicio privada o un sitio web corporativo. Drupal se distribuye bajo la licencia GNU. El componente principal de Drupal se llama "Drupal Core" y hasta ahora la comunidad de Drupal ha desarrollado más de 31.000 módulos para extenderlo. La versión estable actual es la 8.0. Drupal es fácil de instalar y configurar, podemos usar Nginx o Apache como servidor web y PHP-FPM para manejar las solicitudes de PHP.


Ubuntu
  1. Cómo instalar Nextcloud con Nginx y Lets Encrypt SSL en Ubuntu 20.04 LTS

  2. Cómo instalar Magento 2 con Nginx y Lets Encrypt SSL en Ubuntu 20.04 LTS

  3. Cómo instalar Mattermost con PostgreSQL y Nginx en Ubuntu 16.04

  4. Cómo instalar MediaWiki con Nginx en Ubuntu 16.04

  5. Cómo instalar Nginx con PHP5 y MySQL en Ubuntu 11.10

Cómo instalar Drupal 8.1 con Nginx, PHP-FPM y SSL en Ubuntu 16.04

Cómo instalar Redmine 3.2 con Nginx en Ubuntu 16.04

Cómo instalar Django con PostgreSQL y Nginx en Ubuntu 16.04

Cómo instalar Drupal con Nginx y Lets Encrypt SSL en Ubuntu 20.04 LTS

Cómo instalar Drupal 9 con Nginx y Lets Encrypt SSL en Debian 10

Cómo instalar Moodle con Nginx y Lets Encrypt SSL en Ubuntu 20.04