Android

Paano mag-install ng drupal sa ubuntu 18.04

How to install Drupal on Ubuntu 18.04 19.04 Linux LoaclHost

How to install Drupal on Ubuntu 18.04 19.04 Linux LoaclHost

Talaan ng mga Nilalaman:

Anonim

Ang Drupal ay isa sa mga pinakatanyag na bukas na platform ng CMS sa buong mundo. Nasusulat ito sa PHP at maaaring magamit upang makabuo ng iba't ibang uri ng mga website na nagmula sa maliit na personal na blog hanggang sa mga malalaking kumpanya sa korporasyon, pampulitika, at gobyerno.

Sa tutorial na ito, ipapakita namin sa iyo kung paano i-install ang Drupal 8.6 sa isang makina ng Ubuntu 18.04. Mayroong maraming mga paraan upang mai-install ang Drupal. Sakop ng tutorial na ito ang mga hakbang na kinakailangan para sa pag-install ng Drupal 8.6 gamit ang isang kompositor na template para sa mga proyekto ng Drupal na tinatawag na drupal-project.

Gumagamit kami ng Nginx bilang isang web server, ang pinakabagong PHP 7.2 at MySQL / MariaDB bilang isang server ng database.

Mga kinakailangan

Tiyaking nakilala mo ang sumusunod na mga kinakailangan bago magpatuloy sa tutorial na ito:

  • Mayroon kang isang domain name na tumuturo sa iyong public server IP. Gagamitin namin ang example.com .Nag-install ka ng Nginx sa pamamagitan ng pagsunod sa mga tagubiling ito.May isang naka-install na SSL certificate para sa iyong domain. Maaari kang mag-install ng isang libreng Let’s Encrypt SSL certificate sa pamamagitan ng pagsunod sa mga tagubiling ito.

Bago ka magsimula

I-update ang index index at mga pakete ng system sa pinakabagong mga bersyon:

sudo apt update && sudo apt upgrade

1. Lumikha ng isang database ng MySQL

sudo apt install mysql-server Para sa mga sariwang pag-install ng MySQL, inirerekumenda na patakbuhin ang utos ng mysql_secure_installation upang mapabuti ang seguridad ng iyong MySQL server.

Ngayon kailangan nating mag-login sa shell ng MySQL at upang lumikha ng isang bagong database at account ng gumagamit at bigyan ang gumagamit ng naaangkop na pahintulot sa pagbibigay.

Upang mag-log in sa type ng MySQL shell ang sumusunod na utos at ipasok ang password kapag sinenyasan:

mysql -u root -p

Upang lumikha ng isang database na nagngangalang drupal , pinangalanan ng gumagamit na drupaluser at upang mabigyan ng kinakailangang mga pahintulot sa gumagamit ang mga sumusunod na utos:

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. I-install ang PHP

Ang PHP 7.2 na siyang default na bersyon ng PHP sa Ubuntu 18.04 ay ganap na suportado at inirerekomenda para sa Drupal 8.6. Dahil gagamitin namin ang Nginx bilang isang web server ay mai-install din namin ang PHP-FPM.

Upang mai-install ang lahat ng kinakailangang mga module ng PHP patakbuhin ang sumusunod na utos:

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

Ang serbisyo ng PHP-FPM ay awtomatikong magsisimula pagkatapos makumpleto ang proseso ng pag-install, maaari mo itong i-verify sa pamamagitan ng pag-print ng katayuan ng serbisyo:

systemctl status php7.2-fpm

Dapat ipahiwatig ng output na ang serbisyo ng fpm ay aktibo at tumatakbo.

● 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. I-install ang Kompositor

Ang kompositor ay isang dependency manager para sa PHP at gagamitin namin ito upang i-download ang template ng Drupal at mai-install ang lahat ng kinakailangang mga bahagi ng Drupal.

Upang mai-install ang kompositor sa buong mundo i-download ang Tagabuo ng kompositor na may curl at ilipat ang file sa direktoryo /usr/local/bin :

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

Patunayan ang pag-install sa pamamagitan ng pag-print ng bersyon ng kompositor:

composer --version

Ang output ay dapat magmukhang ganito:

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

4. I-install ang Drupal

Ngayon na naka-install kami ng kompositor, maaari kaming magpatuloy at lumikha ng isang bagong proyekto ng Drupal gamit ang kompositor na template sa loob /var/www/my_drupal direktoryo:

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

Ang utos sa itaas ay i-download ang template, makuha ang lahat ng kinakailangang mga pakete ng php at magpatakbo ng ilang mga script upang ihanda ang aming proyekto para sa pag-install. Ang proseso ay maaaring tumagal ng ilang minuto at kung matagumpay ito ang pagtatapos ng output ay dapat magmukhang mga sumusunod:

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

Susunod na hakbang ay ang pag-install ng Drupal gamit ang Drush. Sa utos sa ibaba ay ipinapasa namin ang database ng MySQL at impormasyon ng gumagamit na nilikha sa hakbang 1:

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

