Thứ hai, 10/04/2017 | 00:00 GMT+7

Cách cài đặt và cấu hình Ghost trên CentOS 7

Ghost là một nền tảng blog open-souce dung lượng nhẹ, dễ sử dụng. Ghost hoàn toàn có thể tùy chỉnh, với nhiều chủ đề có sẵn.

Trong hướng dẫn này, bạn sẽ cài đặt Ghost trên CentOS 7. Bạn cũng sẽ cấu hình Nginx cho các yêu cầu proxy tới Ghost và giữ cho Ghost chạy trong nền như một dịch vụ hệ thống.

Yêu cầu

Để hoàn thành hướng dẫn này, bạn cần :

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

Đầu tiên, ta cần cài đặt Ghost. Ta sẽ đặt Ghost trong folder /var/www/ghost , đây là vị trí cài đặt được khuyến khích .

Download version Ghost mới nhất từ repository GitHub của Ghost bằng cách sử dụng wget :

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

Để extract repository , trước tiên hãy cài đặt chương trình unzip bằng trình quản lý gói. Bạn nên đảm bảo hệ thống luôn được cập nhật trước khi cài đặt chương trình mới, vì vậy hãy cập nhật các gói và cài đặt unzip bằng các lệnh sau:

  • sudo yum update -y
  • sudo yum install unzip -y

Cờ -y trong các lệnh trước đó cập nhật và cài đặt các gói tự động mà không yêu cầu xác nhận từ user .

Sau khi unzip được cài đặt, hãy extract gói đã download vào folder /var/www/ghost . Đầu tiên, tạo folder /var/www , sau đó extract file :

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

Chuyển sang folder /var/www/ghost/ :

  • cd /var/www/ghost/

Sau đó cài đặt các phụ thuộc Ghost, nhưng chỉ những phụ thuộc cần thiết cho quá trình production . Điều này bỏ qua bất kỳ phụ thuộc nào chỉ cần những người phát triển Ghost.

  • sudo npm install --production

Ghost được cài đặt sau khi quá trình này hoàn tất, nhưng ta cần cài đặt Ghost trước khi có thể khởi động nó.

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

Ghost sử dụng file cấu hình có địa chỉ /var/www/ghost/config.js . Tệp này không tồn tại ngoài hộp, nhưng cài đặt Ghost bao gồm file config.example.js , ta sẽ sử dụng file này làm điểm bắt đầu.

Sao chép file cấu hình ví dụ vào /var/www/ghost/config.js . Ta sẽ sao chép file thay vì di chuyển file để ta có bản sao của file cấu hình root trong trường hợp ta cần hoàn nguyên các thay đổi .

  • sudo cp config.example.js config.js

Mở file để chỉnh sửa:

  • sudo vi config.js

Ta phải thay đổi URL mà Ghost sử dụng. Nếu không, các liên kết trên blog sẽ đưa khách truy cập đến my-ghost-blog.com . Thay đổi giá trị của trường url thành domain của bạn hoặc thành địa chỉ IP của server nếu bạn không muốn sử dụng domain ngay bây giờ.

/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: {}, ... 

Giá trị url phải ở dạng URL, như http:// example.com hoặc http:// 11.11.11.11 . Nếu giá trị này không được định dạng đúng, Ghost sẽ không bắt đầu.

Ghost có thể hoạt động mà không cần cài đặt thư; chúng chỉ cần thiết nếu bạn cần hỗ trợ khôi phục password cho user Ghost. Ta sẽ bỏ qua việc cấu hình cài đặt này trong hướng dẫn này.

Bạn có thể tùy chỉnh Ghost thêm bằng cách theo dõi chi tiết cấu hình tại trang web chính thức .

Lưu file và thoát khỏi editor .

Khi vẫn ở trong folder /var/www/ghost , hãy khởi động Ghost bằng lệnh sau:

  • sudo npm start --production

Đầu ra phải giống 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

Ghost đang lắng nghe trên cổng 2368 và nó không nghe trên network interface công cộng, vì vậy bạn sẽ không thể truy cập trực tiếp. Hãy cài đặt Nginx trước Ghost.

Bước 3 - Cấu hình Nginx theo Yêu cầu proxy để Ghost

Bước tiếp theo là cài đặt Nginx để phục vụ blog Ghost của ta . Điều này sẽ cho phép các kết nối trên cổng 80 kết nối thông qua cổng mà Ghost đang chạy, vì vậy mọi người có thể truy cập blog Ghost của bạn mà không cần thêm :2368 vào cuối địa chỉ. Nó cũng thêm một lớp hướng dẫn và giúp bạn mở rộng quy mô blog của bạn nếu nó phát triển.

Nếu Ghost vẫn đang chạy trong terminal của bạn, hãy nhấn CTRL+C để tắt version Ghost trước khi bạn tiếp tục.

Bây giờ hãy cấu hình Nginx. Trước tiên, thay đổi thành folder /etc/nginx :

  • cd /etc/nginx/

Nếu bạn cài đặt Nginx từ kho CentOS EPEL như trong yêu cầu hướng dẫn, bạn sẽ không có sites-availablesites-enabled folder , được sử dụng để quản lý cấu hình trang web. Hãy tạo chúng:

  • sudo mkdir sites-available
  • sudo mkdir sites-enabled

Tiếp theo, tạo một file mới trong /etc/nginx/sites-available/ được gọi là ghost :

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

Đặt cấu hình sau vào file và thay đổi your_domain_or_ip_address thành domain của bạn hoặc địa chỉ IP server của bạn nếu bạn không có domain :

