Android

Jak zainstalować Drupal na Centos 7

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

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

Spisu treści:

Anonim

Drupal jest jedną z wiodących platform CMS typu open source na świecie. Jest elastyczny, skalowalny i może być wykorzystywany do tworzenia różnego rodzaju stron internetowych, od małych blogów osobistych po duże witryny korporacyjne, polityczne i rządowe.

W tym samouczku wyjaśnimy, jak zainstalować Drupal 8.6 na CentOS 7.

Istnieje wiele sposobów instalacji Drupala. Ten przewodnik opisuje kroki niezbędne do zainstalowania Drupala przy użyciu szablonu kompozytora dla projektów Drupal zwanego drupal-project.

Będziemy używać Nginx jako serwera WWW, najnowszego PHP 7.2 i MySQL / MariaDB jako serwera bazy danych.

Wymagania wstępne

Przed rozpoczęciem instalacji upewnij się, że zostały spełnione następujące wymagania wstępne:

  • Niech nazwa domeny wskazuje adres IP twojego publicznego serwera. Skorzystamy z example.com Zainstalowano Nginx. Zainstalowano certyfikat SSL dla Twojej domeny. Możesz zainstalować bezpłatny certyfikat Let's Encrypt SSL, postępując zgodnie z tymi instrukcjami. Zalogowany jako użytkownik z uprawnieniami sudo.

Utwórz bazę danych MySQL

Pierwszym krokiem jest utworzenie nowej bazy danych i konta użytkownika oraz przyznanie użytkownikowi odpowiednich uprawnień.

Jeśli MySQL lub MariaDB jest już zainstalowany na twoim serwerze, możesz pominąć ten krok, jeśli nie, możesz zainstalować pakiet serwera MariaDB 5.5 z domyślnych repozytoriów CentOS, wpisując:

sudo yum install mariadb-server W przypadku świeżych instalacji MariaDB / MySQL zaleca się uruchomienie komendy mysql_secure_installation celu poprawy bezpieczeństwa serwera bazy danych.

Zaloguj się do powłoki MySQL, wpisując następujące polecenie i wprowadź hasło po wyświetleniu monitu:

mysql -u root -p

Aby utworzyć bazę danych o nazwie drupal , użytkownik o nazwie drupaluser i nadać użytkownikowi niezbędne uprawnienia, uruchom następujące polecenia:

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

Zainstaluj PHP

CentOS 7 jest dostarczany z wersją PHP 5.4, która jest nieaktualna i nie jest już obsługiwana. Zalecana wersja PHP dla Drupal to PHP 7.2.

Aby zainstalować PHP 7.2 na CentOS 7 najpierw musimy włączyć repozytoria EPEL i Remi:

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

Po włączeniu repozytoriów do zainstalowania PHP 7.2 i wszystkich wymaganych rozszerzeń PHP uruchom następujące polecenia:

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

Zainstalowaliśmy PHP FPM, ponieważ będziemy używać Nginx jako serwera WWW.

Domyślnie PHP FPM będzie działać jako apache użytkownika na porcie 9000. Zmienimy użytkownika na nginx i zmienimy gniazdo TCP na gniazdo Unix. Aby to zrobić, /etc/php-fpm.d/www.conf plik /etc/php-fpm.d/www.conf i edytuj linie podświetlone na żółto:

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

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

Upewnij się, że katalog /var/lib/php ma poprawne prawo własności za pomocą następującego polecenia chown:

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

Na koniec włącz i uruchom usługę PHP FPM:

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

Zainstaluj Composer

Kompozytor jest menedżerem zależności dla PHP. Pobieramy szablon Drupal i zainstalujemy wszystkie niezbędne komponenty Drupal razem z kompozytorem.

Następujące polecenie zainstaluje kompozytora globalnie, pobierając instalator Complera za pomocą curl i przenosząc plik do katalogu /usr/local/bin :

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

Sprawdź instalację, uruchamiając następujące polecenie, które wydrukuje wersję kompozytora:

composer --version

Dane wyjściowe powinny wyglądać mniej więcej tak:

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

Zainstaluj Drupal

Teraz, gdy kompozytor został zainstalowany, utwórz nowy projekt Drupal przy użyciu szablonu Drupal w katalogu /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

