GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie Drupal 8 mit Nginx, PHP-FPM und SSL unter Ubuntu 15.10

Drupal ist ein bekanntes Open-Source-Content-Management-System auf Basis von PHP. Es ist kostenlos erhältlich und unter der GNU General Public License veröffentlicht. Drupal kann für Websites aller Größen verwendet werden, von riesigen internationalen Websites bis hin zu persönlichen Blogs und Unternehmens- oder Regierungsseiten. Der Kernteil von Drupal heißt "Drupal Core", er enthält das grundlegende Content-Management-System, Benutzerverwaltung, Menüverwaltung, Layout-Anpassung und Systemverwaltung. Drupal Core kann durch Plugins erweitert werden, bisher wurden der Drupal-Community mehr als 31.000 Module für Drupal zur Verfügung gestellt. Die aktuelle Drupal-Version ist 8.0.

In diesem Tutorial installieren wir Drupal 8 mit Nginx-Webserver, MariaDB als Datenbankserver und PHP-FPM zur Verarbeitung von PHP-Anfragen. Ich werde Ihnen auch zeigen, wie Sie ein SSL-Zertifikat installieren, um die Drupal-Website zu sichern.

Voraussetzungen

  • Ubuntu 15.10 - 64-Bit-Version.
  • Root-Rechte.

Schritt 1 - Ubuntu-System aktualisieren

Melden Sie sich mit ssh beim Ubuntu-Server an, werden Sie dann Root-Benutzer und aktualisieren Sie das Ubuntu-Repository:

sudo su
sudo apt-get update

Schritt 2 – Nginx und PHP-FPM installieren

Nginx oder „engine-x“ ist ein schneller HTTP-Server, der auf hohe Leistung bei geringer Speicher-/RAM-Nutzung ausgerichtet ist. Wir können Nginx auch als Reverse-Proxy für HTTP-, HTTPS-, POP3- und IMAP-Protokolle verwenden. In diesem Tutorial verwenden wir Nginx als SSL-fähigen HTTP-Server.

Installieren Sie Nginx mit dem folgenden apt-Befehl als sudo/root-Benutzer:

sudo apt-get install nginx -y

Installieren Sie als Nächstes php-fpm mit php-gd, das vom Drupal-Kern benötigt wird:

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

Im nächsten Schritt konfigurieren wir Nginx.

Schritt 3 – Nginx und PHP-FPM konfigurieren

In diesem Schritt konfigurieren wir Nginx so, dass es php-fpm verwendet, um HTTP-Anforderungen für PHP-Seiten zu bedienen. Gehen Sie in das php-fpm-Verzeichnis "/etc/php/fpm" und bearbeiten Sie die Datei "php.ini":

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

Auf Linie 773 , kommentieren Sie die Zeile cgi.fix_pathinfo aus und ändern Sie den Wert in „0 ".

cgi.fix_pathinfo=0

Speichern Sie die Datei und verlassen Sie den Editor.

Jetzt ändern wir die Standardkonfiguration des virtuellen nginx-Hosts. Bearbeiten Sie die „default“-Datei und aktivieren Sie die php-fpm-Direktive.

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

Kommentieren Sie Zeile 45 - 52 aus um php-fpm mit nginx zu verwenden.

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

Speichern Sie die Datei und beenden Sie sie.

Testen Sie dann die Nginx-Konfiguration mit dem Befehl „nginx -t " um sicherzustellen, dass es gültig ist:

nginx -t

Wenn kein Fehler auftritt, starten Sie nginx und den php-fpm-Dienst neu:

systemctl restart nginx
systemctl restart php5-fpm

Testen Sie als Nächstes, ob php-fpm ordnungsgemäß mit nginx funktioniert, indem Sie eine neue php-Infodatei im Webverzeichnis „/var/www/html“ erstellen.

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

Besuchen Sie die Server-IP:192.168.1.101/info.php ein Webbrowser. Das Ergebnis sollte dem Screenshot unten ähneln.

