Android

Hvordan installere drupal på ubuntu 18.04

How to install Drupal on Ubuntu 18.04 19.04 Linux LoaclHost

How to install Drupal on Ubuntu 18.04 19.04 Linux LoaclHost

Innholdsfortegnelse:

Anonim

Drupal er en av de mest populære open source CMS-plattformene over hele verden. Det er skrevet i PHP og kan brukes til å bygge forskjellige typer nettsteder, alt fra små personlige blogger til store bedrifts-, politiske og myndighetsnettsteder.

I denne opplæringen vil vi vise deg hvordan du installerer Drupal 8.6 på en Ubuntu 18.04-maskin. Det er flere måter å installere Drupal på. Denne opplæringen dekker trinnene som er nødvendige for å installere Drupal 8.6 ved å bruke en komponistmal for Drupal-prosjekter som kalles drupal-project.

Vi bruker Nginx som en webserver, den nyeste PHP 7.2 og MySQL / MariaDB som en databaseserver.

Forutsetninger

Forsikre deg om at du har oppfylt følgende forutsetninger før du fortsetter med denne opplæringen:

  • Du har et domenenavn som peker til din offentlige server-IP. Vi bruker example.com Du har Nginx installert ved å følge disse instruksjonene. Du har et SSL-sertifikat installert for domenet ditt. Du kan installere et gratis Let's Encrypt SSL-sertifikat ved å følge disse instruksjonene.

Før du begynner

Oppdater pakkeindeksen og systempakkene til de nyeste versjonene:

sudo apt update && sudo apt upgrade

1. Lag en MySQL-database

sudo apt install mysql-server For ferske MySQL-installasjoner anbefales det å kjøre kommandoen mysql_secure_installation å forbedre sikkerheten til MySQL-serveren.

Nå må vi logge inn på MySQL-skallet og opprette en ny database og brukerkonto og gi brukeren passende bevilgningstillatelser.

For å logge på MySQL-skallet skriver du følgende kommando og skriver inn passordet når du blir bedt om det:

mysql -u root -p

For å opprette en database som heter drupal , bruker brukeren drupaluser og for å gi de nødvendige tillatelsene til brukeren, kjører følgende kommandoer:

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. Installer PHP

PHP 7.2, som er standard PHP-versjon i Ubuntu 18.04, støttes fullt ut og anbefales for Drupal 8.6. Siden vi bruker Nginx som en webserver, installerer vi PHP-FPM også.

Følg kommandoen for å installere alle nødvendige PHP-moduler:

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

PHP-FPM-tjenesten starter automatisk etter at installasjonsprosessen er fullført. Du kan bekrefte den ved å skrive ut tjenestestatusen:

systemctl status php7.2-fpm

Utgangen skal indikere at fpm-tjenesten er aktiv og kjører.

● 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. Installer Composer

Composer er en avhengighetsansvarlig for PHP, og vi bruker den til å laste ned Drupal-malen og installere alle nødvendige Drupal-komponenter.

For å installere komponist globalt, last ned Composer-installasjonsprogrammet med krøll og flytte filen til katalogen /usr/local/bin :

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

Bekreft installasjonen ved å skrive ut komponistversjonen:

composer --version

Utgangen skal se slik ut:

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

4. Installer Drupal

Nå som vi har installert komponist, kan vi fortsette og opprette et nytt Drupal-prosjekt ved å bruke komponistmalen i /var/www/my_drupal katalogen:

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

Kommandoen over vil laste ned malen, hente alle nødvendige php-pakker og kjøre noen skript for å forberede prosjektet vårt for installasjon. Prosessen kan ta noen minutter, og hvis den er vellykket, bør slutten av utskriften se slik ut:

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

Neste trinn er å installere Drupal ved å bruke Drush. I kommandoen nedenfor sender vi MySQL-databasen og brukerinformasjonen opprettet i trinn 1:

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

