NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
30/05/2023
Lượt xem

Hướng dẫn cách cài đặt và cấu hình Ghost trên CentOS 7

30/05/2023
15 phút đọc
Lượt xem

Đánh giá

5/5 - (145 bình chọn)

Với giao diện quản trị đơn giản cùng khả năng tùy chỉnh nhiều chủ đề, Ghost đã và đang trở thành một nền tảng blog mã nguồn mở miễn phí được sử dụng phổ biến hàng đầu hiện nay. Trong bài viết này, Vietnix sẽ hướng dẫn bạn cách cài đặt và cấu hình Ghost trên CentOS 7 đơn giản và nhanh chóng nhất. Mời bạn cùng theo dõi ngay tại đây.

Điều kiện cần thiết để cài đặt và cấu hình Ghost trên CentOS 7

Trước khi thực hiện các bước như trong hướng dẫn bên dưới, bạn cần đảm bảo đáp ứng được các điều kiện sau:

  • Một máy chủ CentOS 1GB và một tài khoản user non-root có quyền sudo.
  • Có cài đặt Node.js bằng repo EPEL.
  • Nginx được cài sẵn trên server đó. (Hướng dẫn chi tiết về cách cài đặt Nginx trên CentOS 7 tại đây)

Nếu bạn đang tìm kiếm giải pháp máy chủ lưu trữ với chi phí tiết kiệm thì có thể tham khảo các gói VPS của Vietnix. Hiện tại, Vietnix đang cung cấp dịch vụ máy chủ ảo VPS với cấu hình RAM tối thiểu 1GB và ổ cứng 20GB SSD với toàn quyền quản trị giúp bạn có thể cài đặt các phần mềm tùy chọn theo nhu cầu sử dụng. Nếu còn phân vân chưa biết nên sử dụng gói VPS Giá Rẻ, Cloud Server, VPS Cao Cấp, VPS NVMe, VPS GPU, đội ngũ Vietnix sẽ hỗ trợ tư vấn chi tiết cho bạn hoàn toàn miễn phí.

5 bước cài đặt và cấu hình Ghost trên CentOS 7

Dưới đây là các bước cài đặt và cấu hình Ghost trên CentOS 7 mà bạn có thể tham khảo: 

Bước 1: Cài đặt Ghost

Đầu tiên, bạn có thể đặt Ghost trong thư mục được khuyến nghị là /var/www/ghost. Từ kho lưu trữ GitHub của Ghost, bạn tải xuống phiên bản mới nhất thông qua wget:  

wget https://ghost.org/zip/ghost-latest.zip

Tiếp theo, bạn cần cài đặt chương trình unzip thông qua trình quản lý package để có thể giải nén kho lưu trữ. Bạn phải đảm bảo rằng hệ thống đã được cập nhật trước khi bắt đầu cài đặt một chương trình mới. Nếu chưa, sử dụng các lệnh sau để cập nhật các packages và cài đặt unzip

sudo yum update -y
sudo yum install unzip -y

Trong lệnh trên, cờ -y có vai trò tự động cập nhật và cài đặt các package mà không cần xác nhận từ người dùng. Sau khi cài đặt unzip, bạn tiến hành giải nén package đã tải xuống trong thư mục /var/www/ghost. Lúc này, bạn cần tạo thư mục /var/www rồi giải nén file:

sudo mkdir /var/www
sudo unzip -d /var/www/ghost ghost-latest.zip

Để chuyển sang thư mục /var/www/ghost/, dùng lệnh: 

cd /var/www/ghost/

Bây giờ, bạn cần cài đặt các phụ thuộc của Ghost, nhưng bạn chỉ nên chọn những phần cần thiết trong quá trình sản xuất. Lệnh su sẽ bỏ qua mọi phụ thuộc cần thiết cho nhà phát triển Ghost:

sudo npm install --production

Như vậy, bạn đã cài đặt Ghost thành công. Tiếp theo bạn cần thực hiện một số thiết lập để cấu hình Ghost.

