GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat Drupal na Ubuntu 18.04

Drupal je jednou z celosvětově nejoblíbenějších open-source platforem CMS. Je napsán v PHP a lze jej použít k vytváření různých typů webových stránek, od malých osobních blogů po velké firemní, politické a vládní stránky.

V tomto tutoriálu vám ukážeme, jak nainstalovat Drupal 8.6 na stroj Ubuntu 18.04. Existuje několik způsobů, jak nainstalovat Drupal. Tento tutoriál popisuje kroky nezbytné pro instalaci Drupalu 8.6 pomocí šablony skladatele pro projekty Drupal s názvem drupal-project.

Budeme používat Nginx jako webový server, nejnovější PHP 7.2 a MySQL/MariaDB jako databázový server.

Předpoklady #

Než budete pokračovat v tomto kurzu, ujistěte se, že jste splnili následující předpoklady:

  • Máte název domény odkazující na IP vašeho veřejného serveru. Použijeme example.com .
  • Máte nainstalovaný Nginx podle těchto pokynů.
  • Máte nainstalovaný certifikát SSL pro vaši doménu. Bezplatný certifikát Let’s Encrypt SSL si můžete nainstalovat podle těchto pokynů.

Než začnete #

Aktualizujte index balíčků a systémové balíčky na nejnovější verze:

sudo apt update && sudo apt upgrade

1. Vytvořte databázi MySQL #

Pokud máte na svém serveru nainstalovanou MySQL nebo MariaDB, můžete tento krok přeskočit, pokud ne, můžete nainstalovat serverový balíček MySQL 5.7 z výchozích repozitářů Ubuntu zadáním:

sudo apt install mysql-server
Pro čerstvé instalace MySQL se doporučuje spustit mysql_secure_installation příkaz ke zlepšení zabezpečení vašeho serveru MySQL.

Nyní se musíme přihlásit do prostředí MySQL a vytvořit novou databázi a uživatelský účet a udělit uživateli příslušná oprávnění k udělení.

Chcete-li se přihlásit do prostředí MySQL, zadejte následující příkaz a po zobrazení výzvy zadejte heslo:

mysql -u root -p

Chcete-li vytvořit databázi s názvem drupal , uživatel se jménem drupaluser a k udělení nezbytných oprávnění uživateli spusťte následující příkazy:

CREATE DATABASE drupal CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES ON drupal.* TO 'drupaluser'@'localhost' IDENTIFIED BY 'change-with-strong-password';

2. Nainstalujte PHP #

PHP 7.2, což je výchozí verze PHP v Ubuntu 18.04, je plně podporována a doporučena pro Drupal 8.6. Protože budeme používat Nginx jako webový server, nainstalujeme také PHP-FPM.

Chcete-li nainstalovat všechny požadované moduly PHP, spusťte následující příkaz:

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

Služba PHP-FPM se automaticky spustí po dokončení procesu instalace, můžete si to ověřit vytištěním stavu služby:

systemctl status php7.2-fpm

Výstup by měl indikovat, že služba fpm je aktivní a běží.

● 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 Sat 2018-05-19 19:54:13 UTC; 9h ago
     Docs: man:php-fpm7.2(8)
 Main PID: 17781 (php-fpm7.2)
   Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
    Tasks: 3 (limit: 507)
   CGroup: /system.slice/php7.2-fpm.service
           ├─17781 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf)
           ├─17796 php-fpm: pool www
           └─17797 php-fpm: pool www

3. Nainstalujte Composer #

Composer je správce závislostí pro PHP a budeme jej používat ke stažení šablony Drupal a instalaci všech nezbytných komponent Drupal.

Chcete-li nainstalovat Composerglobally, stáhněte si instalační program Composer pomocí curl a přesuňte soubor do /usr/local/bin adresář:

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

Ověřte instalaci vytištěním verze skladatele:

composer --version

Výstup by měl vypadat nějak takto:

Composer version 1.6.5 2018-05-04 11:44:59

4. Nainstalujte Drupal #

Nyní, když máme nainstalovaný skladatel, můžeme pokračovat a vytvořit nový projekt Drupal pomocí šablony skladatele v /var/www/my_drupal adresář:

sudo composer create-project drupal-composer/drupal-project:8.x-dev /var/www/my_drupal --stability dev --no-interaction

Výše uvedený příkaz stáhne šablonu, načte všechny požadované balíčky php a spustí některé skripty pro přípravu našeho projektu k instalaci. Proces může trvat několik minut a pokud bude úspěšný, konec výstupu by měl vypadat následovně:

Create a sites/default/settings.php file with chmod 0666
Create a sites/default/files directory with chmod 0777

Dalším krokem je instalace Drupalu pomocí Drush. V níže uvedeném příkazu předáváme databázi MySQL a uživatelské informace vytvořené v kroku 1:

cd /var/www/my_drupalsudo vendor/bin/drush site-install --db-url=mysql://drupaluser:change-with-strong-password@localhost/drupal

Instalační program vás vyzve následující zprávou, pokračujte stisknutím klávesy Enter.

You are about to DROP all tables in your 'drupal' database. Do you want to continue? (yes/no) [yes]:

Po dokončení instalace skript vytiskne administrativní uživatelské jméno a heslo. Výstup by měl vypadat nějak takto:

[notice] Starting Drupal installation. This takes a while. Consider using the --notify global option.
[success] Installation complete.  User name: admin  User password: XRkC9Q5WN9

