Android

Kako instalirati drupal na ubuntu 18.04

How Install Siberian CMS

How Install Siberian CMS

Sadržaj:

Anonim

Drupal je jedna od najpopularnijih CMS platformi otvorenog koda širom svijeta. Napisana je na PHP-u i može se koristiti za izradu različitih vrsta web stranica, od malih osobnih blogova do velikih korporativnih, političkih i vladinih web mjesta.

U ovom ćemo vam vodiču pokazati kako instalirati Drupal 8.6 na uređaj Ubuntu 18.04. Postoji više načina za instaliranje Drupala. Ovaj vodič opisuje korake potrebne za instalaciju Drupala 8.6 koristeći predložak kompozitora za Drupal projekte nazvane drupal-project.

Koristit ćemo Nginx kao web poslužitelj, najnoviji PHP 7.2 i MySQL / MariaDB kao poslužitelj baze podataka.

Preduvjeti

Prije nastavka s ovim vodičem provjerite jeste li ispunili sljedeće preduvjete:

  • Ime domene pokazuje na IP vašeg javnog poslužitelja. Koristit ćemo example.com . Instalirali ste Nginx slijedeći ove upute. Za vašu domenu instaliran je SSL certifikat. Možete instalirati besplatni certifikat Let's Šifriraj SSL slijedeći ove upute.

Prije nego što počneš

Ažurirajte indeks i sistemske pakete na najnovije verzije:

sudo apt update && sudo apt upgrade

1. Stvorite MySQL bazu podataka

sudo apt install mysql-server Za svježe MySQL instalacije preporučuje se pokretanje naredbe mysql_secure_installation radi poboljšanja sigurnosti vašeg MySQL poslužitelja.

Sada se moramo prijaviti u MySQL školjku i stvoriti novu bazu podataka i korisnički račun te korisniku dati odgovarajuća dozvola za bespovratna sredstva.

Za prijavu u MySQL školjku upišite sljedeću naredbu i unesite lozinku kada se zatraži:

mysql -u root -p

Za izradu baze podataka pod nazivom drupal , korisnik nazvan drupaluser i dodijeljenje potrebnih dozvola korisniku pokrenite sljedeće naredbe:

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

PHP 7.2 koji je zadana PHP verzija u Ubuntu 18.04 u potpunosti je podržan i preporučen za Drupal 8.6. Budući da ćemo Nginx koristiti kao web poslužitelj, instalirat ćemo i PHP-FPM.

Za instaliranje svih potrebnih PHP modula izvodite sljedeću naredbu:

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 usluga će se automatski pokrenuti nakon dovršetka postupka instalacije, možete to potvrditi ispisom statusa usluge:

systemctl status php7.2-fpm

Izlaz bi trebao značiti da je fpm usluga aktivna i pokrenuta.

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

Skladatelj je upravitelj ovisnosti za PHP i koristit ćemo ga za preuzimanje Drupal predloška i instaliranje svih potrebnih Drupal komponenti.

Da biste globalno instalirali composer, preuzmite instalacijski program Composer s curl i premjestite datoteku u /usr/local/bin direktorij:

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

Provjerite instalaciju ispisom verzije skladatelja:

composer --version

Izlaz bi trebao izgledati ovako:

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

4. Instalirajte Drupal

Sada kada smo instalirali kompozitor, možemo nastaviti i stvoriti novi Drupal projekt koristeći predložak kompozitora unutar /var/www/my_drupal direktorija:

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

Gornja naredba preuzet će predložak, dohvatiti sve potrebne php pakete i pokrenuti neke skripte kako bismo pripremili naš projekt za instalaciju. Proces može trajati nekoliko minuta, a ako je uspješan, kraj rezultata trebao bi izgledati na sljedeći način:

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

Sljedeći je korak instalacija Drupala pomoću Drush-a. U naredbi ispod prenosimo MySQL bazu podataka i korisničke informacije stvorene u koraku 1:

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