Installasjonsprogrammet ber deg om følgende melding, bare trykk på enter for å fortsette.

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

Når installasjonen er fullført, vil skriptet skrive ut det administrative brukernavnet og passordet. Utdataene skal se ut som følgende:

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

Til slutt må vi angi riktige tillatelser slik at webserveren kan ha full tilgang til nettstedets filer og kataloger. Både Nginx og PHP kjører som www-data bruker og www-data gruppe, så vi må utgi følgende kommando:

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

5. Konfigurer Nginx

Nå bør du allerede ha Nginx med SSL-sertifikat installert på systemet ditt, hvis ikke sjekk forutsetningene for denne opplæringen.

For å lage en ny serverblokk for vårt nye Drupal-prosjekt vil vi bruke Nginx-oppskriften fra det offisielle Nginx-nettstedet.

Åpne teksteditoren din og lag følgende fil:

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' /.*)$; 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 ~ ^(/+)?/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; } } Ikke glem å erstatte eksempel.com med Drupal-domenet og angi riktig sti til SSL-sertifikatfilene. Alle HTTP-forespørsler blir omdirigert til HTTPS. Utdragene som brukes i denne konfigurasjonen, opprettes i denne guiden.

Aktiver serverblokken ved å opprette en symbolsk lenke til den sites-enabled katalogen:

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

Før du starter Nginx-tjenesten på nytt, må du utføre en test for å være sikker på at det ikke er syntaksfeil:

sudo nginx -t

Hvis det ikke er noen feil, skal utgangen se slik ut:

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

Til slutt, start Nginx-tjenesten på nytt ved å skrive:

sudo systemctl restart nginx

6. Test installasjonen

Åpne nettleseren din, skriv inn domenet ditt og antar at installasjonen er vellykket, vises en skjerm som ligner på følgende:

Du kan logge på som administrator og begynne å tilpasse den nye Drupal-installasjonen.

7. Installer Drupal-moduler og temaer

Nå som du har Drupal-prosjektet installert, vil du installere noen moduler og temaer. Drupal-moduler og temaer er vert på et tilpasset komponistlager, som drupal-prosjekt konfigurerer for oss ut av boksen.

For å installere en modul eller et tema, er alt du trenger å gjøre å cd til prosjektkatalogen og skrive composer require drupal/module_or_theme_name . Hvis vi for eksempel vil installere Pathauto-modulen, må vi kjøre følgende kommando:

cd /var/www/my_drupal sudo -u www-data composer require drupal/pathauto Ved å forhåndsvise sudo -u www-data kjører vi kommandoen som bruker- 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

Som du ser fra utdataene ovenfor, installerer også komponisten alle pakkeavhengighetene for oss.

8. Oppdater Drupal-kjerne

Før du oppgraderer er det alltid en god idé å ta en sikkerhetskopi av filene og databasen. Du kan enten bruke sikkerhetskopi og migrering-modulen eller ta sikkerhetskopi av databasen og filene manuelt.

For å ta sikkerhetskopi av installasjonsfilene kan du selv bruke følgende rsync-kommando, selvfølgelig, du må bruke riktig sti til installasjonskatalogen:

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

For å sikkerhetskopiere databasen kan vi enten bruke standard mysqldump kommandoen:

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

eller drush sql-dump :

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

Nå som vi opprettet en sikkerhetskopi, kan vi fortsette og oppdatere alle Drupal kjernefiler ved å kjøre følgende kommando:

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

Konklusjon

Gratulerer, du har installert Drupal 8 ved å bruke komponist og lært hvordan du installerer moduler og temaer. Du kan nå begynne å tilpasse nettstedet ditt. Drupal 8 Brukerhåndbok er et godt utgangspunkt for å lære mer om hvordan du administrerer Drupal-installasjonen. Du bør også besøke malprosjektet Drupal Composer på Github.

ubuntu drupal mysql mariadb cms nginx komponist