Android

Cum se instalează drupal pe ubuntu 18.04

Drupal 8 - Module: Sử dụng hook_form_alter để tuỳ biến form

Drupal 8 - Module: Sử dụng hook_form_alter để tuỳ biến form

Cuprins:

Anonim

Drupal este una dintre cele mai populare platforme CMS open source la nivel mondial. Este scris în PHP și poate fi folosit pentru a construi diferite tipuri de site-uri web, de la mici bloguri personale la mari site-uri corporative, politice și guvernamentale.

În acest tutorial, vă vom arăta cum să instalați Drupal 8.6 pe o mașină Ubuntu 18.04. Există mai multe modalități de instalare a Drupal. Acest tutorial acoperă pașii necesari pentru instalarea Drupal 8.6 folosind un șablon compozitor pentru proiectele Drupal numit proiect drupal.

Vom folosi Nginx ca server web, cel mai recent PHP 7.2 și MySQL / MariaDB ca server de baze de date.

Cerințe preliminare

Asigurați-vă că ați îndeplinit următoarele cerințe înainte de a continua cu acest tutorial:

  • Aveți un nume de domeniu îndreptat către IP-ul serverului dvs. public. Vom folosi example.com . Aveți Nginx instalat urmând aceste instrucțiuni. Aveți un certificat SSL instalat pentru domeniul dvs. Puteți instala un certificat SSL gratuit Encrypt urmând aceste instrucțiuni.

Înainte de a începe

Actualizați indexul și pachetele de sistem la cele mai recente versiuni:

sudo apt update && sudo apt upgrade

1. Creați o bază de date MySQL

sudo apt install mysql-server Pentru instalații MySQL proaspete, este recomandat să rulați comanda mysql_secure_installation pentru a îmbunătăți securitatea serverului MySQL.

Acum trebuie să ne conectăm la shell-ul MySQL și să creăm o nouă bază de date și un cont de utilizator și să oferim utilizatorului permisiunile de acordare corespunzătoare.

Pentru a vă autentifica la shell-ul MySQL, introduceți următoarea comandă și introduceți parola atunci când vi se solicită:

mysql -u root -p

Pentru a crea o bază de date numită drupal , utilizatorul numit drupaluser și pentru a acorda permisiunile necesare utilizatorului rulați următoarele comenzi:

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. Instalați PHP

PHP 7.2, care este versiunea implicită PHP din Ubuntu 18.04, este complet acceptat și recomandat pentru Drupal 8.6. Întrucât vom folosi Nginx ca server web, vom instala și PHP-FPM.

Pentru a instala toate modulele PHP necesare, executați următoarea comandă:

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

Serviciul PHP-FPM va începe automat după finalizarea procesului de instalare, îl puteți verifica imprimând starea serviciului:

systemctl status php7.2-fpm

Ieșirea ar trebui să indice că serviciul fpm este activ și funcționează.

● 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. Instalați Composer

Composer este un manager de dependență pentru PHP și îl vom folosi pentru a descărca șablonul Drupal și pentru a instala toate componentele Drupal necesare.

Pentru a instala compozitorul, descărcați instalatorul Compozitor cu ondulator și mutați fișierul în directorul /usr/local/bin :

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

Verificați instalarea imprimând versiunea compozitorului:

composer --version

Produsul ar trebui să arate așa:

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

4. Instalați Drupal

Acum că avem instalat compozitor, putem continua și crea un nou proiect Drupal folosind șablonul compozitorului din directorul /var/www/my_drupal :

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

Comanda de mai sus va descărca șablonul, va prelua toate pachetele php necesare și va rula câteva scripturi pentru a pregăti proiectul nostru pentru instalare. Procesul poate dura câteva minute și, dacă se reușește, sfârșitul ieșirii ar trebui să arate astfel:

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

Următorul pas este instalarea Drupal folosind Drush. În comanda de mai jos trecem baza de date MySQL și informațiile despre utilizator create la pasul 1:

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

