Android

Hur man installerar drupal på centos 7

How to install Drupal on CentOS 7

How to install Drupal on CentOS 7

Innehållsförteckning:

Anonim

Drupal är en av de ledande open source-CMS-plattformarna världen över. Det är flexibelt, skalbart och kan användas för att bygga olika typer av webbplatser, allt från små personliga bloggar till stora företag, politiska och statliga webbplatser.

I denna handledning förklarar vi hur du installerar Drupal 8.6 på CentOS 7.

Det finns flera sätt att installera Drupal. Den här guiden behandlar de steg som krävs för att installera Drupal med hjälp av en kompositmall för Drupal-projekt som kallas drupal-project.

Vi kommer att använda Nginx som en webbserver, den senaste PHP 7.2 och MySQL / MariaDB som en databaseserver.

förutsättningar

Innan du startar installationen, se till att du uppfyllt följande förutsättningar:

  • Har ett domännamn som pekar på din offentliga server-IP. Vi använder exempel.com. Har Nginx installerat. Har ett SSL-certifikat installerat för din domän. Du kan installera ett gratis Let's Encrypt SSL-certifikat genom att följa dessa instruktioner. Logga in som användare med sudo-behörigheter.

Skapa en MySQL-databas

Det första steget är att skapa en ny databas och ett användarkonto och ge behöriga behörigheter.

Om MySQL eller MariaDB redan är installerat på din server kan du hoppa över det här steget, om inte kan du installera MariaDB 5.5-serverpaketet från CentOSs standardförråd genom att skriva:

sudo yum install mariadb-server För färska MariaDB / MySQL-installationer rekommenderas att köra kommandot mysql_secure_installation att förbättra säkerheten för din databaseserver.

Logga in på MySQL-skalet genom att skriva följande kommando och ange lösenordet när du uppmanas:

mysql -u root -p

För att skapa en databas med namnet drupal , användaren heter drupaluser och för att ge nödvändiga behörigheter till användaren kör följande kommandon:

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

Installera PHP

CentOS 7 levereras med PHP version 5.4, som är föråldrad och inte längre stöds. Den rekommenderade PHP-versionen för Drupal är PHP 7.2.

För att installera PHP 7.2 på CentOS 7 först måste vi aktivera EPEL- och Remi-lagren:

sudo yum install epel-release yum-utils sudo yum install sudo yum-config-manager --enable remi-php72

När förvaren har aktiverat att installera PHP 7.2 och alla nödvändiga PHP-tillägg kör följande kommandon:

sudo yum install php-cli php-fpm php-mysql php-json php-opcache php-mbstring php-xml php-gd php-curl git

Vi installerade PHP FPM eftersom vi kommer att använda Nginx som en webbserver.

Som standard kommer PHP FPM att köras som användarapache på port 9000. Vi kommer att ändra användaren till nginx och byta från TCP-sockel till Unix-uttag För att göra det öppnar /etc/php-fpm.d/www.conf filen /etc/php-fpm.d/www.conf och redigerar raderna markerade med gult:

/etc/php-fpm.d/www.conf

… user = nginx… group = nginx… listen = /run/php-fpm/www.sock… listen.owner = nginx listen.group = nginx

Se till att katalogen /var/lib/php har rätt äganderätt med följande chown-kommando:

sudo chown -R root:nginx /var/lib/php

Slutligen, aktivera och starta PHP FPM-tjänsten:

sudo systemctl enable php-fpm sudo systemctl start php-fpm

Installera kompositör

Kompositör är en beroendehanterare för PHP. Vi kommer att ladda ner Drupal-mallen och installera alla nödvändiga Drupal-komponenter med kompositören.

Följande kommando installerar kompositören globalt genom att ladda ner Composer-installationsprogrammet med curl och flytta filen till /usr/local/bin :

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

Verifiera installationen genom att köra följande kommando som kommer att skriva ut kompositversionen:

composer --version

Utgången ska se ut så här:

Composer version 1.8.4 2019-02-11 10:52:10

Installera Drupal