Instalacijski program će vas obavijestiti sljedećom porukom, samo pritisnite enter za nastavak.

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

Nakon što je instalacija dovršena, skripta će ispisati administrativno korisničko ime i lozinku. Izlaz bi trebao izgledati ovako:

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

Na kraju, moramo postaviti ispravna dopuštenja tako da web poslužitelj može imati potpun pristup datotekama i mapama web mjesta. I Nginx i PHP rade kao www-data i www-data group, tako da trebamo izdati sljedeću naredbu:

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

5. Konfigurirajte Nginx

Do sad ste već trebali instalirati Nginx sa SSL certifikatom na vaš sustav, ako ne provjerite preduvjete za ovaj vodič.

Za stvaranje novog bloka poslužitelja za naš novi Drupal projekt koristit ćemo Nginx recept s službenog web mjesta Nginx.

Otvorite uređivač teksta i stvorite sljedeću datoteku:

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; } } Ne zaboravite zamijeniti example.com s domenom Drupal i postaviti ispravan put do datoteka s SSL certifikatima. Svi HTTP zahtjevi bit će preusmjereni na HTTPS. Isječci korišteni u ovoj konfiguraciji kreirani su u ovom vodiču.

Omogućite blok poslužitelja stvaranjem simboličke veze na direktorij koji sites-enabled :

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

Prije ponovnog pokretanja usluge Nginx napravite test da biste bili sigurni da nema sintakse:

sudo nginx -t

Ako nema pogrešaka, izlaz bi trebao izgledati ovako:

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

Na kraju, ponovno pokrenite Nginx uslugu upisivanjem:

sudo systemctl restart nginx

6. Ispitajte instalaciju

Otvorite preglednik, utipkajte domenu i pod pretpostavkom da je instalacija uspješna, pojavit će se zaslon sličan sljedećem:

Možete se prijaviti kao administrator i započeti prilagodbu svoje nove instalacije Drupal.

7. Instalirajte Drupal module i teme

Sada kada imate instaliran svoj Drupal projekt, htjet ćete instalirati neke module i teme. Drupal moduli i teme nalaze se u spremištu prilagođenog skladatelja, koje drupal-projekt konfigurira za nas izvan okvira.

Da biste instalirali modul ili temu, sve što trebate učiniti je cd na direktorij projekta i upisati composer require drupal/module_or_theme_name . Na primjer, ako želimo instalirati Pathauto modul, moramo pokrenuti sljedeću naredbu:

cd /var/www/my_drupal sudo -u www-data composer require drupal/pathauto Pretvarajući se sudo -u www-data izvršavamo naredbu kao korisnički 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

Kao što možete vidjeti iz rezultata, skladatelj nam također instalira sve ovisnosti o paketu.

8. Ažurirajte Drupal jezgru

Prije nadogradnje dobra je ideja uzeti sigurnosnu kopiju datoteka i baze podataka. Možete koristiti modul sigurnosne kopije i migracije ili sigurnosno kopirati bazu podataka i datoteke ručno.

Za sigurnosno kopiranje instalacijskih datoteka možete upotrijebiti sljedeću naredbu rsync, naravno, morat ćete koristiti ispravan put do instalacijske mape:

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

Za sigurnosno kopiranje baze podataka možemo koristiti standardnu ​​naredbu mysqldump :

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

ili drush sql-dump :

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

Sada, kada smo stvorili sigurnosnu kopiju, možemo nastaviti i ažurirati sve datoteke Drupal jezgre izvođenjem sljedeće naredbe:

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

Zaključak

Čestitamo, uspješno ste instalirali Drupal 8 koristeći composer i naučili kako instalirati module i teme. Sada možete započeti s prilagođavanjem web lokacije. Vodič za korisnike Drupal 8 dobro je početno mjesto za više informacija o upravljanju instalacijom Drupala. Također biste trebali posjetiti projekt predloška Drupal Composer na Githubu.

ubuntu drupal mysql mariadb cms nginx skladatelj