Schritt 4 – MariaDB installieren und konfigurieren

MariaDB ist ein Datenbankserver-Fork des relationalen Datenbankverwaltungssystems MYSQL und bietet eine Drop-in-Ersatzfunktion für mysql.

Installieren Sie die neueste Version von MariaDB mit dem Befehl apt-get:

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

Wenn die Installation abgeschlossen ist, starten Sie MariaDB:

systemctl start mysql

Der Name des MariaDB-Dienstes ist "mysql", deshalb verwendet der systemctl-Befehl hier das Wort mysql.

Jetzt konfigurieren wir den MariaDB-Benutzernamen und das Passwort mit dem folgenden Befehl:

mysql_secure_installation

Melden Sie sich mit Ihrem Passwort bei der MariaDB-Shell an und erstellen Sie eine neue Datenbank für Drupal mit dem Namen "drupaldb". " und erstellen Sie einen neuen MariaDB/MySQL-Benutzer "drupaluser " mit dem Passwort "[email protected] " und erteilen Sie abschließend dem Benutzer Berechtigungen für die Datenbank. Bitte wählen Sie für Ihre Installation ein sicheres Passwort anstelle von "[email protected]"!

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

Die Datenbank "drupaldb " mit dem Benutzer "drupaluser " wurde erstellt.

Schritt 5 – Selbstsigniertes SSL-Zertifikat generieren

Gehen Sie zu /etc/nginx Verzeichnis und erstellen Sie ein neues Verzeichnis mit dem Namen "ssl" für die SSL-Konfigurationsdatei.

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

Generieren Sie dann mit dem folgenden openssl-Befehl ein neues selbstsigniertes SSL-Zertifikat:

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

Geben Sie die angeforderten Informationen ein. Die SSL-Zertifikatsdatei wurde generiert, ändern Sie nun die Berechtigungen der privaten Schlüsseldatei „drupal.key“ auf 600:

chmod 600 drupal.key

Schritt 6 – Konfigurieren Sie den VirtualHost für Drupal

Wir werden Drupal 8 im Verzeichnis „/var/www/drupal8“ mit dem Domainnamen „drupal8.me“ installieren. Bitte ersetzen Sie den Domainnamen in Ihrer Installation durch den Domainnamen der Website, für die Sie diese Drupal-Installation verwenden möchten. Lassen Sie uns also das Verzeichnis erstellen:

mkdir -p /var/www/drupal8

Gehen Sie dann in das Nginx-Virtualhost-Verzeichnis „/etc/nginx/sites-available/“ und erstellen Sie mit dem vim-Editor eine neue Datei „drupal8“:

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

Fügen Sie die Nginx-Konfiguration für drupal unten in die Datei drupal8:

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

Speichern Sie die Datei und verlassen Sie den Editor.

Die virtuelle Drupal-Host-Datei wurde erstellt, jetzt müssen wir sie aktivieren, indem wir einen Symlink zu der Datei im Verzeichnis „sites-enabled“ erstellen:

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

Testen Sie die Nginx-Konfiguration und starten Sie Nginx neu:

nginx -t
systemctl restart nginx

Schritt 7 - Drupal installieren und konfigurieren

Wir müssen git und drush installieren, bevor wir mit der Drupal-Installation beginnen. Drush ist eine Befehlszeilen-Shell und eine Unix-Skriptschnittstelle für Drupal. Installieren Sie es mit folgendem Befehl:

sudo apt-get install git drush -y

Geben Sie dann das zuvor erstellte drupal8-Verzeichnis ein und laden Sie Drupal mit dem Befehl git oder drush herunter:

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

Wenn Sie drush verwenden möchten, führen Sie stattdessen den folgenden Befehl aus:

drush dl drupal-8

Warten Sie, bis der Download abgeschlossen ist, und verschieben Sie dann alle Drupal-Dateien in das Hauptverzeichnis:

