Android

วิธีการติดตั้ง drupal บน CentOS 7

Drupal 8 Installation on localhost (with all errors) in Hindi / Urdu

Drupal 8 Installation on localhost (with all errors) in Hindi / Urdu

สารบัญ:

Anonim

Drupal เป็นหนึ่งในแพลตฟอร์ม CMS โอเพนซอร์สชั้นนำทั่วโลก มีความยืดหยุ่นปรับขนาดได้และสามารถใช้ในการสร้างเว็บไซต์ประเภทต่างๆตั้งแต่บล็อกส่วนตัวเล็ก ๆ ไปจนถึงเว็บไซต์องค์กรการเมืองและรัฐบาลขนาดใหญ่

ในบทช่วยสอนนี้เราจะอธิบายวิธีติดตั้ง Drupal 8.6 บน CentOS 7

มีหลายวิธีในการติดตั้ง Drupal คู่มือนี้ครอบคลุมขั้นตอนที่จำเป็นสำหรับการติดตั้ง Drupal โดยใช้เทมเพลตผู้แต่งสำหรับโครงการ Drupal ที่เรียกว่า drupal-project

เราจะใช้ Nginx เป็นเว็บเซิร์ฟเวอร์ PHP 7.2 และ MySQL / MariaDB ล่าสุดเป็นเซิร์ฟเวอร์ฐานข้อมูล

ข้อกำหนดเบื้องต้น

ก่อนที่คุณจะเริ่มการติดตั้งตรวจสอบให้แน่ใจว่าคุณได้ทำตามข้อกำหนดเบื้องต้นต่อไปนี้:

  • มีชื่อโดเมนที่ชี้ไปที่ IP เซิร์ฟเวอร์สาธารณะของคุณ เราจะใช้ example.com มี Nginx ติดตั้งมีใบรับรอง SSL ที่ติดตั้งสำหรับโดเมนของคุณ คุณสามารถติดตั้งใบรับรอง Let's Encrypt SSL ได้ฟรีโดยทำตามคำแนะนำเหล่านี้เข้าสู่ระบบในฐานะผู้ใช้ที่มีสิทธิ์ sudo

สร้างฐานข้อมูล MySQL

ขั้นตอนแรกคือการสร้างฐานข้อมูลและบัญชีผู้ใช้ใหม่และให้สิทธิ์ที่เหมาะสมแก่ผู้ใช้

หาก MySQL หรือ MariaDB ติดตั้งอยู่แล้วบนเซิร์ฟเวอร์ของคุณคุณสามารถข้ามขั้นตอนนี้ได้หากไม่ใช่คุณสามารถติดตั้งแพ็คเกจเซิร์ฟเวอร์ MariaDB 5.5 จากที่เก็บข้อมูลเริ่มต้นของ CentOS ได้โดยพิมพ์:

sudo yum install mariadb-server สำหรับการติดตั้ง MariaDB / MySQL ใหม่แนะนำให้รันคำสั่ง mysql_secure_installation เพื่อปรับปรุงความปลอดภัยของเซิร์ฟเวอร์ฐานข้อมูลของคุณ

เข้าสู่ระบบไปยังเปลือก MySQL โดยพิมพ์คำสั่งต่อไปนี้และป้อนรหัสผ่านเมื่อได้รับแจ้ง:

mysql -u root -p

ในการสร้างฐานข้อมูลชื่อ drupal ผู้ใช้ชื่อ drupaluser และเพื่อให้สิทธิ์ที่จำเป็นแก่ผู้ใช้ให้รันคำสั่งต่อไปนี้:

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

ติดตั้ง PHP

CentOS 7 มาพร้อมกับ PHP เวอร์ชั่น 5.4 ซึ่งล้าสมัยและไม่รองรับอีกต่อไป รุ่น PHP ที่แนะนำสำหรับ Drupal คือ PHP 7.2

ในการติดตั้ง PHP 7.2 บน CentOS 7 ก่อนอื่นเราต้องเปิดใช้งานที่เก็บ EPEL และ Remi:

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

เมื่อที่เก็บถูกเปิดใช้งานเพื่อติดตั้ง PHP 7.2 และส่วนขยาย PHP ที่จำเป็นทั้งหมดแล้วให้รันคำสั่งต่อไปนี้

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