A-prompt ka ng installer sa sumusunod na mensahe, pindutin lamang ang enter upang magpatuloy.

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

Kapag nakumpleto ang pag-install ang script ay mai-print ang administrative username at password. Ang output ay dapat magmukhang isang bagay tulad ng mga sumusunod:

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

Sa wakas, kailangan nating itakda ang tamang mga pahintulot upang ang web server ay maaaring magkaroon ng buong pag-access sa mga file at direktoryo ng site. Parehong Nginx at PHP ay tumatakbo bilang gumagamit ng www-data at grupong www-data , kaya kailangan nating mag-isyu ng sumusunod na utos:

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

5. I-configure ang Nginx

Sa ngayon, dapat na mayroon kang Nginx na may sertipiko ng SSL na naka-install sa iyong system, kung hindi suriin ang mga kinakailangan para sa tutorial na ito.

Upang lumikha ng isang bagong block ng server para sa aming bagong proyekto ng Drupal gagamitin namin ang recipe ng Nginx mula sa opisyal na site ng Nginx.

Buksan ang iyong text editor at lumikha ng sumusunod na file:

sudo nano /etc/nginx/sites-available/example.com /etc/nginx/site-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; } } Huwag kalimutang palitan ang halimbawa.com sa iyong Drupal domain at itakda ang tamang landas sa mga file ng sertipiko ng SSL. Ang lahat ng mga kahilingan sa HTTP ay mai-redirect sa HTTPS. Ang mga snippet na ginamit sa pagsasaayos na ito ay nilikha sa gabay na ito.

Paganahin ang block ng server sa pamamagitan ng paglikha ng isang simbolikong link sa direktoryo na sites-enabled ng mga sites-enabled :

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

Bago i-restart ang serbisyo ng Nginx gumawa ng isang pagsubok upang matiyak na walang mga syntax error:

sudo nginx -t

Kung walang mga error ang output ay dapat magmukhang ganito:

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

Sa wakas, i-restart ang serbisyo ng Nginx sa pamamagitan ng pag-type:

sudo systemctl restart nginx

6. Subukan ang Pag-install

Buksan ang iyong browser, i-type ang iyong domain at ipagpalagay na matagumpay ang pag-install, lilitaw ang isang screen na katulad ng sumusunod:

Maaari kang mag-log in bilang isang admin at simulan ang pagpapasadya ng iyong bagong pag-install ng Drupal.

7. I-install ang mga module ng Drupal at mga tema

Ngayon na mayroon kang naka-install na proyekto ng Drupal, nais mong mag-install ng ilang mga module at tema. Ang mga module at tema ng Drupal ay nai-host sa isang pasadyang tagabalot ng kompositor, na ang mga drupal-project na nag-configure para sa amin sa labas ng kahon.

Upang mag-install ng isang module o isang tema, ang kailangan mo lang gawin ay ang cd sa direktoryo ng proyekto at ang composer require drupal/module_or_theme_name uri ay composer require drupal/module_or_theme_name . Halimbawa, kung nais nating mai-install ang module na Pathauto, kailangan nating patakbuhin ang sumusunod na utos:

cd /var/www/my_drupal sudo -u www-data composer require drupal/pathauto Sa pamamagitan ng paghahanda ng sudo -u www-data tumatakbo kami sa utos bilang gumagamit ng 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

Tulad ng nakikita mo mula sa output sa itaas ng kompositor ay mai-install din ang lahat ng mga dependency sa pakete para sa amin.

8. I-update ang Drupal core

Bago i-upgrade ito ay palaging magandang ideya na kumuha ng isang backup ng iyong mga file at database. Maaari mo ring gamitin ang module ng Backup at Migrate o mano-mano ang pag-backup sa iyong database at mga file.

Upang i-back up ang mga file ng pag-install maaari mong gamitin ang sumusunod na utos ng rsync, siyempre, kakailanganin mong gamitin ang tamang landas sa direktoryo ng pag-install.

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

Upang i-back up ang database maaari naming gamitin ang karaniwang mysqldump utos:

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

o drush sql-dump :

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

Ngayon na nilikha namin ang isang backup maaari naming magpatuloy at i-update ang lahat ng mga Drupal core file sa pamamagitan ng pagpapatakbo ng sumusunod na utos:

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

Konklusyon

Binabati kita, matagumpay mong na-install ang Drupal 8 gamit ang kompositor at natutunan kung paano mag-install ng mga module at tema. Maaari mo na ngayong simulan ang pagpapasadya ng iyong site. Ang Gabay sa Drupal 8 Gumagamit ay isang mahusay na lugar ng pagsisimula upang malaman ang higit pa tungkol sa kung paano pamahalaan ang iyong pag-install ng Drupal. Dapat mo ring bisitahin ang proyekto ng Drupal Composer template sa Github.

ubuntu drupal mysql mariadb cms nginx composer