Sådan installeres Drupal 8.1 med Nginx, PHP-FPM og SSL på Ubuntu 16.04

Sådan installeres Drupal 8.1 med Nginx, PHP-FPM og SSL på Ubuntu 16.04

Drupal er et velkendt open source content management system baseret på PHP. Den er tilgængelig gratis og frigivet under GNU General Public License. Drupal kan bruges til alle størrelser af websteder, fra store internationale hjemmesider til personlige blogs og corporate eller offentlige websteder. Kernedelen af ​​drupal hedder "Drupal Core", den indeholder det grundlæggende indholdshåndteringssystem, brugerstyring, menustyring, layouttilpasning og systemadministration. Drupal Core kan udvides med plugins, indtil nu er drupal-fællesskabet blevet leveret mere end 31.000-moduler til Drupal.

I denne vejledning installerer vi Drupal 8.1.10 med Nginx webserver, MariaDB 10 som databaseserver og PHP-FPM (PHP 7.0) til at håndtere PHP-forespørgsler. Jeg vil også vise dig, hvordan du installerer et SSL-certifikat for at sikre Drupal-webstedet.

Forudsætninger

  • Ubuntu 16.04 - 64bit version.
  • Root privilegier.

Trin 1 - Opdater Ubuntu-systemet

Log ind på ubuntu-serveren med ssh, og derefter blive root-bruger og opdatere ubuntu-depotet:

sudo su
sudo apt-get update

Trin 2 - Installer Nginx og PHP-FPM

Nginx eller "engine-x" er hurtig HTTP-server, der er fokuseret på høj ydeevne med lav hukommelse / RAM-brug. Vi kan også bruge Nginx som omvendt proxy, til HTTP, HTTPS, POP3 og IMAP protokoller. I denne vejledning bruger vi Nginx som SSL-aktiveret HTTP-server.

Installer Nginx med følgende apt kommando som sudo / root bruger:

sudo apt-get install nginx -y

Derefter installerer du php7.0-fpm med php-gd-udvidelse, som kræves af drupal core:

sudo apt-get installer php7.0-fpm php7.0-cli php7.0-gd php7.0-mysql php7.0-xml -y

I det næste trin vil vi konfigurere Nginx.

Trin 3 - Konfigurer Nginx og PHP-FPM

I dette trin vil vi konfigurere Nginx til at bruge php-fpm til at betjene HTTP-anmodninger til PHP-sider. Gå til php-fpm-mappen "/ etc / php / 7.0 / fpm" og rediger "php.ini" -filen:

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

On line 761, uncomment cgi.fix_pathinfo linje og ændre værdien til "0".

cgi.fix_pathinfo = 0

Gem filen og forlad editoren.

Nu ændrer vi standard Nginx virtuelle værtskonfiguration. Rediger "standard" filen og aktiver php-fpm direktivet.

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

