Android

Hoe drupal op centos 7 te installeren

How to Install Drupal 8 on CentOs 7 / Redhat (RHEL) 7

How to Install Drupal 8 on CentOs 7 / Redhat (RHEL) 7

Inhoudsopgave:

Anonim

Drupal is een van de toonaangevende open source CMS-platforms wereldwijd. Het is flexibel, schaalbaar en kan worden gebruikt om verschillende soorten websites te bouwen, variërend van kleine persoonlijke blogs tot grote zakelijke, politieke en overheidssites.

In deze zelfstudie leggen we uit hoe u Drupal 8.6 op CentOS 7 installeert.

Er zijn meerdere manieren om Drupal te installeren. Deze gids behandelt de stappen die nodig zijn voor het installeren van Drupal met behulp van een compositiesjabloon voor Drupal-projecten genaamd drupal-project.

We gebruiken Nginx als webserver, de nieuwste PHP 7.2 en MySQL / MariaDB als databaseserver.

voorwaarden

Controleer voordat u met de installatie begint of aan de volgende voorwaarden is voldaan:

  • Zorg dat een domeinnaam verwijst naar het IP-adres van uw openbare server. We gebruiken example.com Heb Nginx geïnstalleerd. Heb een SSL-certificaat geïnstalleerd voor uw domein. U kunt een gratis Let's Encrypt SSL-certificaat installeren door deze instructies te volgen. Aangemeld als een gebruiker met sudo-rechten.

Maak een MySQL-database

De eerste stap is het maken van een nieuwe database en gebruikersaccount en het verlenen van de juiste machtigingen aan de gebruiker.

Als MySQL of MariaDB al op uw server is geïnstalleerd, kunt u deze stap overslaan. Als dit niet het geval is, kunt u het MariaDB 5.5-serverpakket installeren vanuit de standaardrepository's van CentOS door het volgende te typen:

sudo yum install mariadb-server Voor nieuwe MariaDB / MySQL-installaties wordt het aanbevolen om de opdracht mysql_secure_installation voeren om de beveiliging van uw databaseserver te verbeteren.

Log in op de MySQL-shell door de volgende opdracht te typen en voer het wachtwoord in wanneer daarom wordt gevraagd:

mysql -u root -p

Voer de volgende opdrachten uit om een ​​database met de naam drupal , de gebruiker drupaluser en de benodigde machtigingen aan de gebruiker te verlenen:

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

Installeer PHP

CentOS 7 wordt geleverd met PHP versie 5.4, die verouderd is en niet langer wordt ondersteund. De aanbevolen PHP-versie voor Drupal is PHP 7.2.

Om PHP 7.2 eerst op CentOS 7 te installeren, moeten we de EPEL- en Remi-repositories inschakelen:

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

Zodra de repositories zijn ingeschakeld om PHP 7.2 te installeren en alle vereiste PHP-extensies de volgende opdrachten uitvoeren:

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

We hebben PHP FPM geïnstalleerd omdat we Nginx als webserver gaan gebruiken.

Standaard wordt PHP FPM uitgevoerd als gebruikersapache op poort 9000. We zullen de gebruiker wijzigen in nginx en overschakelen van TCP-socket naar Unix-socket. Open hiervoor het bestand /etc/php-fpm.d/www.conf en bewerk de geel gemarkeerde regels:

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

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

Zorg ervoor dat de map /var/lib/php de juiste eigendom heeft met de volgende opdracht chown:

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

Schakel ten slotte de PHP FPM-service in en start:

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

Composer installeren

Composer is een afhankelijkheidsmanager voor PHP. We zullen de Drupal-sjabloon downloaden en alle benodigde Drupal-componenten met de componist installeren.

Met de volgende opdracht wordt Composer wereldwijd geïnstalleerd door het Composer-installatieprogramma met curl te downloaden en het bestand naar de map /usr/local/bin verplaatsen:

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

Controleer de installatie door de volgende opdracht uit te voeren waarmee de versie van de componist wordt afgedrukt:

composer --version

De output zou er ongeveer zo uit moeten zien:

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

Installeer Drupal

Nu de componist is geïnstalleerd, maakt u een nieuw Drupal-project met behulp van de Drupal-sjabloon in de map /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

De bovenstaande opdracht downloadt de sjabloon, haalt alle vereiste php-pakketten op en voert de benodigde scripts uit om het project voor te bereiden op installatie. Het proces kan enkele minuten duren en als het succesvol is, ziet het einde van de uitvoer er als volgt uit:

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

De volgende stap is het installeren van Drupal met Drush. In de onderstaande opdracht geven we de MySQL-database en gebruikersinformatie door die we in de eerste sectie hebben gemaakt:

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

Het installatieprogramma vraagt ​​u om het volgende bericht. Druk op Enter om door te gaan.

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

Nadat de installatie is voltooid, drukt het script de beheerdersgebruikersnaam en het wachtwoord af. De uitvoer moet er ongeveer zo uitzien:

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

Stel ten slotte de juiste machtigingen in zodat de webserver volledige toegang heeft tot de bestanden en mappen van de site:

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

Configureer Nginx

U zou nu al Nginx met SSL-certificaat op uw systeem moeten hebben geïnstalleerd, zo niet, controleer dan de vereisten voor deze zelfstudie.

Om een ​​nieuw serverblok voor ons nieuwe Drupal-project te maken, gebruiken we het Nginx-recept van de officiële Nginx-site.

Open uw teksteditor en maak het volgende bestand:

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; } } Vergeet niet om example.com te vervangen door uw Drupal-domein en het juiste pad naar de SSL-certificaatbestanden in te stellen. Alle HTTP-aanvragen worden doorgestuurd naar HTTPS. De fragmenten die in deze configuratie worden gebruikt, worden in deze handleiding gemaakt.

Voordat u de Nginx-service opnieuw start, moet u een test uitvoeren om er zeker van te zijn dat er geen syntaxisfouten zijn:

sudo nginx -t

Start de Nginx-service opnieuw om de wijzigingen door te voeren door te typen:

sudo systemctl restart nginx

Test de installatie

Open uw browser, typ uw domein en ervan uitgaande dat de installatie is geslaagd, verschijnt een scherm zoals het volgende:

U kunt inloggen als een beheerder en beginnen met het aanpassen van uw nieuwe Drupal-installatie.

Installeer Drupal-modules en -thema's

Nu uw Drupal-project is geïnstalleerd, wilt u enkele modules en thema's installeren. Drupal-modules en -thema's worden gehost op een aangepaste compositorrepository, die drupal-project voor ons kant-en-klaar configureert.

Om een ​​module of een thema te installeren, hoeft u alleen maar naar de projectmap te cd en composer require drupal/module_or_theme_name typen composer require drupal/module_or_theme_name . Als we bijvoorbeeld de Pathauto-module willen installeren, moeten we de volgende opdracht uitvoeren:

cd /var/www/my_drupal sudo -u nginx /usr/local/bin/composer require drupal/pathauto Door sudo -u nginx we de opdracht uit als gebruiker 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

Zoals u kunt zien in de bovenstaande output, installeert componist ook alle pakketafhankelijkheden voor ons.

Update Drupal Core

Voordat u een upgrade uitvoert, is het altijd een goed idee om een ​​back-up van uw bestanden en database te maken. U kunt de module Back-up en migratie gebruiken of handmatig een back-up van uw database en bestanden maken.

Om een ​​back-up van de installatiebestanden te maken, kunt u de volgende rsync-opdracht gebruiken, natuurlijk moet u het juiste pad naar de installatiemap gebruiken:

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

Om een ​​back-up van de database te maken, kunnen we ofwel de standaardopdracht mysqldump gebruiken:

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

of drush sql-dump :

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

Nu we een back-up hebben gemaakt, kunnen we doorgaan en alle Drupal-kernbestanden bijwerken door de volgende opdracht uit te voeren:

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

Conclusie

Gefeliciteerd, je hebt met succes Drupal 8 geïnstalleerd met behulp van componist en geleerd hoe je modules en thema's kunt installeren. U kunt nu beginnen met het aanpassen van uw site. De Drupal 8 gebruikershandleiding is een goed startpunt voor meer informatie over het beheren van uw Drupal-installatie. Vergeet ook niet om het Drupal Composer-sjabloonproject op Github te bezoeken.

centos drupal mysql mariadb cms nginx componist