Bước 2: Cấu hình Ghost

Ghost sử dụng file cấu hình được đặt tại /var/www/ghost/config.js. Mặc dù file này không có sẵn nhưng bạn vẫn có thể bắt đầu với file cấu hình config.example.js có trong bản cài đặt Ghost.

Thay vì di chuyển file cấu hình, bạn nên sao chép nó sang /var/www/ghost/config.js để đảm bảo khả năng phục hồi lại các thay đổi trong trường hợp cần thiết về sau. 

sudo cp config.example.js config.js

Để chỉnh sửa, bạn cần mở file bằng cách nhập: 

sudo vi config.js

Đến bước này, bạn cần phải thay đổi URL mà Ghost sử dụng để tránh trường hợp các liên kết trên blog sẽ dẫn khách truy cập đến địa chỉ my-ghost-blog.com. Giá trị của trường URL có thể được thay đổi thành tên miền, hoặc nếu bạn chưa muốn sử dụng tên miền thì có thể đổi thành địa chỉ IP máy chủ. 

/var/www/ghost/config.js

...

config = {
    // ### Production
    // When running Ghost in the wild, use the production environment
    // Configure your URL and mail settings here
    production: {
        url: 'http://your_domain_or_ip_address',
        mail: {},
...

Hãy đảm bảo rằng url phải có định dạng của một URL (chẳng hạn như http://vietnixtest.com hoặc http://11.11.11.11. Nếu không đúng định dạng, Ghost sẽ không thể khởi động.

Ngoài ra, Ghost cũng có thể hoạt động mà không cần cài đặt email, chúng chỉ cần thiết khi bạn cần khôi phục mật khẩu cho người dùng Ghost. Vì thế bài hướng dẫn này sẽ bỏ qua bước cấu hình thiết lập mail. Sau khi thực hiện các tùy chỉnh cần thiết, bạn lưu file và thoát khỏi trình chỉnh sửa. 

Lúc này, khi vẫn còn ở trong thư mục /var/www/ghost, bạn có thể khởi động Ghost với câu lệnh sau: 

sudo npm start --production

Sau câu lệnh trên, output sẽ hiển thị như sau: 

Output

> ghost@0.11.7 start /var/www/ghost
> node index

WARNING: Ghost is attempting to use a direct method to send email.
It is recommended that you explicitly configure an email service.
Help and documentation can be found at http://support.ghost.org/mail.

Migrations: Creating tables...
...

Ghost is running in production...
Your blog is now available on http://your_domain_or_ip_address
Ctrl+C to shut down

Bây giờ, Ghost đang nghe trên công 2368 nhưng Ghost lại không nghe từ public network interface. Vì thế, bạn không thể truy cập trực tiếp vào Ghost. Để giải quyết vấn đề này, bạn cần thiết lập Nginx phía trước Ghost.

Bước 3: Cấu hình Nginx để chuyển tiếp (proxy) các yêu cầu đến Ghost

Tại bước này, người dùng sẽ thiết lập Nginx để phục vụ blog Ghost. Điều này cho phép các kết nối trên port 80 kết nối đến port mà Ghost đang hoạt động và bạn sẽ truy cập blog mà không cần thêm port :2368 vào cuối địa chỉ nữa.

Nếu như Ghost vẫn đang chạy trong cửa sổ terminal, bạn cần phải bấm CTRL+C để tắt trước khi đến với bước tiếp theo. 

Sau đó, bạn sẽ tiến hành cấu hình Nginx với thao tác đầu tiên là thay đổi thư mục /etc/nginx.

cd /etc/nginx/

Bạn sẽ không có thư mục sites-available sites-enabled để quản lý cấu hình trang web nếu như cài đặt Nginx từ repo EPEL của CentOS. Vậy nên, bạn cần tạo ra chúng với câu lệnh sau:

sudo mkdir sites-available
sudo mkdir sites-enabled

Tiếp đó, bạn tạo một file mới với tên ghost trong /etc/nginx/sites-available/:

sudo vi /etc/nginx/sites-available/ghost

Hãy đặt cấu hình sau vào file rồi thay đổi your_domain_or_ip_address thành tên miền hoặc địa chỉ IP máy chủ trong trường hợp bạn chưa có tên miền: 

/etc/nginx/sites-available/ghost
server {
    listen 80;
    server_name your_domain_or_ip_address;
    location / {
    proxy_set_header HOST $host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass         http://127.0.0.1:2368;
    }
}

Như vậy, cấu hình cơ bản này sẽ gửi tất cả các yêu cầu cho máy chủ đến blog Ghost đang chạy trên cổng 2368. Đồng thời, nó cũng đặt các tiêu đề HTTP thích hợp giúp bạn có thể xem địa chỉ IP ban đầu của khách truy cập một cách dễ dàng. 

Sau khi hoàn tất quá trình chỉnh sửa, bạn đã có thể lưu file và thoát khỏi trình chỉnh sửa. Tiếp theo, hãy tạo một symlink cho file này trong thư mục /etc/nginx/sites-enabled

sudo ln -s /etc/nginx/sites-available/ghost /etc/nginx/sites-enabled/ghost

Chỉ khi bạn sửa đổi tệp cấu hình Nginx mặc định và yêu cầu nó bao gồm các file cấu hình trong thư mục sites-enabled, thì Nginx mới có thể sử dụng được cấu hình mới này. Bên cạnh đó, bạn cũng cần phải vô hiệu hóa trang web mặc định để đảm bảo rằng Nginx sẽ chỉ phục vụ trang web bạn đã cấu hình trong file.

Đầu tiên, bạn mở file nginx.conf trong trình chỉnh sửa với lệnh: 

sudo vi nginx.conf

Đừng quên đặt dòng sau vào trong block http để bao gồm các file cấu hình trong thư mục sites-enabled:

/etc/nginx/nginx.conf

http {
...
    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;

Tiếp theo, bạn tạm thời vô hiệu hóa server block được tìm thấy bên trong khối http

/etc/nginx/nginx.conf
...

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;


#    server {
#       listen       80 default_server;
#       listen       [::]:80 default_server;
#       server_name  _;
#       root         /usr/share/nginx/html;
#
#       # Load configuration files for the default server block.
#       include /etc/nginx/default.d/*.conf;
#
#       location / {
#       }
#
#       error_page 404 /404.html;
#           location = /40x.html {
#       }
#
#       error_page 500 502 503 504 /50x.html;
#           location = /50x.html {
#       }
...
...

Sau khi hoàn tất, bạn lưu file và thoát khỏi trình chỉnh sửa. Để đảm bảo rằng không có vấn đề hay sai sót nào xảy ra, bạn cần kiểm tra cấu hình với lệnh sau: 

sudo nginx -t

Nếu như mọi thứ đều đang hoạt động đúng cách, kết quả hiển thị sẽ như sau:

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

Còn trong trường hợp nhận thấy sự tồn tại của bất cứ lỗi nào, bạn hãy nhanh chóng sửa chúng và kiểm tra cấu hình lại một lần nữa.

Ngoài ra, để áp dụng các thay đổi với file cấu hình đang hoạt động, bạn cần khởi động lại Nginx: 

sudo systemctl restart nginx

Trước khi khởi động lại Ghost, bạn cần tạo một tài khoản user mới theo hướng dẫn của bước 4. 

Bước 4: Chạy Ghost với tư cách user riêng

Để đảm bảo an toàn và cải thiện tính bảo mật, bạn cần chạy Ghost với một tài khoản người dùng riêng biệt. Tài khoản này chỉ cho phép người dùng truy cập vào thư mục /var/www/ghost và thư mục chính. Như vậy, bạn có thể hạn chế tối đa thiệt hại có thể xảy ra đối với hệ thống nếu như Ghost bị xâm phạm. 

Để tạo người dùng mới, bạn nhập lệnh sau: 

sudo adduser --shell /bin/bash ghost

Tiếp theo, bạn cần đặt người dùng mới làm chủ sở hữu của thư mục /var/www/ghost:

sudo chown -R ghost:ghost /var/www/ghost/

Để đảm bảo rằng người dùng mới này có thể chạy Ghost, bạn tiến hành đăng nhập với tư cách người dùng ghost:

sudo su - ghost

Bây giờ, bạn đã có thể bắt đầu chạy Ghost với tài khoản người dùng này: 

cd /var/www/ghost
npm start --production

Bạn có thể truy cập lại blog của mình và lúc này, Nginx sẽ chuyển tiếp các yêu cầu tới Ghost.

Bước 5: Chạy Ghost như một dịch vụ hệ thống

Sau khi hoàn thành các thao tác trên, Ghost hiện đang chạy trong cửa sổ terminal. Tuy nhiên, chỉ cần bạn đăng xuất khỏi Ghost, blog sẽ ngừng hoạt động. Khi đó, bạn cần để Ghost chạy ở nền và đảm bảo rằng nó sẽ khởi động cùng với hệ thống. 

Để làm được điều trên, bạn cần tạo một file systemd để mô tả cách systemd quản lý Ghost. Hãy dừng Ghost bằng cách bấm CTRL+C và bấm CTRL+D để đăng xuất khỏi tài khoản người dùng ghost. Tiếp theo, bạn cần tạo một file mới để chứa định nghĩa của file systemd.

sudo vi /etc/systemd/system/ghost.service

Sau đó, bạn thêm cấu hình bên dưới vào file để xác định tên dịch vụ, group và user cho dịch vụ cũng như những thông tin về cách mà dịch vụ sẽ bắt đầu:

/etc/systemd/system/ghost.service
[Unit]
Description=Ghost
After=network.target

[Service]
Type=simple

WorkingDirectory=/var/www/ghost
User=ghost
Group=ghost

ExecStart=/usr/bin/npm start --production
ExecStop=/usr/bin/npm stop --production
Restart=always
SyslogIdentifier=Ghost

[Install]
WantedBy=multi-user.target

Bây giờ, bạn chỉ cần lưu file, thoát khỏi trình chỉnh sửa để tiến hành kích hoạt và bắt đầu dịch vụ với những câu lệnh sau: 

sudo systemctl enable ghost.service
sudo sytemctl start ghost.service

Cuối cùng, bạn truy cập lại vào http://your_domain_or_ip_address và bây giờ bạn sẽ thấy được blog của mình.

Với hơn 10 năm kinh nghiệm trong lĩnh vực cung cấp giải pháp lưu trữ VPS, Vietnix đã ghi dấu ấn trong lòng hơn 50.000 khách hàng cá nhân, doanh nghiệp với những cái tên nổi bật như GTV, Vietnamworks, SEOSONA, SAGO Media,… với hơn 100.000 dịch vụ đã được kích hoạt. Đáng tự hào hơn, Vietnix đã nhận được giải thưởng Thương hiệu Việt Nam xuất sắc 2022, khẳng định vị thế của mình trên thị trường.

Các giải pháp lưu trữ của Vietnix đã được khách hàng đánh giá cao và tin tưởng sử dụng. Tính đến hiện tại, 97% khách hàng đã sử dụng dịch vụ của Vietnix sẽ giới thiệu dịch vụ đến người khác sau khi sử dụng. Nếu bạn đang có ý định phát triển kinh doanh trên internet, hãy để Vietnix đồng hành cùng bạn.

Mọi vấn đề thắc mắc cần tư vấn, quý khách vui lòng liên hệ:

  • Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.
  • Hotline: 1800 1093.
  • Email: sales@vietnix.com.vn.

Lời kết

Như vậy, bài viết trên đã hướng dẫn bạn cách cài đặt và cấu hình Ghost trên CentOS 7 một cách dễ dàng và nhanh chóng. Ngoài ra, đừng quên để lại comment bên dưới nếu bạn gặp bất cứ khó khăn hay cần hỗ trợ trong quá trình thực hiện theo hướng dẫn nhé.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG