Cài Đặt Và Cấu Hình Ghost Trên openSUSE 42.2 Leap

ghost opensuse

Ghost là gì ?

Trong kỷ nguyên web 2.0, blog là thành phần không thể thiếu đối với nhiều người, sự phổ biến của các nền tảng như WordPress và Tumblr là những ví dụ điển hình.

Hôm nay chúng ta sẽ nói về một nền tảng tương tự như thế, dùng để xây dựng blog, website, với tên gọi là Ghost. Công cụ này được xây dựng trên mã nguồn mở và hoàn toàn miễn phí, viết bằng JavaScript và chạy trên Node.js.

Trong bài hướng dẫn này, An Ninh Mạng sẽ thực hiện cài đặt – cấu hình Ghost trên openSUSE Leap 42.2, sử dụng Apache là Web server.

Node.js version

Ghost chạy trên những phiên bản Node.js mới nhất. Chính xác hơn, các nhà phát triển đã quyết định Ghost chỉ hỗ trợ các phiên bản LTS.  Trong hướng dẫn này, chúng ta sẽ sử dụng phiên bản 4.2.x.

Bắt đầu – Cài đặt Node.js và npm

Node.js version 4 có sẵn trên openSUSE. Để cài đặt, dùng lệnh zypper :

# zypper in nodejs
The following NEW package is going to be installed:

nodejs4




1 new package to install.

Overall download size: 3.3 MiB. Already cached: 0 B. After the operation, additional

12.7 MiB will be used.

Continue? [y/n/? shows all options] (y): y

Retrieving package nodejs4-4.6.1-3.1.x86_64        (1/1),   3.3 MiB ( 12.7 MiB unpacked)

Retrieving: nodejs4-4.6.1-3.1.x86_64.rpm ...........................[done (846.4 KiB/s)]

Checking for file conflicts: .....................................................[done]

(1/1) Installing: nodejs4-4.6.1-3.1.x86_64 .......................................[done]

Tiếp theo, cài đặt npm :

# zypper in npm

Kiểm tra phiên bản :

$ npm --version
2.15.9

Cài đặt Ghost :

Đổi thư mục sang /srv/www và download Ghost :

# cd /srv/www

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

Giaỉ nén file vừa tải ra một thư mục tên Ghost bằng lệnh :

# unzip -d ghost ghost-latest.zip

Đi đến thư mục vừa giải nén và cài đặt Ghost với npm :

# cd ghost

# npm install –production

Cấu hình Ghost :

Đổi tên file cấu hình mẫu của ghost :

# cp config.example.js config.js

Tiếp theo, tạo một username tên ghostusr :

# useradd -d /srv/www -s /bin/bash -U ghostusr

# passwd ghostusr

Set quyền sở hữu cho thư mục ghost :

# chown -R ghostusr:ghostusr /srv/www/ghost

Như vậy là chúng ta đã có thể test Ghost với npm bằng cách thực hiện dòng lệnh sau :

# su - ghostusr

$ cd ghost

$ npm start --production

Kết quả trả về :

Migrations: Creating tables...

Migrations: Creating table: posts

Migrations: Creating table: users

Migrations: Creating table: roles

Migrations: Creating table: roles_users

Migrations: Creating table: permissions

Migrations: Creating table: permissions_users

Migrations: Creating table: permissions_roles

Migrations: Creating table: permissions_apps

Migrations: Creating table: settings

Migrations: Creating table: tags

Migrations: Creating table: posts_tags

Migrations: Creating table: apps

Migrations: Creating table: app_settings

Migrations: Creating table: app_fields

Migrations: Creating table: clients

Migrations: Creating table: client_trusted_domains

Migrations: Creating table: accesstokens

Migrations: Creating table: refreshtokens

Migrations: Creating table: subscribers

Migrations: Running fixture populations

Migrations: Creating owner

Ghost is running in production...

Your blog is now available on http://my-ghost-blog.com

 

Mở một cửa sổ Terminal Windows mới, và test xem Ghost đã chạy hay chưa bằng dòng lệnh :

$ curl -I localhost:2368
HTTP/1.1 200 OK

X-Powered-By: Express

Cache-Control: public, max-age=0