Ukomment linje 51 - 58 at bruge php-fpm med nginx.

        placering ~ .php $ {include snippets / fastcgi-php.conf; # # # Med php7.0-cgi alene: # fastcgi_pass 127.0.0.1: 9000; # # Med php7.0-fpm: fastcgi_pass unix: /run/php/php7.0-fpm.sock; }

Gem filen og afslut.

Test derefter Nginx-konfigurationen med kommandoen "nginx -t"For at sikre, at den er gyldig:

nginx -t

Hvis der ikke er nogen fejl, genstart nginx og php-fpm-tjenesten:

systemctl genstart nginx
systemctl genstart php7.0-fpm

Prøv derefter at php-fpm fungerer korrekt med nginx ved at oprette ny php info-fil i webkataloget "/ var / www / html".

cd / var / www / html /
ekko "<? php phpinfo (); ?> "> Info.php

Besøg info.php filen på serveren IP (i mit tilfælde http: //192.168.1.4 / info.php) i en webbrowser. Resultatet skal svare til skærmbilledet nedenfor.

Trin 4 - Installer og konfigurer MariaDB

MariaDB er databaseservergaffel i MYSQL relationsdatabasestyringssystem. Det tilbyder en drop-in-udskiftningsfunktionalitet til MySQL.

Installer den nyeste version af MariaDB med apt-get-kommandoen:

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

Når installationen er gennemført, skal du starte MariaDB:

systemctl start mysql

MariaDB-servicenavnet er "mysql", derfor bruger systemctl-kommandoen ordet mysql her.

Nu vil vi konfigurere MariaDB brugernavn og adgangskode med kommando nedenfor:

mysql_secure_installation

mysql_secure_installation
Indstil root password? [Y / n] Y
Nyt kodeord:
Indtast ny adgangskode:
Fjern anonyme brugere? [Y / n] Y
... succes!
Disallow root login fjernt? [Y / n] Y
... succes!
Fjern test database og adgang til det? [Y / n] Y
... succes!
Genindlæs privilegietabeller nu? [Y / n] Y
... succes!

Log ind på MariaDB-skalen med dit kodeord og opret en ny database til drupal kaldet "drupaldb"Og opret ny MariaDB / MySQL bruger"drupaluser"Med adgangskoden"[Email protected]"Og endelig tildele brugerens tilladelser til databasen. Vælg venligst et sikkert kodeord i stedet for "[Email protected]"Til din installation!

mysql -u rod-p
oprette database drupaldb;
oprette bruger [email protected] identificeret af '[Email protected]';
give alle privilegier på drupaldb. * til [email protected] identificeret af '[Email protected]';
flush privilegier;
q

Databasen "drupaldb"Med bruger"drupaluser"Er blevet oprettet.

Trin 5 - Generer et selvtegnet SSL-certifikat

Gå til / Etc / Nginx mappe og opret en ny mappe med navnet "ssl" for SSL-konfigurationsfilen.

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

Derefter generere et nyt, selvsigneret SSL-certifikat med openssl-kommandoen nedenfor:

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

Udfyld den ønskede information. SSL-certifikatfilen er blevet genereret, nu ændrer tilladelserne til den private nøglefil "drupal.key" til 600:

chmod 600 drupal.key

Trin 6 - Konfigurer VirtualHost til Drupal

Vi installerer Drupal 8 i mappen "/ var / www / drupal8" med domænenavnet "drupal8.me". Udfyld domænenavnet i din installation med domænenavnet på det websted, du vil bruge denne drupal-installation til. Så lad os oprette mappen:

mkdir -p / var / www / drupal8

Gå derefter til Nginx virtualhost-mappen "/ etc / nginx / sites-available /" og opret en ny fil "drupal8" med vim-editoren:

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

Indsæt Nginx-konfigurationen for drupal nedenfor i filen drupal8:

server {server_name drupal8.me; root / var / www / drupal8; ## <- Din eneste vejreference. lyt 80; lyt [::]: 80; lyt 443 standard ssl; ssl_certificate /etc/nginx/ssl/drupal.crt; ssl_certificate_key /etc/nginx/ssl/drupal.key; # Omdirigere HTTP til HTTPS hvis ($ scheme = http) {returnér 301 https: // $ server_name $ request_uri; } location = /favicon.ico {log_not_found off; access_log off } location = /robots.txt {tillad alle; log_not_found off; access_log off } # Meget sjældent skal disse nogensinde nås uden for din lan location ~ *. (Txt | log) $ {allow 192.168.0.0 / 16; nægte alle; } placering ~ .. * /. *. php $ {return 403; } placering ~ ^ / sites /.*/ private / {return 403; } # Bloker adgang til "skjulte" filer og mapper, hvis navne begynder med en # periode. Dette omfatter mapper, der anvendes af versionsstyringssystemer som # Subversion eller Git til at gemme kontrolfiler. placering ~ (^ | /). {return 403; } placering / {# try_files $ uri @rewrite; # For Drupal <= 6 try_files $ uri / index.php?$query_string; # For Drupal> = 7} placering @rewrite {omskriv ^ / (. *) $ /index.php?q=$1; } # I Drupal 8 skal vi også matche nye stier, hvor '.php' vises i midten, # som f.eks. Update.php / selection. Reglen vi bruger er streng, og tillader kun dette mønster # med den opdaterede .php front controller. Dette gør det muligt for arvspassaliaser i form af # blog / index.php / legacy-path for at fortsætte med at rute til Drupal-noder. Hvis du ikke har # nogen stier som det, kan du helst bruge en laxer-regel, som f.eks .: # location ~ .php (/ | $) {# Laxer-reglen fortsætter med at fungere, hvis Drupal bruger dette nye webadressemønster med forreste # controllere bortset fra update.php i en fremtidig udgivelse. placering ~ '.php $ | ^ / update.php' {fastcgi_split_path_info ^ (. +?. php) (| /.*)$; #NOTE: Du skal have "cgi.fix_pathinfo = 0;" i php.ini inkluderer fastcgi_params; inkludere uddrag / fastcgi-php.conf; fastcgi_param SCRIPT_FILENAME $ request_filename; fastcgi_intercept_errors on; fastcgi_pass unix: /run/php/php7.0-fpm.sock; } # Kæmper med stilarter? Denne lille perle er fantastisk. # location ~ ^ / sites /.*/ files / imagecache / {# For Drupal <= 6 placering ~ ^ / sites /.*/ files / styles / {# For Drpal> = 7 try_files $ uri @rewrite; } placering ~ *. (js | css | png | jpg | jpeg | gif | ico) $ {udløber max; log_not_found off; }}

Gem filen og forlad editoren.

Den virtuelle Drupal-hostfil er blevet oprettet, nu skal vi aktivere den ved at oprette en symlink til filen i "Sites-enabled" -mappen:

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

Test Nginx-konfigurationen og genstart Nginx:

nginx -t
systemctl genstart nginx

Trin 7 - Installer og konfigurer Drupal

Vi skal installere git og drush før vi starter med Drupal installationen. Drush er en kommandolinje shell og Unix scripting interface til Drupal. Installer den med apt følgende kommando:

sudo apt-get install git drush -y

Indtast derefter den drupal8 bibliotek, som vi lavede tidligere og download Drupal med wget eller drush. Jeg vil bruge wget her:

cd / var / www / drupal8
wget https://ftp.drupal.org/files/projects/drupal-8.1.10.tar.gz

Hvis du vil bruge drush, skal du køre kommandoen nedenfor i stedet:

drush dl drupal-8

Vent, indtil downloadet er færdigt, og flyt derefter alle Drupal-filer til hovedmappen:

tjære -xzvf drupal-8.1.10.tar.gz
mv drupal-8.1.10 / *.
rm-rf drupal-8.1.10

I det næste trin konfigurerer vi Drupal-indstillingsfilen. Fra Drupal hovedmappe, gå til "websteder / standard" mappen og kopiere de to konfigurationsfiler "settings.php"Og"services.yml"

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

Så skal vi lave en ny mappe med navnet "filer"Inde i" websteder / standard "-kataloget. Kommandoen "chmod" sikrer, at konfigurationsfilen og "filer" -mappen kan skrives til Drupal-installation:

mkdir filer /
chmod a + w *

Besøg nu dit Drupal-websted (i mit tilfælde http://drupal8.me) Med webbrowseren bliver du omdirigeret til https-forbindelsen automatisk, og siden Drupal installer vises.

Bemærk venligst, at denne vejledning netop er blevet opdateret fra Drupal 8.1.8 til 8.1.10 i kommandoerne for at inkludere nyeste sikkerhedsrettelser til Drupal, der er udgivet i dag. Skærmbillederne viser stadig 8.1.8-versionsnummeret, da grænsefladen ikke er ændret. Du bør altid bruge den nyeste stabile Drupal-version til din installation og erstatte versionsnummeret i installeringskommandoerne ovenfor.

Vælg dit sprog, jeg vil bruge "Engelsk" her.

Klik "Gem og fortsæt".

Vælg sprog

Vælg nu installationstypen. Du kan bruge standard eller minimal type. Jeg vil bruge "standard".

Vælg Drupal installationsprofil

Nu vil du blive vist database konfiguration side. Udfyld databaseoplysningerne for den database, som vi har oprettet til Drupal.

Drupal Database Configuration

Vent, indtil installationen er færdig.

Installation af Drupal

Nu skal vi konfigurere indstillingerne for webstedsprofilen som websted navn, bruger og adgangskode til admin, e-mail-adresse etc.

Konfigurer webstedsprofil i Drupal

Nu er Drupal installeret. Du bliver omdirigeret til Drupals startside.

Drupal installation færdig

Du kan muligvis se en fejlmeddelelse om tilladelserne til drupal konfigurationsfiler "settings.php" og "services.yml". Du skal bare ændre deres tilladelse med følgende kommandoer:

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

Nu er Drupal 8.1 installeret med Nginx og SSL på ubuntu 16.04.

Konklusion

Drupal er en gratis, open source content management framework baseret på PHP. Det kan bruges til en personlig blog, privat hjemmeside eller virksomheds hjemmeside. Drupal distribueres under GNU-GPL licens. Hoveddelen af ​​Drupal kaldes "Drupal Core", og indtil videre har Drupal-fællesskabet udviklet mere end 31.000-moduler for at udvide det. Den nuværende stabile version er 8.1.10. Drupal er let at installere og konfigurere, vi kan bruge Nginx eller Apache som webserver og PHP-FPM til at håndtere PHP-anmodningerne på en Drupal-server.

Kilde

Giv en kommentar

Dette websted bruger Akismet til at reducere spam. Lær, hvordan dine kommentardata behandles.