Instalatorul vă va solicita următorul mesaj, trebuie doar să apăsați Enter pentru a continua.

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

După finalizarea instalării, scriptul va tipări numele de utilizator administrativ și parola. Rezultatul ar trebui să semene cu următoarele:

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

În cele din urmă, trebuie să setăm permisiunile corecte, astfel încât serverul web să poată avea acces complet la fișierele și directoarele site-ului. Atât Nginx, cât și PHP funcționează ca utilizator de www-data www-data grup de www-data , deci trebuie să emitem următoarea comandă:

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

5. Configurați Nginx

Până acum, ar trebui să aveți deja Nginx cu certificat SSL instalat pe sistemul dvs., dacă nu verificați condițiile preliminare pentru acest tutorial.

Pentru a crea un nou bloc de server pentru noul nostru proiect Drupal, vom folosi rețeta Nginx de pe site-ul oficial Nginx.

Deschideți editorul de text și creați următorul fișier:

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; } } Nu uitați să înlocuiți example.com cu domeniul Drupal și să setați calea corectă la fișierele de certificat SSL. Toate cererile HTTP vor fi redirecționate către HTTPS. Fragmentele utilizate în această configurație sunt create în acest ghid.

Activați blocul de server creând o legătură simbolică către directorul sites-enabled pentru sites-enabled :

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

Înainte de a reporni serviciul Nginx, faceți un test pentru a vă asigura că nu există erori de sintaxă:

sudo nginx -t

Dacă nu există erori, ieșirea ar trebui să arate astfel:

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

În cele din urmă, reporniți serviciul Nginx tastând:

sudo systemctl restart nginx

6. Testați instalarea

Deschideți browserul, tastați-vă domeniul și presupunând că instalarea este reușită, va apărea un ecran similar cu următoarele:

Vă puteți conecta ca administrator și puteți începe să personalizați noua dvs. instalare Drupal.

7. Instalați modulele și temele Drupal

Acum că aveți proiectul Drupal instalat, veți dori să instalați câteva module și teme. Modulele și temele Drupal sunt găzduite pe un depozit de compozitori personalizat, care drupal-proiectul ne configurează din cutie.

Pentru a instala un modul sau o temă, tot ce trebuie să faceți este să vă composer require drupal/module_or_theme_name directorul de proiect și tipul composer require drupal/module_or_theme_name . De exemplu, dacă dorim să instalăm modulul Pathauto, trebuie să rulăm următoarea comandă:

cd /var/www/my_drupal sudo -u www-data composer require drupal/pathauto Prepărând sudo -u www-data rulăm comanda ca utilizator 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

După cum puteți vedea din ieșirea de mai sus, compozitorul instalează și toate dependențele de pachet pentru noi.

8. Actualizați nucleul Drupal

Înainte de actualizare, este întotdeauna o idee bună să iei o copie de rezervă a fișierelor și a bazei de date. Puteți utiliza modulul Backup și Migrare sau faceți backup manual în baza de date și fișierele.

Pentru a face backup pentru fișierele de instalare, puteți utiliza următoarea comandă rsync, desigur, va trebui să utilizați calea corectă către directorul de instalare:

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

Pentru a face o copie de siguranță a bazei de date, putem folosi fie comanda standard mysqldump :

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

sau drush sql-dump :

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

Acum că am creat o copie de rezervă, putem continua și actualiza toate fișierele principale Drupal rulând următoarea comandă:

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

Concluzie

Felicitări, ați instalat cu succes Drupal 8 folosind compozitor și ați învățat cum să instalați module și teme. Acum puteți începe să personalizați site-ul. Ghidul utilizatorului Drupal 8 este un bun loc de pornire pentru a afla mai multe despre cum să gestionați instalarea Drupal. De asemenea, ar trebui să vizitați proiectul de șabloane Drupal Composer pe Github.

ubuntu drupal mysql mariadb cms nginx compozitor