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 :
- Một server CentOS 7 1GB được cài đặt theo hướng dẫn Cài đặt Server Ban đầu với CentOS 7 , bao gồm cả user không phải root có quyền sudo .
- Node.js được cài đặt bằng cách sử dụng phương pháp kho EPEL được giải thích trong hướng dẫn: Cách cài đặt Node.js trên server CentOS 7 .
- Nginx đã được cài đặt trên server của bạn, như trong Cách cài đặt Nginx trên CentOS 7 .
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ờ.
 ...  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-available và sites-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 :
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 :
 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 :
...      # 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:
Outputnginx: 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:
[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:
- Cách cấu hình và duy trì Ghost từ dòng lệnh .
- Cách thay đổi chủ đề và điều chỉnh cài đặt trong Ghost .
Các tin liên quan
Cách cấu hình một client FreeIPA trên CentOS 72017-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
 

