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