How to install Drupal 8 on nginx and ssl using php-fpm on Ubuntu 16.04
สารบัญ:
- ข้อกำหนดเบื้องต้น
- ก่อนที่จะเริ่ม
- 1. สร้างฐานข้อมูล MySQL
- 2. ติดตั้ง PHP
- 3. ติดตั้ง Composer
- 4. ติดตั้ง Drupal
- 5. กำหนดค่า Nginx
- 6. ทดสอบการติดตั้ง
- 7. ติดตั้งโมดูลและธีม Drupal
- 8. อัปเดตคอร์ Drupal
- ข้อสรุป
Drupal เป็นหนึ่งในแพลตฟอร์ม CMS โอเพ่นซอร์สยอดนิยมทั่วโลก มันเขียนใน PHP และสามารถใช้ในการสร้างเว็บไซต์ประเภทต่างๆตั้งแต่บล็อกส่วนตัวเล็ก ๆ ไปจนถึงเว็บไซต์องค์กรการเมืองและรัฐบาลขนาดใหญ่
ในบทช่วยสอนนี้เราจะแสดงวิธีการติดตั้ง Drupal 8.6 บนเครื่อง Ubuntu 18.04 มีหลายวิธีในการติดตั้ง Drupal บทช่วยสอนนี้ครอบคลุมขั้นตอนที่จำเป็นสำหรับการติดตั้ง Drupal 8.6 โดยใช้เทมเพลตผู้แต่งสำหรับโครงการ Drupal ที่เรียกว่า drupal-project
เราจะใช้ Nginx เป็นเว็บเซิร์ฟเวอร์ PHP 7.2 และ MySQL / MariaDB ล่าสุดเป็นเซิร์ฟเวอร์ฐานข้อมูล
ข้อกำหนดเบื้องต้น
ตรวจสอบให้แน่ใจว่าคุณได้ทำตามข้อกำหนดเบื้องต้นต่อไปนี้ก่อนที่จะดำเนินการกับบทช่วยสอนนี้:
- คุณมีชื่อโดเมนที่ชี้ไปที่ IP เซิร์ฟเวอร์สาธารณะของคุณ เราจะใช้
example.com
คุณมี Nginx ติดตั้งโดยทำตามคำแนะนำเหล่านี้คุณมีใบรับรอง SSL ติดตั้งสำหรับโดเมนของคุณ คุณสามารถติดตั้งใบรับรอง Let's Encrypt SSL ฟรีโดยทำตามคำแนะนำเหล่านี้
ก่อนที่จะเริ่ม
อัพเดตดัชนีแพ็กเกจและแพ็กเกจระบบเป็นเวอร์ชันล่าสุด:
sudo apt update && sudo apt upgrade
1. สร้างฐานข้อมูล MySQL
sudo apt install mysql-server
สำหรับการติดตั้ง MySQL ใหม่แนะนำให้รันคำสั่ง
mysql_secure_installation
เพื่อปรับปรุงความปลอดภัยของเซิร์ฟเวอร์ MySQL ของคุณ
ตอนนี้เราต้องเข้าสู่ระบบ MySQL shell และสร้างฐานข้อมูลและบัญชีผู้ใช้ใหม่และให้สิทธิ์การอนุญาตที่เหมาะสมแก่ผู้ใช้
ในการล็อกอินเข้าสู่ MySQL shell ให้พิมพ์คำสั่งต่อไปนี้แล้วป้อนรหัสผ่านเมื่อได้รับแจ้ง:
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';
2. ติดตั้ง PHP
PHP 7.2 ซึ่งเป็นเวอร์ชัน PHP เริ่มต้นใน Ubuntu 18.04 ได้รับการสนับสนุนอย่างสมบูรณ์และแนะนำสำหรับ Drupal 8.6 เนื่องจากเราจะใช้ Nginx เป็นเว็บเซิร์ฟเวอร์เราจะติดตั้ง PHP-FPM ด้วย
ในการติดตั้งโมดูล PHP ที่จำเป็นทั้งหมดให้รันคำสั่งต่อไปนี้:
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 จะเริ่มต้นโดยอัตโนมัติหลังจากกระบวนการติดตั้งเสร็จสมบูรณ์คุณสามารถตรวจสอบได้โดยพิมพ์สถานะบริการ:
systemctl status php7.2-fpm
ผลลัพธ์ควรระบุว่าบริการ fpm นั้นทำงานและทำงานอยู่
● 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. ติดตั้ง Composer
นักแต่งเพลงเป็นผู้จัดการการพึ่งพาสำหรับ 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.6.5 2018-05-04 11:44:59
4. ติดตั้ง Drupal
ตอนนี้เราได้ติดตั้งผู้แต่งเราสามารถดำเนินการและสร้างโครงการ Drupal ใหม่โดยใช้เทมเพลตผู้แต่งภายในไดเรกทอรี
/var/www/my_drupal
:
sudo 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 และข้อมูลผู้ใช้ที่สร้างในขั้นตอนที่ 1:
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. Consider using the --notify global option. Installation complete. User name: admin User password: XRkC9Q5WN9
สุดท้ายเราต้องตั้งค่าการอนุญาตที่ถูกต้องเพื่อให้เว็บเซิร์ฟเวอร์สามารถเข้าถึงไฟล์และไดเรกทอรีของเว็บไซต์ได้อย่างสมบูรณ์ ทั้ง Nginx และ PHP ทำงานในฐานะผู้ใช้
www-data
กลุ่ม
www-data
ดังนั้นเราจำเป็นต้องใช้คำสั่งต่อไปนี้:
sudo chown -R www-data: /var/www/my_drupal
5. กำหนดค่า Nginx
ถึงตอนนี้คุณควรมี Nginx พร้อมติดตั้งใบรับรอง SSL บนระบบของคุณแล้วหากไม่ได้ตรวจสอบข้อกำหนดเบื้องต้นสำหรับบทช่วยสอนนี้
เพื่อสร้างบล็อกเซิร์ฟเวอร์ใหม่สำหรับโครงการ Drupal ใหม่ของเราเราจะใช้สูตร Nginx จากเว็บไซต์ Nginx อย่างเป็นทางการ
เปิดโปรแกรมแก้ไขข้อความของคุณและสร้างไฟล์ต่อไปนี้:
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; } }
อย่าลืมแทนที่ example.com ด้วยโดเมน Drupal ของคุณและกำหนดเส้นทางที่ถูกต้องไปยังไฟล์ใบรับรอง SSL คำขอ HTTP ทั้งหมดจะถูกเปลี่ยนเส้นทางไปยัง HTTPS ตัวอย่างข้อมูลที่ใช้ในการกำหนดค่านี้สร้างขึ้นในคู่มือนี้
เปิดใช้งานเซิร์ฟเวอร์บล็อกโดยสร้างลิงก์สัญลักษณ์ไปยังไดเรกทอรีที่
sites-enabled
:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
ก่อนที่จะเริ่มบริการ Nginx ทำการทดสอบเพื่อให้แน่ใจว่าไม่มีข้อผิดพลาดทางไวยากรณ์:
sudo nginx -t
หากไม่มีข้อผิดพลาดเอาต์พุตควรมีลักษณะดังนี้:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
สุดท้ายให้เริ่มบริการ Nginx อีกครั้งโดยพิมพ์:
6. ทดสอบการติดตั้ง
เปิดเบราว์เซอร์ของคุณพิมพ์โดเมนของคุณและสมมติว่าการติดตั้งสำเร็จหน้าจอคล้ายกับที่ปรากฏต่อไปนี้จะปรากฏขึ้น
คุณสามารถเข้าสู่ระบบในฐานะผู้ดูแลระบบและเริ่มปรับแต่งการติดตั้ง Drupal ใหม่ของคุณ
7. ติดตั้งโมดูลและธีม Drupal
ตอนนี้คุณได้ติดตั้งโครงการ Drupal แล้วคุณจะต้องติดตั้งโมดูลและธีม โมดูลและธีมของ Drupal นั้นโฮสต์อยู่บนพื้นที่เก็บข้อมูลของนักแต่งเพลงที่กำหนดเองซึ่ง drupal-project ได้กำหนดค่าให้กับเรา
ในการติดตั้งโมดูลหรือชุดรูปแบบสิ่งที่คุณต้องทำก็คือทำได
composer require drupal/module_or_theme_name
ไปยังได
composer require drupal/module_or_theme_name
โปรเจ็กต์และ
composer require drupal/module_or_theme_name
ประเภท
composer require drupal/module_or_theme_name
ตัวอย่างเช่นถ้าเราต้องการติดตั้งโมดูล Pathauto เราจำเป็นต้องเรียกใช้คำสั่งต่อไปนี้:
cd /var/www/my_drupal
sudo -u www-data composer require drupal/pathauto
ด้วยการเพิ่ม
sudo -u www-data
เรากำลังเรียกใช้คำสั่งในฐานะผู้ใช้
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
ดังที่คุณเห็นจากผลลัพธ์ด้านบนผู้แต่งยังติดตั้งการขึ้นต่อกันของแพ็คเกจทั้งหมดสำหรับเรา
8. อัปเดตคอร์ Drupal
ก่อนที่จะอัปเกรดเป็นความคิดที่ดีที่จะสำรองข้อมูลไฟล์และฐานข้อมูลของคุณ คุณสามารถใช้โมดูลสำรองข้อมูลและย้ายข้อมูลหรือสำรองฐานข้อมูลและไฟล์ของคุณด้วยตนเอง
ในการสำรองไฟล์การติดตั้งคุณสามารถใช้คำสั่ง 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 www-data composer update drupal/core webflo/drupal-core-require-dev symfony/* --with-dependencies
ข้อสรุป
ขอแสดงความยินดีคุณติดตั้ง Drupal 8 สำเร็จแล้วโดยใช้ผู้แต่งและเรียนรู้วิธีการติดตั้งโมดูลและธีม ตอนนี้คุณสามารถเริ่มต้นปรับแต่งเว็บไซต์ของคุณ คู่มือผู้ใช้ Drupal 8 เป็นจุดเริ่มต้นที่ดีในการเรียนรู้เพิ่มเติมเกี่ยวกับวิธีจัดการการติดตั้ง Drupal ของคุณ คุณควรเยี่ยมชมโปรเจ็กต์ Drupal Composer ใน Github
อูบุนตู drupal mysql mariadb cms nginx นักแต่งเพลงMicrosoft Tweaks Ad หลังจากที่ Apple บ่น

เรื่องราว "Laptop Hunter" ยังคงมีน้อยลงเล็กน้อย Apple-bashing
วิธีการติดตั้ง android studio บน Ubuntu 18.04

Android Studio เป็น IDE ข้ามแพลตฟอร์มที่มีคุณสมบัติครบถ้วนที่ช่วยให้คุณสร้างแอปพลิเคชันบนอุปกรณ์ Android ทุกประเภท บทช่วยสอนนี้อธิบายวิธีการติดตั้ง Android Studio บน Ubuntu 18.04
วิธีการติดตั้ง drupal บน CentOS 7

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