Powyższe polecenie pobierze szablon, pobierze wszystkie wymagane pakiety php i uruchomi skrypty niezbędne do przygotowania projektu do instalacji. Proces może potrwać kilka minut, a jeśli się powiedzie, koniec danych wyjściowych będzie wyglądał następująco:

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

Następnym krokiem jest instalacja Drupala za pomocą Drusha. W poniższym poleceniu przekazujemy bazę danych MySQL i informacje o użytkowniku, które utworzyliśmy w pierwszej sekcji:

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

Instalator wyświetli następujący komunikat, wystarczy nacisnąć Enter, aby kontynuować.

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

Po zakończeniu instalacji skrypt wydrukuje administracyjną nazwę użytkownika i hasło. Dane wyjściowe powinny wyglądać mniej więcej tak:

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

Na koniec ustaw odpowiednie uprawnienia, aby serwer WWW miał pełny dostęp do plików i katalogów witryny:

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

Skonfiguruj Nginx

Do tej pory powinieneś już mieć Nginx z certyfikatem SSL zainstalowanym w systemie, jeśli nie, sprawdź wymagania wstępne tego samouczka.

Aby stworzyć nowy blok serwera dla naszego nowego projektu Drupal, użyjemy przepisu Nginx z oficjalnej strony Nginx.

Otwórz edytor tekstu i utwórz następujący plik:

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; } } Nie zapomnij zastąpić example.com domeną Drupal i ustawić prawidłową ścieżkę do plików certyfikatów SSL. Wszystkie żądania HTTP zostaną przekierowane do HTTPS. Fragmenty użyte w tej konfiguracji są tworzone w tym przewodniku.

Przed ponownym uruchomieniem usługi Nginx wykonaj test, aby upewnić się, że nie występują błędy składniowe:

sudo nginx -t

Uruchom ponownie usługę Nginx, aby zmiany zostały wprowadzone, pisząc:

sudo systemctl restart nginx

Przetestuj instalację

Otwórz przeglądarkę, wpisz domenę i zakładając, że instalacja zakończy się powodzeniem, pojawi się ekran podobny do następującego:

Możesz zalogować się jako administrator i rozpocząć dostosowywanie nowej instalacji Drupal.

Zainstaluj moduły i motywy Drupal

Teraz, gdy masz już zainstalowany projekt Drupal, będziesz chciał zainstalować niektóre moduły i motywy. Moduły i motywy Drupal są przechowywane w niestandardowym repozytorium kompozytora, które projekt drupal konfiguruje dla nas od razu po wyjęciu z pudełka.

Aby zainstalować moduł lub motyw, wystarczy wykonać cd do katalogu projektu i wpisać composer require drupal/module_or_theme_name . Na przykład, jeśli chcemy zainstalować moduł Pathauto, musimy uruchomić następującą komendę:

cd /var/www/my_drupal sudo -u nginx /usr/local/bin/composer require drupal/pathauto Dodając sudo -u nginx , uruchamiamy polecenie jako użytkownik 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

Jak widać z powyższego wyniku, kompozytor instaluje również dla nas wszystkie zależności pakietów.

Zaktualizuj rdzeń Drupala

Przed aktualizacją zawsze warto wykonać kopię zapasową plików i bazy danych. Możesz użyć modułu Kopia zapasowa i migracja lub ręcznie wykonać kopię zapasową bazy danych i plików.

Aby wykonać kopię zapasową plików instalacyjnych, możesz użyć następującego polecenia rsync, oczywiście musisz użyć poprawnej ścieżki do katalogu instalacyjnego:

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

Aby wykonać kopię zapasową bazy danych, możemy użyć standardowej komendy mysqldump :

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

lub drush sql-dump :

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

Po utworzeniu kopii zapasowej możemy kontynuować i zaktualizować wszystkie podstawowe pliki Drupala, uruchamiając następującą komendę:

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

Wniosek

Gratulacje, pomyślnie zainstalowałeś Drupal 8 za pomocą kompozytora i nauczyłeś się instalować moduły i motywy. Możesz teraz rozpocząć dostosowywanie swojej witryny. Podręcznik użytkownika Drupal 8 to dobre miejsce, w którym można dowiedzieć się więcej na temat zarządzania instalacją Drupal. Nie zapomnij również odwiedzić projektu szablonu Drupal Composer na Github.

centos drupal mysql mariadb cms nginx kompozytor