Ghost là một nền tảng blog mã nguồn mở giúp bạn tạo blog trông chuyên nghiệp. Nó được ra mắt vào năm 2013 như một giải pháp thay thế cho WordPress vì WordPress trở nên quá phức tạp. Nó được viết bằng JavaScript và được hỗ trợ bởi thư viện Node.js.
Hướng dẫn này sẽ khám phá cách cài đặt Ghost CMS bằng Nginx và MySQL trên máy chủ chạy Rocky Linux 9. Chúng tôi sẽ sử dụng máy chủ Nginx để lưu trữ blog và chứng chỉ SSL Let's Encrypt để bảo mật cài đặt của chúng tôi.
[*]
Cài đặt các gói tiện ích cơ bản. Một số trong số chúng có thể đã được cài đặt.
Tường lửa hoạt động với các vùng khác nhau và vùng công cộng là vùng mặc định mà chúng ta sẽ sử dụng. Liệt kê tất cả các dịch vụ và cổng đang hoạt động trên tường lửa.
Nó sẽ hiển thị đầu ra sau.
Wiki.js cần các cổng HTTP và HTTPS để hoạt động. Mở chúng ra.
Tải lại tường lửa để áp dụng thay đổi.
Tạo và mở tệp
Dán mã sau vào nó.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Cài đặt máy chủ Nginx.
Xác minh cài đặt.
Kích hoạt và khởi động máy chủ Nginx.
Kiểm tra trạng thái của máy chủ.
Cài đặt Node.
Xác minh Node cài đặt.
Vào thời điểm viết hướng dẫn này, Node 18 đã ra mắt và là phiên bản LTS. Ghost vẫn chưa thêm hỗ trợ cho phiên bản này. Hãy kiểm tra Tài liệu Ghost về các phiên bản Node để biết phiên bản Node mới nhất được hỗ trợ. Khi Ghost thêm hỗ trợ cho Node 18, hãy cài đặt Node 18 bằng các lệnh sau.
Kiểm tra phiên bản MySQL.
Bật và khởi động MySQL dịch vụ.
Kiểm tra trạng thái dịch vụ.
Theo mặc định, bạn có thể đăng nhập vào shell MySQL bằng xác thực Unix. Nhưng bạn không thể chạy trình hướng dẫn thiết lập bảo mật. Do đó, bước sau là cần thiết cho MySQL phiên bản 8.0.28 trở lên. Nhập MySQL Shell.
Chạy lệnh sau để đặt mật khẩu cho người dùng root của bạn. Đảm bảo mật khẩu có sự kết hợp giữa số, chữ hoa, chữ thường và ký tự đặc biệt.
Thoát khỏi shell. Lưu ý ở bước này là bạn không thể đăng nhập vào shell MySQL bằng xác thực Unix nữa.
Chạy tập lệnh cài đặt bảo mật MySQL.
Bạn sẽ được yêu cầu cài đặt Thành phần Xác thực mật khẩu. Thành phần này kiểm tra độ mạnh của mật khẩu được sử dụng trong MySQL. Nhấn Y để cài đặt.
Tiếp theo, bạn sẽ được yêu cầu thiết lập mức độ chính sách xác thực mật khẩu. Chọn 2 vì đây là mức mạnh nhất. Sau đó, bạn sẽ được yêu cầu tạo mật khẩu gốc. Nhập mật khẩu với các yêu cầu được đưa ra. Và khi được hỏi bạn có muốn tiếp tục với mật khẩu không, hãy nhấn Y để tiếp tục.
Cuối cùng, hãy nhấn Y để xóa người dùng ẩn danh, không cho phép đăng nhập root từ xa, xóa cơ sở dữ liệu thử nghiệm và tải lại bảng đặc quyền.
Như vậy là hoàn tất quá trình cài đặt và bảo mật MySQL.
Đặt quyền sở hữu thư mục thành quyền sở hữu hiện tại người dùng.
Đặt quyền thư mục chính xác.
Chuyển sang Ghost thư mục.
Trong quá trình cài đặt, công cụ CLI sẽ hỏi một số câu hỏi để cấu hình blog.
Để cài đặt Certbot, chúng ta sẽ sử dụng trình cài đặt gói Snapd. Snapd luôn có phiên bản ổn định mới nhất của Certbot, bạn nên sử dụng phiên bản này.
Công cụ Snapd yêu cầu kho lưu trữ Epel để hoạt động.
Chúng ta sẽ sử dụng Snapd để cài đặt Certbot. Cài đặt Snapd.
Kích hoạt và khởi động dịch vụ Snap.
Tạo các liên kết cần thiết cho Snapd tới làm việc.
Đảm bảo rằng phiên bản snapd của bạn được cập nhật.
Cài đặt Certbot.
Sử dụng lệnh sau để đảm bảo lệnh Certbot có thể chạy được bằng cách tạo liên kết tượng trưng đến
Tạo chứng chỉ SSL.
Lệnh trên sẽ tải xuống chứng chỉ vào
Tạo chứng chỉ nhóm Diffie-Hellman.
Thực hiện chạy thử quy trình để kiểm tra xem quá trình gia hạn SSL có hoạt động tốt không.
Nếu không thấy lỗi nào, bạn đã hoàn tất. Chứng chỉ của bạn sẽ tự động gia hạn.
Dán mã sau vào Tệp
Cấu hình trên sẽ chuyển hướng tất cả các yêu cầu HTTP sang HTTPS và sẽ đóng vai trò là proxy cho dịch vụ Ghost để phục vụ nó thông qua tên miền của bạn.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Mở tệp
Thêm dòng sau vào trước dòng
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Xác minh Nginx của bạn cấu hình.
Nếu bạn không thấy lỗi nào, điều đó có nghĩa là bạn có thể tiếp tục. Tải lại máy chủ Nginx.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22583%22%3E%3C/svg%3E
Bạn sẽ được yêu cầu tạo tài khoản Quản trị viên và chọn tiêu đề blog.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22576%22%20height=%22750%22%3E%3C/svg%3E
Nhập thông tin chi tiết của bạn và nhấp vào Nhấp vào nút Tạo tài khoản & bắt đầu xuất bản để tiếp tục.
Tiếp theo, bạn sẽ được đưa đến màn hình sau, tại đó bạn được cung cấp các tùy chọn như viết bài đăng đầu tiên, tùy chỉnh trang web của mình và nhập thành viên.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22580%22%3E%3C/svg%3E
Chúng ta sẽ chọn Quản trị viên Explore Ghost để khám phá và đi trực tiếp đến bảng điều khiển. Khi kết thúc quá trình thiết lập, bạn sẽ được chào đón bằng bảng điều khiển Quản trị của Ghost.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22597%22%3E%3C/svg%3E
Nếu bạn muốn chuyển sang chế độ tối, bạn có thể thực hiện bằng cách nhấp vào công tắc chuyển đổi bên cạnh nút bánh răng cài đặt ở cuối trang cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22177%22%20height=%2273%22%3E%3C/svg%3E
Chuyển sang trang Bài đăng và bạn sẽ thấy bài đăng mặc định. Bạn có thể hủy đăng hoặc xóa và bắt đầu đăng.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22568%22%3E%3C/svg%3E
)
Trước tiên, chúng ta hãy cấu hình dịch vụ SMTP cho email giao dịch. Để thực hiện việc này, hãy mở tệp
Tìm mục sau dòng.
Thay thế chúng bằng mã sau.
Ở đây chúng tôi sử dụng dịch vụ Amazon SES Mail vì nó rất rẻ và miễn phí trọn đời nếu bạn sử dụng dịch vụ EC2 của họ.
Nếu bạn muốn sử dụng dịch vụ bản tin của họ bằng Mailgun, hãy nhập mã sau thay vào đó.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Sau khi hoàn tất, hãy khởi động lại ứng dụng Ghost để các thay đổi có hiệu lực.
Để định cấu hình cài đặt bản tin, hãy truy cập Cài đặt >> Phần bản tin email.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22664%22%3E%3C/svg%3E
Nhấp vào liên kết Cấu hình Mailgun để mở rộng.
Điền Vùng Mailgun, tên miền và khóa API của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22672%22%20height=%22294%22%3E%3C/svg%3E
Nhấp vào nút Lưu ở góc trên bên phải để lưu cài đặt.
Để kiểm tra việc gửi bản tin, hãy mở bất kỳ bài đăng nào, mở cài đặt của bài đăng đó và nhấp vào tùy chọn Bản tin email. Tiếp theo, hãy gửi email thử nghiệm để kiểm tra xem nó có hoạt động không. Nếu bạn không gặp bất kỳ lỗi nào, điều đó có nghĩa là việc phân phối bản tin của bạn đang hoạt động.
Trước tiên, hãy sao lưu đầy đủ nếu bạn muốn chạy bản cập nhật nhỏ.
Chạy lệnh cập nhật để thực hiện cập nhật nhỏ cập nhật.
Để thực hiện bản cập nhật lớn, bạn nên làm theo hướng dẫn cập nhật chi tiết chính thức tại Ghost. Tùy thuộc vào phiên bản hiện tại của bạn và phiên bản chính mà bạn muốn cập nhật, các bước sẽ khác nhau.
Hướng dẫn này sẽ khám phá cách cài đặt Ghost CMS bằng Nginx và MySQL trên máy chủ chạy Rocky Linux 9. Chúng tôi sẽ sử dụng máy chủ Nginx để lưu trữ blog và chứng chỉ SSL Let's Encrypt để bảo mật cài đặt của chúng tôi.
Điều kiện tiên quyết
-
Máy chủ chạy Rocky Linux 9.
-
Người dùng không phải root có quyền sudo.
-
Tên miền đủ điều kiện (FQDN) trỏ đến máy chủ của bạn. Đối với mục đích của chúng tôi, chúng tôi sẽ sử dụngghost.example.com
làm tên miền.
-
Đảm bảo mọi thứ đã được cập nhật.
Mã:
$ sudo dnf update
Cài đặt các gói tiện ích cơ bản. Một số trong số chúng có thể đã được cài đặt.
Mã:
$ sudo dnf install wget curl nano unzip yum-utils -y
Bước 1 - Cấu hình Tường lửa
Bước đầu tiên là cấu hình tường lửa. Rocky Linux sử dụng Tường lửa Firewalld. Kiểm tra trạng thái của tường lửa.
Mã:
$ sudo firewall-cmd --state
running
Mã:
$ sudo firewall-cmd --permanent --list-services
Mã:
cockpit dhcpv6-client ssh
Mã:
$ sudo firewall-cmd --add-service=http --permanent
$ sudo firewall-cmd --add-service=https --permanent
Mã:
$ sudo firewall-cmd --reload
Bước 2 - Cài đặt Nginx
Rocky Linux 9 đi kèm với phiên bản Nginx cũ hơn. Bạn cần tải xuống kho lưu trữ Nginx chính thức để cài đặt phiên bản mới nhất.Tạo và mở tệp
/etc/yum.repos.d/nginx.repo
để tạo kho lưu trữ Nginx chính thức.
Mã:
$ sudo nano /etc/yum.repos.d/nginx.repo
Mã:
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
Cài đặt máy chủ Nginx.
Mã:
$ sudo dnf install nginx -y
Mã:
$ nginx -v
nginx version: nginx/1.22.1
Mã:
$ sudo systemctl enable nginx --now
Mã:
$ sudo systemctl status nginx
? nginx.service - nginx - high performance web server Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2022-10-25 08:27:47 UTC; 2s ago Docs: http://nginx.org/en/docs/ Process: 1650 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS) Main PID: 1651 (nginx) Tasks: 2 (limit: 5912) Memory: 1.9M CPU: 7ms CGroup: /system.slice/nginx.service ??1651 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf" ??1652 "nginx: worker process"
Oct 25 08:27:47 ghost.example.com systemd[1]: Starting nginx - high performance web server...
Bước 3 - Cài đặt Node.js
Ghost Installer cần Nodejs để hoạt động. Chạy các lệnh sau để cài đặt Node 16.
Mã:
$ curl -fsSL https://rpm.nodesource.com/setup_16.x | sudo bash -
Mã:
$ sudo dnf install -y nodejs
Mã:
$ node --version
v16.18.0
Mã:
$ curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash -
$ sudo dnf install -y nodejs
Bước 4 - Cài đặt MySQL
Rocky Linux 9 đi kèm với phiên bản MySQL mới nhất. Bạn có thể cài đặt bằng một lệnh duy nhất.
Mã:
$ sudo dnf install mysql-server
Mã:
$ mysql --version
mysql Ver 8.0.30 for Linux on x86_64 (Source distribution)
Mã:
$ sudo systemctl enable mysqld --now
Mã:
$ sudo systemctl status mysqld
? mysqld.service - MySQL 8.0 database server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2022-10-25 09:00:26 UTC; 3s ago Process: 2920 ExecStartPre=/usr/libexec/mysql-check-socket (code=exited, status=0/SUCCESS) Process: 2942 ExecStartPre=/usr/libexec/mysql-prepare-db-dir mysqld.service (code=exited, status=0/SUCCESS) Main PID: 3021 (mysqld) Status: "Server is operational" Tasks: 39 (limit: 5912) Memory: 404.4M CPU: 4.686s CGroup: /system.slice/mysqld.service ??3021 /usr/libexec/mysqld --basedir=/usr
Oct 25 09:00:18 ghost.example.com systemd[1]: Starting MySQL 8.0 database server...
Oct 25 09:00:18 ghost.example.com mysql-prepare-db-dir[2942]: Initializing MySQL database
Oct 25 09:00:26 ghost.example.com systemd[1]: Started MySQL 8.0 database server.
Mã:
$ sudo mysql
Mã:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourPassword12!';
Mã:
mysql> exit
Mã:
$ sudo mysql_secure_installation
Mã:
Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: Y
Mã:
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
Please set the password for root here.
New password:
Re-enter new password:
Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y
Mã:
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Success.
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Success.
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y - Dropping test database...
Success. - Removing privileges on test database...
Success.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y
Success.
All done!
Bước 5 - Cài đặt Ghost
Quá trình cài đặt Ghost sẽ bao gồm ba thành phần - Công cụ dòng lệnh Ghost-CLI dùng để cài đặt và quản lý các bản cập nhật cho blog Ghost và chính gói blog.Cài đặt Ghost-CLI
Chạy lệnh sau để cài đặt công cụ Ghost-CLI. Bỏ qua mọi cảnh báo bạn nhận được trong quá trình này.
Mã:
$ sudo npm install ghost-cli@latest -g
Chuẩn bị thư mục Ghost
Tạo thư mục gốc Ghost.
Mã:
$ sudo mkdir -p /var/www/html/ghost
Mã:
$ sudo chown $USER:$USER /var/www/html/ghost
Mã:
$ sudo chmod 755 /var/www/html/ghost
Mã:
$ cd /var/www/html/ghost
Cài đặt Ghost
Cài đặt Ghost là một quy trình lệnh duy nhất.
Mã:
$ ghost install
- Vào thời điểm viết hướng dẫn này, Ghost-CLI không hỗ trợ bất kỳ Hệ điều hành ngoài Ubuntu. Nó sẽ hỏi bạn có muốn tiếp tục cài đặt không. Nhấn Y để tiếp tục.
- URL blog: Nhập URL blog đầy đủ của bạn cùng với giao thức https. (
https://ghost.example.com
) - Tên máy chủ MySQL: Nhấn Enter để sử dụng giá trị mặc định của
localhost
vì bản cài đặt Ghost và MySQL của chúng tôi nằm trên cùng một máy chủ. - Tên người dùng MySQL: Nhập
root
làm tên người dùng MySQL của bạn. - Mật khẩu MySQL: Nhập mật khẩu gốc đã tạo trước đó.
- Tên cơ sở dữ liệu Ghost: Đặt tên cho cơ sở dữ liệu Ghost của bạn. (
ghostdb
) - Mật khẩu sudo: Nhập mật khẩu sudo của hệ thống để thực hiện các lệnh nâng cao.
- Thiết lập người dùng MySQL ghost?: Trình cài đặt sẽ hỏi bạn có muốn tạo người dùng MySQL riêng cho Ghost không. Nhấn Y để tiếp tục.
- Thiết lập Nginx?: Thông thường, Ghost-CLI phát hiện cài đặt Nginx của bạn và tự động định cấu hình cho blog của bạn. Nhưng hiện tại, nó không thể phát hiện cài đặt Nginx của chúng tôi. Do đó, trình cài đặt sẽ tự động bỏ qua bước này. Chúng ta sẽ cấu hình Nginx theo cách thủ công.
- Thiết lập SSL?: Vì bỏ qua cấu hình Nginx nên công cụ CLI cũng sẽ bỏ qua việc thiết lập SSL.
- Thiết lập systemd?: Ghost sẽ hỏi bạn có muốn thiết lập dịch vụ hệ thống cho Ghost không. Nhấn Y để tiếp tục.
- Khởi động Ghost?: Nhấn Y để bắt đầu cài đặt Ghost. Dịch vụ sẽ khởi động nhưng chúng ta sẽ cần cấu hình Nginx và SSL để nó hoạt động.
Bước 6 - Cài đặt SSL
Trước khi tiếp tục, chúng ta cần cài đặt công cụ Certbot và chứng chỉ SSL cho tên miền của mình.Để cài đặt Certbot, chúng ta sẽ sử dụng trình cài đặt gói Snapd. Snapd luôn có phiên bản ổn định mới nhất của Certbot, bạn nên sử dụng phiên bản này.
Công cụ Snapd yêu cầu kho lưu trữ Epel để hoạt động.
Mã:
$ sudo dnf install epel-release -y
Mã:
$ sudo dnf install snapd -y
Mã:
$ sudo systemctl enable snapd.socket --now
Mã:
$ sudo ln -s /var/lib/snapd/snap /snap
$ echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | sudo tee -a /etc/profile.d/snapd.sh
Mã:
$ sudo snap install core
$ sudo snap refresh core
Mã:
$ sudo snap install --classic certbot
/usr/bin
thư mục.
Mã:
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Mã:
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [emailprotected] -d ghost.example.com
/etc/letsencrypt/live/ghost.example.com
thư mục trên máy chủ của bạn.Tạo chứng chỉ nhóm Diffie-Hellman.
Mã:
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Mã:
$ sudo certbot renew --dry-run
Bước 7 - Cấu hình Nginx
Tạo và mở tệp/etc/nginx/conf.d/ghost.conf
để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/conf.d/ghost.conf
ghost.conf
. Thay thế tất cả các trường hợp của ghost.example.com
bằng tên miền của bạn.
Mã:
## enforce HTTPS
server { listen 80; listen [::]:80; server_name ghost.example.com; return 301 https://$server_name$request_uri;
}
server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name ghost.example.com; access_log /var/log/nginx/ghost.access.log; error_log /var/log/nginx/ghost.error.log; client_max_body_size 20m; http2_push_preload on; # Enable HTTP/2 Server Push ssl_certificate /etc/letsencrypt/live/ghost.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/ghost.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/ghost.example.com/chain.pem; ssl_session_timeout 1d; # Enable TLS versions (TLSv1.3 is required upcoming HTTP/3 QUIC). ssl_protocols TLSv1.2 TLSv1.3; # Enable TLSv1.3's 0-RTT. Use $ssl_early_data when reverse proxying to # prevent replay attacks. # # @see: https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_early_data ssl_early_data on; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384'; ssl_prefer_server_ciphers on; ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1; ssl_session_cache shared:SSL:50m; ssl_session_tickets off; # OCSP Stapling --- # fetch OCSP records from URL in ssl_certificate and cache them ssl_stapling on; ssl_stapling_verify on; ssl_dhparam /etc/ssl/certs/dhparam.pem; add_header X-Early-Data $tls1_3_early_data; location / { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://localhost:2368; }
}
# This block is useful for debugging TLS v1.3. Please feel free to remove this
# and use the `$ssl_early_data` variable exposed by NGINX directly should you
# wish to do so.
map $ssl_early_data $tls1_3_early_data { "~." $ssl_early_data; default "";
}
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Mở tệp
/etc/nginx/nginx.conf
để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/nginx.conf
include /etc/nginx/conf.d/*.conf;
.
Mã:
server_names_hash_bucket_size 64;
Xác minh Nginx của bạn cấu hình.
Mã:
$ sudo nginx -t
Mã:
$ sudo systemctl reload nginx
Bước 8 - Cấu hình SELinux
Cho phép Nginx kết nối với mạng.
Mã:
$ sudo setsebool -P httpd_can_network_connect 1
Bước 9 - Chạy trang web
Bây giờ, bạn có thể xác minh cài đặt của bạn bằng cách mởhttps://ghost.example.com
trong trình duyệt web của bạn. Bạn sẽ nhận được trang sau cho biết quá trình cài đặt thành công.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22583%22%3E%3C/svg%3E
Bước 10 - Hoàn tất thiết lập
Để hoàn tất quá trình thiết lập blog Ghost, hãy truy cậphttps://ghost.example.com/ghost
trong trình duyệt của bạn. Phần /ghost
bổ sung ở cuối tên miền blog của bạn sẽ chuyển hướng bạn đến Bảng điều khiển quản trị của Ghost hoặc trong trường hợp này là thiết lập vì đây là lần đầu tiên bạn truy cập vào bảng điều khiển này.Bạn sẽ được yêu cầu tạo tài khoản Quản trị viên và chọn tiêu đề blog.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22576%22%20height=%22750%22%3E%3C/svg%3E
Nhập thông tin chi tiết của bạn và nhấp vào Nhấp vào nút Tạo tài khoản & bắt đầu xuất bản để tiếp tục.
Tiếp theo, bạn sẽ được đưa đến màn hình sau, tại đó bạn được cung cấp các tùy chọn như viết bài đăng đầu tiên, tùy chỉnh trang web của mình và nhập thành viên.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22580%22%3E%3C/svg%3E
Chúng ta sẽ chọn Quản trị viên Explore Ghost để khám phá và đi trực tiếp đến bảng điều khiển. Khi kết thúc quá trình thiết lập, bạn sẽ được chào đón bằng bảng điều khiển Quản trị của Ghost.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22597%22%3E%3C/svg%3E
Nếu bạn muốn chuyển sang chế độ tối, bạn có thể thực hiện bằng cách nhấp vào công tắc chuyển đổi bên cạnh nút bánh răng cài đặt ở cuối trang cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22177%22%20height=%2273%22%3E%3C/svg%3E
Chuyển sang trang Bài đăng và bạn sẽ thấy bài đăng mặc định. Bạn có thể hủy đăng hoặc xóa và bắt đầu đăng.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22568%22%3E%3C/svg%3E
)
Bước 11 - Cấu hình Mailer
Ghost không chỉ hoạt động như một nền tảng viết blog mà còn là một trình quản lý bản tin. Đối với các hoạt động hàng ngày, bạn có thể sử dụng bất kỳ dịch vụ thư giao dịch nào để làm việc với Ghost để gửi thư. Nhưng nếu bạn muốn gửi bản tin qua Ghost, thì Mailgun là trình gửi thư hàng loạt chính thức duy nhất được hỗ trợ. Bạn cũng có thể sử dụng một dịch vụ bản tin khác nhưng để làm được điều đó, bạn sẽ cần sử dụng tính năng tích hợp Zapier của Ghost.Trước tiên, chúng ta hãy cấu hình dịch vụ SMTP cho email giao dịch. Để thực hiện việc này, hãy mở tệp
/var/www/html/ghost/config.production.json
để chỉnh sửa.
Mã:
$ nano /var/www/html/ghost/config.production.json
Mã:
"mail": { "transport": "Direct" },
Mã:
"mail": { "from": "'Acme Support' [emailprotected]", "transport": "SMTP", "options": { "host": "YOUR-SES-SERVER-NAME", "port": 465, "service": "SES", "auth": { "user": "YOUR-SES-SMTP-ACCESS-KEY-ID", "pass": "YOUR-SES-SMTP-SECRET-ACCESS-KEY" } }
},
Nếu bạn muốn sử dụng dịch vụ bản tin của họ bằng Mailgun, hãy nhập mã sau thay vào đó.
Mã:
"mail": { "from": "'Acme Support' [emailprotected]", "transport": "SMTP", "options": { "service": "Mailgun", "host": "smtp.mailgun.org", "port": 587, "secure": true, "auth": { "user": "[emailprotected]", "pass": "1234567890" } }
},
Sau khi hoàn tất, hãy khởi động lại ứng dụng Ghost để các thay đổi có hiệu lực.
Mã:
$ ghost restart
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22664%22%3E%3C/svg%3E
Nhấp vào liên kết Cấu hình Mailgun để mở rộng.
Điền Vùng Mailgun, tên miền và khóa API của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22672%22%20height=%22294%22%3E%3C/svg%3E
Nhấp vào nút Lưu ở góc trên bên phải để lưu cài đặt.
Để kiểm tra việc gửi bản tin, hãy mở bất kỳ bài đăng nào, mở cài đặt của bài đăng đó và nhấp vào tùy chọn Bản tin email. Tiếp theo, hãy gửi email thử nghiệm để kiểm tra xem nó có hoạt động không. Nếu bạn không gặp bất kỳ lỗi nào, điều đó có nghĩa là việc phân phối bản tin của bạn đang hoạt động.
Bước 12 - Cập nhật Ghost
Có hai loại cập nhật Ghost - Cập nhật nhỏ và Cập nhật lớn.Trước tiên, hãy sao lưu đầy đủ nếu bạn muốn chạy bản cập nhật nhỏ.
Mã:
$ cd /var/www/html/ghost
$ ghost backup
Mã:
$ ghost update