เราติดตั้ง PHP FPM เพราะเราจะใช้ Nginx เป็นเว็บเซิร์ฟเวอร์

โดยค่าเริ่มต้น PHP FPM จะทำงานเป็น apache ผู้ใช้บนพอร์ต 9000 เราจะเปลี่ยนผู้ใช้เป็น nginx และเปลี่ยนจาก TCP socket เป็น Unix socket โดยเปิดไฟล์ /etc/php-fpm.d/www.conf และแก้ไขบรรทัดที่เน้นสีเหลือง:

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

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

ตรวจสอบให้แน่ใจว่า /var/lib/php มีความเป็นเจ้าของที่ถูกต้องโดยใช้คำสั่ง chown ต่อไปนี้:

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

สุดท้ายเปิดใช้งานและเริ่มบริการ PHP FPM:

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

ติดตั้งนักแต่งเพลง

นักแต่งเพลงเป็นผู้จัดการการพึ่งพาสำหรับ PHP เราจะดาวน์โหลดเทมเพลต Drupal และติดตั้งส่วนประกอบที่จำเป็นทั้งหมดของ Drupal ด้วยนักแต่งเพลง

คำสั่งต่อไปนี้จะติดตั้งผู้แต่งทั่วโลกโดยการดาวน์โหลดตัวติดตั้งนักแต่งเพลงด้วย curl และย้ายไฟล์ไปยัง /usr/local/bin :

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

ตรวจสอบการติดตั้งโดยใช้คำสั่งต่อไปนี้ซึ่งจะพิมพ์เวอร์ชั่นผู้แต่ง:

composer --version

ผลลัพธ์ควรมีลักษณะดังนี้:

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

ติดตั้ง Drupal

ตอนนี้ผู้แต่งได้รับการติดตั้งแล้วให้สร้างโครงการ Drupal ใหม่โดยใช้เทมเพลต Drupal ภายในไดเรกทอรี /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

คำสั่งด้านบนจะดาวน์โหลดเทมเพลตดึงแพ็คเกจ php ที่จำเป็นทั้งหมดและเรียกใช้สคริปต์ที่จำเป็นเพื่อเตรียมโครงการสำหรับการติดตั้ง กระบวนการอาจใช้เวลาสักครู่และหากประสบความสำเร็จจุดสิ้นสุดของเอาต์พุตจะมีลักษณะดังนี้:

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

ขั้นตอนต่อไปคือการติดตั้ง Drupal โดยใช้ Drush ในคำสั่งด้านล่างเราจะส่งฐานข้อมูล MySQL และข้อมูลผู้ใช้ที่เราสร้างในส่วนแรก:

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

โปรแกรมติดตั้งจะแจ้งให้คุณพร้อมข้อความต่อไปนี้เพียงแค่กด Enter เพื่อดำเนินการต่อ

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

เมื่อการติดตั้งเสร็จสิ้นสคริปต์จะพิมพ์ชื่อผู้ใช้และรหัสผ่านของผู้ดูแลระบบ ผลลัพธ์ควรมีลักษณะดังนี้:

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

สุดท้ายตั้งค่าสิทธิ์ที่ถูกต้องเพื่อให้เว็บเซิร์ฟเวอร์สามารถเข้าถึงไฟล์และไดเรกทอรีของเว็บไซต์ได้อย่างสมบูรณ์:

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

กำหนดค่า Nginx

ถึงตอนนี้คุณควรมี Nginx พร้อมติดตั้งใบรับรอง SSL บนระบบของคุณแล้วหากไม่ได้ตรวจสอบข้อกำหนดเบื้องต้นสำหรับบทช่วยสอนนี้

เพื่อสร้างบล็อกเซิร์ฟเวอร์ใหม่สำหรับโครงการ Drupal ใหม่ของเราเราจะใช้สูตร Nginx จากเว็บไซต์ Nginx อย่างเป็นทางการ

เปิดโปรแกรมแก้ไขข้อความของคุณและสร้างไฟล์ต่อไปนี้:

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; } } อย่าลืมแทนที่ example.com ด้วยโดเมน Drupal ของคุณและกำหนดเส้นทางที่ถูกต้องไปยังไฟล์ใบรับรอง SSL คำขอ HTTP ทั้งหมดจะถูกเปลี่ยนเส้นทางไปยัง HTTPS ตัวอย่างข้อมูลที่ใช้ในการกำหนดค่านี้สร้างขึ้นในคู่มือนี้

ก่อนที่จะเริ่มบริการ Nginx ทำการทดสอบเพื่อให้แน่ใจว่าไม่มีข้อผิดพลาดทางไวยากรณ์:

sudo nginx -t

รีสตาร์ทเซอร์วิส Nginx เพื่อให้การเปลี่ยนแปลงมีผลโดยพิมพ์:

sudo systemctl restart nginx

ทดสอบการติดตั้ง

เปิดเบราว์เซอร์ของคุณพิมพ์โดเมนของคุณและสมมติว่าการติดตั้งสำเร็จแล้วหน้าจอคล้ายกับที่ปรากฏต่อไปนี้จะปรากฏขึ้น:

คุณสามารถเข้าสู่ระบบในฐานะผู้ดูแลระบบและเริ่มปรับแต่งการติดตั้ง Drupal ใหม่ของคุณ

ติดตั้งโมดูลและธีมของ Drupal

ตอนนี้คุณได้ติดตั้งโครงการ Drupal แล้วคุณจะต้องติดตั้งโมดูลและธีม โมดูลและธีมของ Drupal นั้นโฮสต์อยู่บนพื้นที่เก็บข้อมูลของนักแต่งเพลงที่กำหนดเองซึ่งการกำหนดค่าโครงการ drupal สำหรับเรานั้นไม่อยู่ในกรอบ

ในการติดตั้งโมดูลหรือชุดรูปแบบสิ่งที่คุณต้องทำก็คือทำได composer require drupal/module_or_theme_name ในโปรเจ็กต์ของโครงการ ตัวอย่างเช่นถ้าเราต้องการติดตั้งโมดูล Pathauto เราจำเป็นต้องเรียกใช้คำสั่งต่อไปนี้:

cd /var/www/my_drupal sudo -u nginx /usr/local/bin/composer require drupal/pathauto โดยการเติม sudo -u nginx เรากำลังเรียกใช้คำสั่งในฐานะผู้ใช้ 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

ดังที่คุณเห็นจากผลลัพธ์ด้านบนผู้แต่งยังติดตั้งการขึ้นต่อกันของแพ็คเกจทั้งหมดสำหรับเรา

อัพเดท Drupal Core

ก่อนที่จะอัปเกรดเป็นความคิดที่ดีที่จะสำรองข้อมูลไฟล์และฐานข้อมูลของคุณ คุณสามารถใช้โมดูลสำรองข้อมูลและย้ายข้อมูลหรือสำรองฐานข้อมูลและไฟล์ของคุณด้วยตนเอง

ในการสำรองไฟล์การติดตั้งคุณสามารถใช้คำสั่ง rsync ต่อไปนี้แน่นอนคุณจะต้องใช้พา ธ ที่ถูกต้องไปยังไดเรกทอรีการติดตั้ง:

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

ในการสำรองฐานข้อมูลเราสามารถใช้คำสั่ง mysqldump มาตรฐาน:

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

หรือ drush sql-dump :

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

ตอนนี้เราได้สร้างการสำรองข้อมูลแล้วเราสามารถดำเนินการต่อและอัปเดตไฟล์หลักทั้งหมดของ Drupal ได้ด้วยการรันคำสั่งต่อไปนี้:

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

ข้อสรุป

ยินดีด้วยคุณติดตั้ง Drupal 8 สำเร็จแล้วโดยใช้ผู้แต่งและเรียนรู้วิธีการติดตั้งโมดูลและธีม ตอนนี้คุณสามารถเริ่มต้นปรับแต่งเว็บไซต์ของคุณ คู่มือผู้ใช้ Drupal 8 เป็นจุดเริ่มต้นที่ดีในการเรียนรู้เพิ่มเติมเกี่ยวกับวิธีจัดการการติดตั้ง Drupal ของคุณ นอกจากนี้อย่าลืมเยี่ยมชมโครงการเทมเพลต Drupal Composer ใน Github

centos drupal mysql mariadb cms nginx นักแต่งเพลง