/ 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;     } } 

Cấu hình cơ bản này gửi tất cả các yêu cầu cho server này tới blog Ghost đang chạy trên cổng 2368 và nó đặt tiêu đề HTTP thích hợp để khi bạn xem log Ghost, bạn sẽ thấy địa chỉ IP ban đầu của khách truy cập. Bạn có thể tìm hiểu thêm về cấu hình này trong Tìm hiểu về Nginx HTTP Proxying, Cân bằng tải, Cache và Bộ nhớ đệm .

Lưu file , thoát khỏi editor và kích hoạt cấu hình này bằng cách tạo softlink cho file này trong folder /etc/nginx/sites-enabled :

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

Nginx sẽ không sử dụng cấu hình mới này cho đến khi ta sửa đổi file 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 folder sites-enabled . Ngoài ra, ta phải vô hiệu hóa trang web mặc định. Mở file nginx.conf trong editor :

  • sudo vi nginx.conf

Bao gồm dòng sau bên trong khối http để bao gồm các file cấu hình trong folder 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/*; 

Sau đó, hoàn toàn comment khối server đượ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 { #       } ... ... 

Lưu file và thoát khỏi editor . Kiểm tra cấu hình đảm bảo không có vấn đề gì:

  • sudo nginx -t

Bạn sẽ thấy kết quả sau nếu mọi thứ đều chính xác:

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

Nếu bạn thấy bất kỳ lỗi nào, hãy sửa chúng và kiểm tra lại cấu hình.

Với file cấu hình đang hoạt động, hãy khởi động lại Nginx để áp dụng các thay đổi:

  • sudo systemctl restart nginx

Trước khi bắt đầu Ghost lại, ta hãy tạo một account user mới để chạy Ghost.

Bước 4 - Chạy Ghost với quyền user riêng biệt

Để cải thiện bảo mật, ta sẽ chạy Ghost trong một account user riêng biệt. User này sẽ chỉ có quyền truy cập vào folder /var/www/ghost và folder chính của nó. Bằng cách này, nếu Ghost bị xâm phạm, bạn sẽ giảm thiểu thiệt hại tiềm tàng cho hệ thống của bạn .

Tạo user ghost mới bằng lệnh sau:

  • sudo adduser --shell /bin/bash ghost

Sau đó, đặt user mới này làm chủ sở hữu của folder /var/www/ghost :

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

Bây giờ hãy đảm bảo user này có thể chạy Ghost. Đăng nhập với quyền user ghost :

  • sudo su - ghost

Bây giờ bắt đầu Ghost dưới user này và đảm bảo nó chạy:

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

Bạn có thể truy cập blog của bạn tại http:// your_domain_or_ip_address . Nginx sẽ gửi yêu cầu đến version Ghost của bạn.

Mọi thứ đang hoạt động tốt, nhưng hãy đảm bảo Ghost tiếp tục hoạt động tốt trong tương lai.

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

Hiện tại, Ghost đang chạy trong terminal của ta . Nếu ta đăng xuất, blog của ta sẽ đóng cửa. Hãy để Ghost chạy trong nền và đảm bảo nó sẽ khởi động lại khi hệ thống khởi động lại. Để làm điều này, ta sẽ tạo một file đơn vị systemd chỉ định cách systemd nên quản lý Ghost. Nhấn CTRL+C để dừng Ghost và đăng xuất khỏi account user ghost bằng cách nhấn CTRL+D

Tạo một file mới để giữ định nghĩa của file đơn vị systemd :

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

Thêm cấu hình sau vào file , cấu hình này xác định tên dịch vụ, group và user cho dịch vụ và thông tin về cách nó 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 

Nếu bạn không quen thuộc với các file đơn vị systemd , hãy xem hướng dẫn Hiểu Đơn vị Systemd và Tệp Đơn vị sẽ giúp bạn tăng tốc nhanh chóng.

Lưu file và thoát khỏi editor . Sau đó kích hoạt và bắt đầu dịch vụ:

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

, hãy truy cập http:// your_domain_or_ip_address và bạn sẽ thấy blog của bạn .

Kết luận

Trong hướng dẫn này, bạn đã cài đặt Ghost, cấu hình Nginx cho các yêu cầu proxy tới Ghost và đảm bảo Ghost chạy như một dịch vụ hệ thống. Tuy nhiên, bạn có thể làm được nhiều điều hơn nữa với Ghost. Hãy xem các hướng dẫn này để tìm hiểu thêm về cách sử dụng blog mới của bạn:


Tags:

Các tin liên quan

Cách cấu hình một client FreeIPA trên CentOS 7
2017-03-24
Cách theo dõi các chỉ số hệ thống bằng TICK Stack trên CentOS 7
2017-03-12
Cách thiết lập xác thực đa yếu tố cho SSH trên CentOS 7
2017-03-08
Cách cài đặt và bảo mật message broker MQTT Mosquitto trên CentOS 7
2017-01-23
Cách thay đổi thư mục dữ liệu MariaDB thành vị trí mới trên CentOS 7
2016-12-19
Cách cài đặt và cấu hình Ansible trên CentOS 7
2016-12-19
Cách cài đặt MariaDB trên CentOS 7
2016-12-01
Cách thu thập số liệu cơ sở hạ tầng với Packetbeat và ELK trên CentOS 7
2016-11-28
Cách chia sẻ tệp bằng FileRun trên CentOS 7
2016-11-21
Cách cài đặt và cấu hình Grafana để vẽ đồ thị đẹp từ Zabbix trên CentOS 7
2016-11-13