Content-Type: text/html; charset=utf-8

Content-Length: 4554

ETag: W/"11ca-93Do3c+nffISfn1kLrmRZg"

Vary: Accept-Encoding

Date: Mon, 13 Mar 2017 07:59:39 GMT

Connection: keep-alive


Tại cửa sổ Terminal đang chạy Ghost, dừng lại bằng tổ hợp phím CTRL+C. Tiếp theo, tạo một systemd service :

# $EDITOR /etc/systemd/system/ghost.service

Và paste cấu hình sau vào :

[Unit]

Description=Ghost Blog - Publication platform

After=network.target




[Service]

Type=simple

# Ghost installation Directory

WorkingDirectory=/srv/www/ghost

User=ghostusr

Group=ghostusr

ExecStart=/usr/bin/npm start --production

ExecStop=/usr/bin/npm stop --production

Restart=always

SyslogIdentifier=Ghost




[Install]

WantedBy=multi-user.target




Reload systemd daemon :

# systemct daemon-reload

Và sau đó start service :

# systemctl start ghost

Check lại trạng thái :

# systemctl status ghost

Kết quả trả về :

ghost.service - Ghost Blog - Publication platform

Loaded: loaded (/etc/systemd/system/ghost.service; disabled; vendor preset: disabled)

Active: active (running) since Mon 2017-03-13 09:06:41 CET; 5s ago

Set cho ghost tự chạy mỗi lần máy bật :

# systemctl enable ghost

Cài đặt và cấu hình Apache :

Cài đặt Apache với  zypper:

# zypper in apache2

Tạo một Virtual Host bằng Ghost :

# $EDITOR /etc/apache2/sites-available/ghost.conf

Paste vào file ghost.conf nội dung sau :

<VirtualHost *:80>

#Domain Name

ServerName myghostblog.com

ServerAlias www.myghostblog.com




#HTTP proxy/gateway server

ProxyRequests off

ProxyPass / http://127.0.0.1:2368/

ProxyPassReverse / http:/127.0.0.1:2368/

</VirtualHost>


Save và exit.

Active proxy module, active Ghost, và restart everything :

# a2enmod proxy proxy_http

# ln -s /etc/apache2/sites-available/ghost.conf /etc/apache2/sites-enabled/ghost.conf

# systemctl restart apache2

# systemctl restart ghost

Mở trình duyệt web lên, truy cập http://localhost:2368 :

ghost opensuse Cài Đặt Và Cấu Hình Ghost Trên openSUSE 42.2 Leap

Như vậy là Ghost đã chạy.

Enable SSL :

Tạo một thư mục mới để chứa Certificates :

# mkdir -p /etc/apache2/certs

Và generate certificates mới :

# openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout /etc/apache2/certs/ghost.key -out /etc/apache2/certs/ghost.crt

Đổi permission :

# chmod 600 /etc/apache2/certs/*

Cuối cùng, edit file Virtual Host và enable SSL :

# $EDITOR /etc/apache2/sites-available/ghost.conf

 

<VirtualHost *:80>

ServerName myghostblog.com

ServerAlias www.myghostblog.com




# Force http to https

Redirect permanent / https://myghostblog.com/

#    ProxyRequests off

#    ProxyPass / http://127.0.0.1:2368/

#    ProxyPassReverse / http:/127.0.0.1:2368/

</VirtualHost>




<VirtualHost *:443>




ServerName myghostblog.com




SSLEngine on

SSLCertificateFile /etc/apache2/certs/ghost.crt

SSLCertificateKeyFile /etc/apache2/certs/ghost.key




ProxyPass / http://127.0.0.1:2368/

ProxyPassReverse / http:/127.0.0.1:2368/

ProxyPreserveHost   On




RequestHeader set X-Forwarded-Proto "https"




</VirtualHost>

Save, exit và restart lại Apache :

# a2enmod ssl headers

# systemctl restart apache2

Tổng kết :

Như vậy là chúng ta đã hoàn thành cài đặt và cấu hình cho Ghost chạy. Truy cập địa chỉ localhost:2368/ghost/ để hoàn thành phần setup cho admin account, và bắt đầu viết blog !

BÌNH LUẬN

Please enter your comment!
Please enter your name here