mv drupal/* /var/www/drupal8/

Im nächsten Schritt konfigurieren wir die Drupal-Einstellungsdatei. Wechseln Sie vom Drupal-Hauptverzeichnis in das Verzeichnis „sites/default“ und kopieren Sie die beiden Konfigurationsdateien „settings.php " und "services.yml ":

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

Dann müssen wir ein neues Verzeichnis mit dem Namen "files " im Verzeichnis "sites/default". Der Befehl "chmod" stellt sicher, dass die Konfigurationsdatei und das Verzeichnis "files" für die Drupal-Installation beschreibbar sind:

mkdir files/
chmod a+w *

Besuchen Sie nun Ihre Drupal-Website (in meinem Fall http://drupal8.me) Mit dem Webbrowser werden Sie automatisch auf die https-Verbindung umgeleitet und die Drupal-Installationsseite wird angezeigt.

Wählen Sie Ihre Sprache, ich verwende "Englisch" hier.

Klicken Sie auf "Speichern und fortfahren" .

Wählen Sie nun die Installationsart aus. Sie können Standard- oder Minimaltyp verwenden. Ich werde "Standard verwenden ".

Jetzt wird Ihnen die Datenbankkonfigurationsseite angezeigt. Geben Sie die Datenbankdetails für die Datenbank ein, die wir für Drupal erstellt haben.

Warten Sie, bis die Installation abgeschlossen ist.

Jetzt müssen wir die Seitenprofileinstellungen wie Seitenname, Benutzer und Passwort für Admin, E-Mail konfigurieren usw.

Jetzt ist Drupal installiert. Sie werden auf die Drupal-Homepage weitergeleitet.

Sie sehen eine Fehlermeldung über die Berechtigungen der Drupal-Konfigurationsdateien "settings.php" und "services.yml". Ändern Sie einfach die Berechtigung von ihnen mit den folgenden Befehlen:

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

Jetzt ist Drupal 8 mit Nginx und SSL auf Ubuntu 15.10 installiert.

Schlussfolgerung

Drupal ist ein kostenloses Open-Source-Content-Management-Framework, das auf PHP basiert. Es kann für einen persönlichen Blog, eine private Homepage oder eine Unternehmenswebsite verwendet werden. Drupal wird unter der GNU-Lizenz vertrieben. Die Hauptkomponente von Drupal wird "Drupal Core" genannt und bis jetzt hat die Drupal-Community mehr als 31.000 Module entwickelt, um sie zu erweitern. Die aktuelle stabile Version ist 8.0. Drupal ist einfach zu installieren und zu konfigurieren, wir können Nginx oder Apache als Webserver und PHP-FPM verwenden, um die PHP-Anfragen zu verarbeiten.


Ubuntu
  1. So installieren Sie Nextcloud mit Nginx und Lets Encrypt SSL unter Ubuntu 20.04 LTS

  2. So installieren Sie Magento 2 mit Nginx und Lets Encrypt SSL unter Ubuntu 20.04 LTS

  3. So installieren Sie Mattermost mit PostgreSQL und Nginx unter Ubuntu 16.04

  4. So installieren Sie MediaWiki mit Nginx unter Ubuntu 16.04

  5. So installieren Sie Nginx mit PHP5 und MySQL unter Ubuntu 11.10

So installieren Sie Drupal 8.1 mit Nginx, PHP-FPM und SSL auf Ubuntu 16.04

So installieren Sie Redmine 3.2 mit Nginx unter Ubuntu 16.04

So installieren Sie Django mit PostgreSQL und Nginx unter Ubuntu 16.04

So installieren Sie Drupal mit Nginx und Lets Encrypt SSL unter Ubuntu 20.04 LTS

So installieren Sie Drupal 9 mit Nginx und Lets Encrypt SSL unter Debian 10

So installieren Sie Moodle mit Nginx und Lets Encrypt SSL unter Ubuntu 20.04