Cách triển khai Ghost Blog với Nginx trên Ubuntu 18.04 LTS

theanh

Administrator
Nhân viên
Ghostlà một nền tảng viết blognguồn mở hoàn toàn(giấy phép MIT),đang ngày càng phổ biến trong số các nhà phát triển và người dùng thông thường kể từ khi phát hành năm 2013.Mã nguồn Ghost được công khai trên GitHub.Ghost thường chiếm khoảng ~300MB RAM để chạy tốt, do đó, nó có thể chạy trên phần cứng khiêm tốn. Nó tập trung vào nội dungviết blog. Điểm hấp dẫn nhất về Ghost là thiết kế đơn giản, sạch sẽ, thanh lịch và đáp ứng. Bạn có thể viết bài đăng trên blog của mình từ điện thoại di động. Nội dung cho Ghost được viết và định dạng bằng ngôn ngữ Markdown.Ghost hoàn toàn phù hợp với các cá nhân hoặc nhóm nhỏ người viết. Ghost cũng có hỗ trợ tích hợp cho dự án Accelerated Mobile Pages (AMP), giúp tải blog của bạn cực nhanh trên điện thoại di động.

Gần đây, các nhà phát triển Ghost đã phát hànhbản phát hành ổn định chính đầu tiên của Ghost - 1.0.0. Ghost 1.0.0 đã giới thiệu nhiều tính năng mới và đáng chú ý nhất trong số đó là:trình chỉnh sửa Markdown hoàn toàn mới,giao diện người dùng (UI) được làm mới,thiết kế chủ đề mặc định mới, quy trình cài đặt và cập nhật mới vàđược cải thiện với công cụ Ghost-CLI.




Trong hướng dẫn này, chúng ta sẽ thiết lập và triển khai một blog Ghost an toàn với sự trợ giúp của công cụ Ghost-CLI của Ghost trên máy chủ Ubuntu 18.04 LTSbằng cách sử dụng Let's Encrypt, Acme.sh, Node.js, npm, Yarn, NGINXMySQL/MariaDB.

Yêu cầu​

  • Tên miền. Hướng dẫn này sẽ sử dụng tên miền example.com.
  • Một máy chủ chạy Ubuntu 18.04 LTS với 1GB RAM.
  • Một người dùng không phải root có quyền sudo.

Các bước ban đầu​

Kiểm tra phiên bản Ubuntu của bạn:
Mã:
lsb_release -ds 
# Ubuntu 18.04 LTS
Thiết lập múi giờ:
Mã:
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Cập nhật các gói hệ điều hành của bạn:
Mã:
sudo apt update && sudo apt upgrade -y
Cài đặt gói build-essential:
Mã:
sudo apt install -y build-essential

Bước 1 - Cài đặt Node.js và npm​

LƯU Ý: Ghost 1.0.0 mới nhất hiện chỉ hỗ trợ các phiên bản Node.js8.9+6.9+.

Ghost được xây dựng trênNode.js. Chúng tôi sẽ cài đặt phiên bảnđược khuyến nghịcho Ghost làv8 Carbon LTS
tại thời điểm viết hướng dẫn này. Trên Linux, bạn có một số tùy chọn cài đặt: Linux Binaries (x86/x64), Source Code hoặc thông qua Package Managers. Chúng tôi sẽ sử dụng phương pháp Package Manager bằng cách sử dụng kho lưu trữ Nodesource.

Tải xuống và cài đặt phiên bản (bản phát hành) Hỗ trợ dài hạn (LTS) mới nhất của Node.js:
Mã:
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt install -y nodejs
LƯU Ý: npm được phân phối cùng với Node.js - điều này có nghĩa là khi bạn tải xuống Node.js, bạn sẽ tự động cài đặt npm trên máy tính của mình.

Kiểm tra phiên bản Node.js và npm:
Mã:
node -v && npm -v
# v8.11.2
# 5.6.0
Npm là một dự án riêng biệt với Node.js và có xu hướng cập nhật thường xuyên hơn. Do đó, ngay cả khi bạn vừa tải xuống Node.js (và do đó là npm), bạn có thể sẽ cần cập nhật npm của mình. May mắn thay, npm biết cách tự cập nhật! Để cập nhật npm của bạn, hãy nhập lệnh này vào thiết bị đầu cuối của bạn:
Mã:
sudo npm install -g npm@latest
Kiểm tra lại phiên bản npm, đó phải là phiên bản mới nhất:
Mã:
npm -v
# 6.1.0

Bước 2 - Cài đặt máy chủ MariaDB​

Ghost hỗ trợ cơ sở dữ liệuMySQL/MariaDB vàSQLite. Tuy nhiên, trong hướng dẫn này, chúng ta sẽ sử dụng cơ sở dữ liệu MariaDB. Nếu bạn thích, bạn có thể sử dụng MySQL thay vì MariaDB.