Nakonec musíme nastavit správná oprávnění, aby měl webový server plný přístup k souborům a adresářům webu. Nginx i PHP běží jako www-data uživatele a www-data group, takže musíme zadat následující příkaz:

sudo chown -R www-data: /var/www/my_drupal

5. Nakonfigurujte Nginx #

Nyní byste již měli mít Nginx s certifikátem SSL nainstalovaný ve svém systému, pokud ne, zkontrolujte předpoklady pro tento tutoriál.

K vytvoření nového bloku serveru pro náš nový projekt Drupal použijeme recept Nginx z oficiální stránky Nginx.

Otevřete textový editor a vytvořte následující soubor:

sudo nano /etc/nginx/sites-available/example.com
/etc/nginx/sites-available/example.com
# Redirect HTTP -> HTTPS
server {
    listen 80;
    server_name www.example.com example.com;

    include snippets/letsencrypt.conf;
    return 301 https://example.com$request_uri;
}

# Redirect WWW -> NON WWW
server {
    listen 443 ssl http2;
    server_name www.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;

    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name example.com;

    root /var/www/my_drupal/web;

    # SSL parameters
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;

    # log files
    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;

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

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log 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' {
        fastcgi_split_path_info ^(.+?\.php)(|/.*)$;
        include fastcgi_params;
        # Block httpoxy attacks. See https://httpoxy.org/.
        fastcgi_param HTTP_PROXY "";
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param QUERY_STRING $query_string;
        fastcgi_intercept_errors on;
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
    }

    # 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;
    }

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

}
Nezapomeňte nahradit example.com svou doménou Drupal a nastavit správnou cestu k souborům certifikátu SSL. Všechny požadavky HTTP budou přesměrovány na HTTPS. Fragmenty použité v této konfiguraci jsou vytvořeny v této příručce.

Povolte blokování serveru vytvořením symbolického odkazu na sites-enabled adresář:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

Před restartováním služby Nginx proveďte test, abyste se ujistili, že neexistují žádné syntaktické chyby:

sudo nginx -t

Pokud nejsou žádné chyby, výstup by měl vypadat takto:

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

Nakonec restartujte službu Nginx zadáním:

sudo systemctl restart nginx

6. Otestujte instalaci #

Otevřete prohlížeč, zadejte svou doménu a za předpokladu, že instalace proběhla úspěšně, zobrazí se obrazovka podobná následující:

Můžete se přihlásit jako správce a začít přizpůsobovat svou novou instalaci Drupalu.

7. Nainstalujte si moduly a motivy Drupalu #

Nyní, když máte nainstalovaný projekt Drupal, budete chtít nainstalovat některé moduly a motivy. Moduly a témata Drupalu jsou hostovány ve vlastním úložišti skladatelů, které nám drupal-project nakonfiguruje hned po vybalení.

Chcete-li nainstalovat modul nebo téma, vše, co musíte udělat, je cd do adresáře projektu a zadejte composer require drupal/module_or_theme_name . Například, pokud chceme nainstalovat Pathautomodule, musíme spustit následující příkaz:

cd /var/www/my_drupalsudo -u www-data composer require drupal/pathauto
Přidáním sudo -u www-data spouštíme příkaz jako uživatel www-data
Using version ^1.3 for drupal/pathauto
./composer.json has been updated
> DrupalProject\composer\ScriptHandler::checkComposerVersion
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 3 installs, 0 updates, 0 removals
  - Installing drupal/token (1.5.0): Downloading (100%)         
  - Installing drupal/ctools (3.2.0): Downloading (100%)         
  - Installing drupal/pathauto (1.3.0): Downloading (100%)         
Package phpunit/phpunit-mock-objects is abandoned, you should avoid using it. No replacement was suggested.
Writing lock file
Generating autoload files
> DrupalProject\composer\ScriptHandler::createRequiredFiles

Jak můžete vidět z výstupu výše, skladatel za nás také nainstaluje všechny závislosti balíčku.

8. Aktualizujte jádro Drupalu #

Před upgradem je vždy dobré vytvořit zálohu souborů a databáze. Můžete buď použít modul Backup and Migratemodule nebo ručně zálohovat databázi a soubory.

K zálohování instalačních souborů můžete použít následující příkaz rsync, samozřejmě budete muset použít správnou cestu k instalačnímu adresáři:

sudo rsync -a /var/www/my_drupal/  /var/www/my_drupal_$(date +%F)

K zálohování databáze můžeme použít buď standardní mysqldump příkaz:

mysqldump -u root -p > /var/www/my_drupal_database_$(date +%F).sql

nebo drush sql-dump :

cd /var/www/my_drupalvendor/bin/drush sql-dump > /var/www/my_drupal_database_$(date +%F).sql

Nyní, když jsme vytvořili zálohu, můžeme pokračovat a aktualizovat všechny základní soubory Drupal spuštěním následujícího příkazu:

sudo -u www-data composer update drupal/core webflo/drupal-core-require-dev symfony/* --with-dependencies

Ubuntu
  1. Jak nainstalovat Drupal 7 na Ubuntu 14.04

  2. Jak nainstalovat Drupal na Ubuntu 16.04

  3. Jak nainstalovat R na Ubuntu 16.04

  1. Jak nainstalovat Odoo na Ubuntu

  2. Jak nainstalovat Go na Ubuntu 18.04

  3. Jak nainstalovat Drupal na Ubuntu 18.04

  1. Jak nainstalovat R na Ubuntu 20.04

  2. Jak nainstalovat Go na Ubuntu 18.04

  3. Jak nainstalovat R na Ubuntu 18.04