Nu när kompositören har installerats skapar du ett nytt Drupal-projekt med hjälp av Drupal-mallen i katalogen /var/www/my_drupal :

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

Kommandot ovan kommer att ladda ner mallen, hämta alla nödvändiga php-paket och köra de skript som krävs för att förbereda projektet för installation. Processen kan ta några minuter och om den är framgångsrik kommer slutet på utgången att se ut så här:

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

Nästa steg är att installera Drupal med Drush. I kommandot nedan skickar vi MySQL-databasen och användarinformationen vi skapade i det första avsnittet:

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

Installatören ber dig med följande meddelande, tryck bara på enter för att fortsätta.

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

När installationen är klar kommer skriptet att skriva ut det administrativa användarnamnet och lösenordet. Utgången ska se ut som följande:

Starting Drupal installation. This takes a while. Installation complete. User name: admin User password: frxka2Db5v

Slutligen anger du rätt behörigheter så att webbservern kan ha full åtkomst till webbplatsens filer och kataloger:

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

Konfigurera Nginx

Nu bör du redan ha Nginx med SSL-certifikat installerat på ditt system, om inte kontrollera förutsättningarna för denna handledning.

För att skapa ett nytt serverblock för vårt nya Drupal-projekt kommer vi att använda Nginx-receptet från den officiella Nginx-webbplatsen.

Öppna din textredigerare och skapa följande fil:

sudo nano /etc/nginx/conf.d/example.com /etc/nginx/conf.d/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)(# 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; } } Glöm inte att ersätta exempel.com med din Drupal-domän och ange rätt sökväg till SSL-certifikatfilerna. Alla HTTP-förfrågningar kommer att omdirigeras till HTTPS. De utdrag som används i den här konfigurationen skapas i den här guiden.

Innan du startar om Nginx-tjänsten gör du ett test för att vara säker på att det inte finns några syntaxfel:

sudo nginx -t

Starta om Nginx-tjänsten för att ändringar ska träda i kraft genom att skriva:

sudo systemctl restart nginx

Testa installationen

Öppna din webbläsare, skriv din domän och förutsatt att installationen lyckas visas en skärm som liknar följande:

Du kan logga in som admin och börja anpassa din nya Drupal-installation.

Installera Drupal-moduler och teman

Nu när du har installerat ditt Drupal-projekt vill du installera några moduler och teman. Drupal-moduler och teman är värd i ett anpassat kompositörlager, som drupal-projektet konfigurerar för oss ur rutan.

För att installera en modul eller ett tema, allt du behöver göra är att cd till projektkatalogen och skriva composer require drupal/module_or_theme_name . Om vi ​​till exempel vill installera Pathauto-modulen måste vi köra följande kommando:

cd /var/www/my_drupal sudo -u nginx /usr/local/bin/composer require drupal/pathauto Genom att förbereda sudo -u nginx vi kommandot som user nginx

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 kan se från utgången ovan installerar kompositören också alla paketberoenden för oss.

Uppdatera Drupal Core

Innan du uppgraderar är det alltid en bra idé att ta en säkerhetskopia av dina filer och databaser. Du kan antingen använda säkerhetskopierings- och migreringsmodulen eller manuellt säkerhetskopiera din databas och filer.

För att säkerhetskopiera installationsfilerna kan du använda följande rsync-kommando, naturligtvis måste du använda rätt sökväg till installationskatalogen:

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

För att säkerhetskopiera databasen kan vi antingen använda kommandot mysqldump :

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

Nu när vi skapade en säkerhetskopia kan vi fortsätta och uppdatera alla Drupal-kärnfiler genom att köra följande kommando:

sudo -u nginx /usr/local/bin/composer update drupal/core webflo/drupal-core-require-dev symfony/* --with-dependencies

Slutsats

Grattis, du har installerat Drupal 8 med kompositör och lärt dig hur du installerar moduler och teman. Du kan nu börja anpassa din webbplats. Drupal 8 Användarhandbok är en bra utgångspunkt för att lära dig mer om hur du hanterar din Drupal-installation. Glöm inte att besöka mallprojektet Drupal Composer på Github.

centos drupal mysql mariadb cms nginx kompositör