Tải xuống và cài đặt phiên bản ổn định mới nhất của máy chủ MariaDB từ kho lưu trữ MariaDB trên máy của bạn:
Mã:
sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64] https://mirrors.nxthost.com/mariadb/repo/10.3/ubuntu bionic main'
sudo apt update
sudo apt install -y mariadb-server
Trong quá trình cài đặt MariaDB, bạn sẽ được nhắc nhập mật khẩu người dùng root của MariaDB. Bạn nên nhập mật khẩu mạnh.



Kiểm tra phiên bản MariaDB:
Mã:
mysql --version && sudo mysqld --version
#mysql Ver 15.1 Distrib 10.3.7-MariaDB, dành cho debian-linux-gnu (x86_64) bằng readline 5.2
#mysqld Ver 10.3.7-MariaDB-1:10.3.7+maria~bionic-log dành cho debian-linux-gnu trên x86_64 (bản phân phối nhị phân mariadb.org)
Kiểm tra xem daemon MariaDB đã khởi động và đang chạy chưa:
Mã:
sudo systemctl status mysql.service
sudo systemctl is-enabled mysql.service
Chạy tiện ích mysql_secure_installation (tập lệnh) để cải thiện tính bảo mật cho cài đặt MariaDB của bạn:
Mã:
sudo mysql_secure_installation


#Nhập mật khẩu hiện tại cho root (nhập nếu không nhập):

#Đổi mật khẩu root? [C/N] K
#Xóa người dùng ẩn danh? [C/N] K
#Không cho phép root đăng nhập từ xa? [C/N] K
#Xóa cơ sở dữ liệu thử nghiệm và quyền truy cập vào cơ sở dữ liệu đó? [C/N] K
#Tải lại bảng đặc quyền ngay bây giờ? [C/N] K
# Thành công.

#Xong! Nếu bạn đã hoàn tất tất cả các bước trên, thì việc cài đặt MariaDB của bạn hiện đã an toàn.

#Cảm ơn bạn đã sử dụng MariaDB!
Đăng nhập (kết nối) vào dòng lệnh MariaDB với tư cách là người dùng root MariaDB:
Mã:
mysql -u root -p
Tạo cơ sở dữ liệu MariaDB và người dùng mới để cài đặt Ghost. Bước này là tùy chọn, vì công cụ Ghost-CLI ở bước sau có thể tạo cơ sở dữ liệu cho bạn, bạn chỉ cần nhập thông tin xác thực người dùng gốc MariaDB (tên người dùng & mật khẩu) khi được Ghost-CLI yêu cầu trong quá trình cài đặt Ghost:
Mã:
mysql> CREATE DATABASE dbname;
mysql> CREATE USER 'username'@'localhost' ĐƯỢC XÁC ĐỊNH BỞI 'password';
mysql> GRANT ALL ON dbname.* TO 'username'@'localhost';
mysql> FLUSH PRIVILEGES;
Thoát (ngắt kết nối) khỏi MariaDB:
Mã:
mysql>EXIT;

Bước 3 - Cài đặt NGINX​

NGINX(engine-x) là máy chủ web hiệu suất cao, bộ cân bằng tải, bộ đệm và máy chủ proxy hoạt động tốt trong mọi môi trường: Bare Metal, Đám mây công cộng/riêng tư/lai và Container. NGINX sẽ được sử dụng làm proxy ngược cho ứng dụng Ghost của chúng tôi.

NGINX có thể được cài đặt khác nhau, tùy thuộc vào hệ điều hành. Đối vớiLinux, có thể sử dụng các gói NGINX từnginx.org.

Tải xuống và cài đặt bản phát hành mainline mới nhất (được khuyến nghị cho hầu hết các lần triển khai) của NGINX và các mô-đun có thể tải động trực tiếp từkho lưu trữ NGINX chính thức:

Mã:
wget https://nginx.org/keys/nginx_signing.key[URL=https://nginx.org/keys/nginx_signing.key?utm_source=diendancongnghe.com]
[/URL]sudo apt-key add nginx_signing.key
rm nginx_signing.key
sudo -s
printf "deb https://nginx.org/packages/mainline/ubuntu/ $(lsb_release -sc) nginx\ndeb-src https://nginx.org/packages/mainline/ubuntu/ $(lsb_release -sc) nginx\n" >> /etc/apt/sources.list.d/nginx_mainline.list
exit
sudo apt update
sudo apt install -y nginx nginx-module-geoip nginx-module-image-filter nginx-module-njs nginx-module-perl nginx-module-xslt
Xác minh rằng NGINX đã được cài đặt bằng cách kiểm tra phiên bản của nó:
Mã:
sudo nginx -v && sudo nginx -V
# phiên bản nginx: nginx/1.15.0
# phiên bản nginx: nginx/1.15.0
Khởi động và kích hoạt NGINX:
Mã:
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
Tạo các thư mục /etc/nginx/snippets, /etc/nginx/ssl, /etc/nginx/sites-available/etc/nginx/sites-enabled. Các thư mục này cần thiết để công cụ Ghost-CLI hoạt động chính xác:
Mã:
sudo mkdir -p /etc/nginx/{snippets,ssl,sites-available,sites-enabled}
Thêm vào include /etc/nginx/sites-enabled/*.conf; directiveto nginx.conf file, chạy:
Mã:
sudo vim /etc/nginx/nginx.conf


Lưu file và thoát khỏi trình soạn thảo Vim.

Bước 4 - Cài đặt Yarn (tùy chọn)​

Tải xuống và cài đặt trình quản lý góiYarn trên hệ thống của bạn:
Mã:
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update && sudo apt install -y yarn
Kiểm tra phiên bản Yarn:
Mã:
yarn --version
# 1.7.0

Bước 5 - Cài đặt Ghost-CLI​

Ghost-CLIlà một công cụ giao diện dòng lệnh (CLI) giúp cài đặt và cập nhật Ghost dễ dàng. Công cụ này thiết lập cơ sở dữ liệu, cấu hình NGINX làm proxy ngược, kích hoạt bảo mật TLS/SSL bằng Let’s Encrypt CA, tự động gia hạn SSL của bạn và khởi tạo Ghost thành dịch vụ systemd. Ghost-CLI là một mô-đun npm có thể được cài đặt thông qua npm hoặc yarn.

Tải xuống và cài đặt công cụ Ghost-CLI:
Mã:
sudo npm install -g ghost-cli@latest
# hoặc với Yarn
sudo yarn global add ghost-cli@latest
Kiểm tra phiên bảnGhost-CLI:
Mã:
ghost version
# Phiên bản Ghost-CLI: 1.8.1
Khắc phục sự cố hệ thống để tìm bất kỳ sự cố tiềm ẩn nào khi cài đặt hoặc cập nhật Ghost:
Mã:
ghost doctor install

Bước 6 - Cài đặt Ghost​

Tiếp theo, chúng ta sẽ cài đặt Ghost bằng công cụ Ghost-CLI.

Đầu tiên, hãy tạo thư mục gốc tài liệu trống:
Mã:
sudo mkdir -p /var/www/example.com
Thay đổi quyền sở hữu thư mục /var/www/example.com thành người dùng không phải root với sudoquyền mà bạn đã tạo. Trong ví dụ này, johndoe:
Mã:
sudo chown johndoe:johndoe /var/www/example.com
Thư mục cài đặt của bạn phải có đúng quyền:
Mã:
sudo chmod 755 /var/www/example.com
Điều hướng đến thư mục gốc Ghost:
Mã:
cd /var/www/example.com
Đảm bảo rằng thư mục trống để tránh xung đột tệp:
Mã:
ls -a
Cài đặt Ghost ở chế độ sản xuất bằng cách chạy:
Mã:
ghost cài đặt
Trả lời từng câu hỏi như được nhắc:
Mã:
? Nhập URL blog của bạn: https://example.com? Nhập tên máy chủ MySQL của bạn: localhost? Nhập tên người dùng MySQL của bạn: root? Nhập mật khẩu MySQL của bạn: your_mysql_root_user_password_here? Nhập tên cơ sở dữ liệu Ghost của bạn: database_name_for_ghost
? Bạn có muốn thiết lập người dùng mysql "ghost" không? có? Bạn có muốn thiết lập Nginx không? có? Bạn có muốn thiết lập SSL không? có? Nhập email của bạn (được sử dụng cho thông báo Let's Encrypt) [emailprotected]? Bạn có muốn thiết lập Systemd không? có? Bạn có muốn khởi động Ghost không? có
Sau khi cài đặt hoàn tất, hãy chạy
Mã:
ghost ls
để xem các tiến trình Ghost đang chạy.

Trong tương lai, để cập nhật blog Ghost của bạn khi phiên bản mới hơn được phát hành, bạn chỉ cần chạy
Mã:
ghost update
lệnh, từ thư mục cài đặt Ghost và Ghost-CLI sẽ lo liệu mọi thứ cho bạn.

Bước 7 - Hoàn tất thiết lập Ghost​

Để hoàn tất quá trình thiết lập, hãy điều hướng đến trang cấu hình Ghost bằng cách thêm /ghost vào cuối URL hoặc IP của blog. Ví dụ này sử dụng https://example.com/ghost.

Trên màn hình chào mừng, hãy nhấp vào Tạo tài khoản của bạn:




Nhập email của bạn, tạo người dùng, mật khẩu và tiêu đề blog:




Mời thêm thành viên vào nhóm của bạn. Nếu bạn muốn bỏ qua bước này, hãy nhấp vào Tôi sẽ thực hiện việc này sau, đưa tôi đến blog của tôi! ở cuối trang.





Điều hướng đến khu vực quản trị Ghost để tạo bài đăng đầu tiên, thay đổi chủ đề của trang web hoặc cấu hình các cài đặt bổ sung:



Xin chúc mừng! Bạn đã cài đặt và triển khai thành công nền tảng blog Ghost trên máy chủ Ubuntu 18.04 LTS.
 
Back
Bên trên