Ghost là một nền tảng xuất bản và blog mã nguồn mở mạnh mẽ được thiết kế đẹp mắt và dễ sử dụng. Ghost được viết bằng javascript và sử dụng node.js làm môi trường thời gian chạy. Phiên bản Ghost đầu tiên đã được phát hành vào năm 2013 theo giấy phép MIT và liên tục được cập nhật. Hướng dẫn này trình bày cách cài đặt phần mềm Ghost Blog, Node.js và Apache làm máy chủ proxy SSL trên Ubuntu 16.04.
Nodejs là một thời gian chạy javaScript mã nguồn mở được xây dựng trên công cụ JavaScript V8 của Chrome (v4) để phát triển các ứng dụng web phía máy chủ. Nodejs là một thời gian chạy đa nền tảng có thể chạy trên OS X, Microsoft Windows, Linux và FreeBSD. Nó cung cấp một kiến trúc hướng sự kiện và mô hình I/O không chặn giúp nó nhẹ và hiệu quả cho các ứng dụng web thời gian thực. Dự án Node.js đã được Ryan Dahl khởi động vào năm 2009 và đã đạt đến phiên bản 6.5.0 (LTS) tính đến thời điểm hiện tại.
Cài đặt khóa kho lưu trữ nodesource bằng lệnh bên dưới:
Sau đó thêm kho lưu trữ nodejs bằng cách thực hiện các lệnh bên dưới:
Cập nhật kho lưu trữ:
Bây giờ chúng ta có thể cài đặt gói "nodejs" để cài đặt node.js và các thành phần phụ thuộc của nó trên máy chủ:
Bây giờ hãy kiểm tra phiên bản nodejs để đảm bảo rằng quá trình cài đặt đã thành công:
Kiểm tra phiên bản npm:
npm là trình quản lý gói để cài đặt, xuất bản và quản lý các chương trình node.
Tải xuống Ghost bằng lệnh wget, sau đó giải nén nó vào một thư mục có tên là "ghostblog" :
LƯU Ý : -d : tự động tạo thư mục.
Sau đó, hãy đến thư mục ghostblog và cài đặt Ghost bằng lệnh npm:
Tiếp theo, thêm người dùng mới "ghost". Người dùng này sẽ bị kiện để chạyGhost:
Lưu ý:
-d = Định nghĩa thư mục home cho người dùng ghost trong /var/www/.
-s = Định nghĩa shell cho người dùng ghost.
Bây giờ hãy thay đổi chủ sở hữu của thư mục cài đặt ghost thành người dùng "ghost".
Kiểm tra blog ghost bằng cách thực thi lệnh npm với tư cách là người dùng ghost. Vui lòng đăng nhập vào tài khoản ghost:
và vào thư mục cài đặt và khởi động Ghost:
Ghost đã được cài đặt và chạy trên localhost với cổng 2368. Chúng ta có thể kiểm tra bằng lệnh curl:
Bạn có thể thấy ghost đang chạy - HTTP/1.1 200 OK.
Chúng tôi sẽ chạy ghost như một dịch vụ để giúp chúng tôi khởi động ghost dễ dàng hơn. Vui lòng quay lại sudo/root user bằng cách nhập "exit" và tạo một tệp mới có tên là "ghost.service"trong thư mục "/lib/systemd/system/".
Dán tập lệnh systemd bên dưới:
Tiếp theo, tải lại daemon systemd:
Sau đó thêm ghost để khởi động khi khởi động và khởi động ghost bằng lệnh systemctl:
Kiểm tra xem ghost có đang chạy không bằng cách kiểm tra cổng 2368:
Sau khi cài đặt hoàn tất, hãy tạo một tệp mới cho máy chủ ảo ghost trong thư mục "/etc/apache2/sites-available/".
Dán cấu hình bên dưới:
Lưu và thoát.
Kích hoạt mô-đun proxy HTTP trong apache bằng lệnh a2enmodnhư hiển thị bên dưới:
Cuối cùng, chúng ta phải kích hoạt máy chủ ảo Ghost rồi khởi động lại apache:
Khởi động lại ghost:
Kiểm tra bằng cách truy cập tên miền:
Và tạo khóa chứng chỉ bằng lệnh bên dưới:
Vui lòng thay đổi quyền của tệp chứng chỉ:
Tiếp theo, thêm cấu hình SSL vào ghost virtualhost bằng cách chỉnh sửa tệp"ghostblog.conf".
Dán tập lệnh cấu hình mới bên dưới:
Lưu tệp và thoát khỏi vim.
Kích hoạt mô-đun apache OpenSSL và khởi động lại apache:
Ghost với apache và SSL đã được cài đặt thành công.
Nodejs là một thời gian chạy javaScript mã nguồn mở được xây dựng trên công cụ JavaScript V8 của Chrome (v4) để phát triển các ứng dụng web phía máy chủ. Nodejs là một thời gian chạy đa nền tảng có thể chạy trên OS X, Microsoft Windows, Linux và FreeBSD. Nó cung cấp một kiến trúc hướng sự kiện và mô hình I/O không chặn giúp nó nhẹ và hiệu quả cho các ứng dụng web thời gian thực. Dự án Node.js đã được Ryan Dahl khởi động vào năm 2009 và đã đạt đến phiên bản 6.5.0 (LTS) tính đến thời điểm hiện tại.
Điều kiện tiên quyết
- Ubuntu 16.04
- quyền root
- Cài đặtNode.js
- Cài đặt Ghost
- Cấu hình Ghost
- Cài đặt Apache và thêm Ghost VirtualHost
- Bật SSL cho Ghost
Bước 1- Cài đặt Node.js trên Ubuntu
Đối với hướng dẫn này, chúng ta sẽ sử dụng nodejs v4.x. Nodejs có thể được cài đặt theo nhiều cách khác nhau như cài đặt từ nguồn hoặc cài đặt từ kho lưu trữ Ubuntu. Tôi sẽ sử dụng kho lưu trữ nodejs của nodesecure để cài đặt, nó chứa phần mềm cập nhật và sử dụng kho lưu trữ cho phép nó dễ dàng cập nhật node.js sau này.Cài đặt khóa kho lưu trữ nodesource bằng lệnh bên dưới:
Mã:
curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
Mã:
sudo echo 'deb https://deb.nodesource.com/node_4.x xenial main' > /etc/apt/sources.list.d/nodesource.list
sudo echo 'deb-src https://deb.nodesource.com/node_4.x xenial main' >> /etc/apt/sources.list.d/nodesource.list
Mã:
sudo apt-get update
Mã:
sudo apt-get install -y nodejs
Mã:
node --version
Mã:
npm --version
Bước 2 - Cài đặt Ghost Blog
Chúng ta sẽ cài ghost trong thư mục "/var/www/" và sử dụng phiên bản Ghost mới nhất. Vui lòng tạo một thư mục mới "www"trong /var và nhập nó với "cd":
Mã:
mkdir -p /var/www/
cd /var/www/
Mã:
wget https://ghost.org/zip/ghost-latest.zip
unzip -d ghostblog ghost-latest.zip
Sau đó, hãy đến thư mục ghostblog và cài đặt Ghost bằng lệnh npm:
Mã:
cd ghostblog/
sudo npm install --production
Bước 3 - Cấu hình Ghost
Vui lòng vào thư mục ghostblog rồi sao chép tệp mẫu cấu hình vào "config.js"
Mã:
cd /var/www/ghostblog/
cp config.example.js config.js
Mã:
useradd -d /var/www -s /bin/bash ghost
passwd ghost
Mã:
NHẬP MẬT KHẨU MỚI CHO NGƯỜI DÙNG ghost
-d = Định nghĩa thư mục home cho người dùng ghost trong /var/www/.
-s = Định nghĩa shell cho người dùng ghost.
Bây giờ hãy thay đổi chủ sở hữu của thư mục cài đặt ghost thành người dùng "ghost".
Mã:
chown -R ghost:ghost /var/www/ghostblog
Mã:
su - ghost
Mã:
cd ghostblog/
npm start --production
Mã:
curl -I localhost[I]:2368
[/I]
Bạn có thể thấy ghost đang chạy - HTTP/1.1 200 OK.
Chúng tôi sẽ chạy ghost như một dịch vụ để giúp chúng tôi khởi động ghost dễ dàng hơn. Vui lòng quay lại sudo/root user bằng cách nhập "exit" và tạo một tệp mới có tên là "ghost.service"trong thư mục "/lib/systemd/system/".
Mã:
cd /lib/systemd/system/
vim ghost.service
Mã:
[Unit]Description=ghostAfter=network.target[Service]Type=simple# Ghost installation DirectoryWorkingDirectory=/var/www/ghostblogUser=ghostGroup=ghostExecStart=/usr/bin/npm start --productionExecStop=/usr/bin/npm stop --productionRestart=alwaysSyslogIdentifier=Ghost[Install]WantedBy=multi-user.target
Mã:
systemctl daemon-reload
Mã:
systemctl enable ghost
systemctl start ghost
Mã:
netstat -plntu
Bước 4 - Cài đặt Apache và Ghost VirtualHost
Cài đặt apache bằng lệnh apt-get:
Mã:
sudo apt-get install apache2
Mã:
sudo cd /etc/apache2/sites-available/
sudo vim ghostblog.conf
Mã:
#Tên miền ServerName ghostblog.me ServerAlias www.ghostblog.me #Máy chủ proxy/gateway HTTP ProxyRequests tắt ProxyPass / http://127.0.0.1:2368/ ProxyPassReverse / http:/127.0.0.1:2368/
Kích hoạt mô-đun proxy HTTP trong apache bằng lệnh a2enmodnhư hiển thị bên dưới:
Mã:
sudo a2enmod proxy proxy_http
Mã:
sudo a2ensite ghostblog
sudo systemctl restart apache2
Mã:
sudo systemctl restart ghost
Bước 5 - Bật SSL cho Ghost
Để bật SSL trên apache, vui lòng đảm bảo thư viện OpenSSL được cài đặt trên hệ thống. Chúng tôi sẽ tạo khóa mới và tệp crt trong thư mục "/etc/apache2/certs". Đầu tiên, chúng ta tạo certs thư mục mới:
Mã:
sudo mkdir -p /etc/apache2/certs
Mã:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/certs/ghostblog.key -out /etc/apache2/certs/ghostblog.crt
Mã:
sudo cd /etc/apache2/certs/
sudo chmod 600 *
Mã:
sudo cd /etc/apache2/sites-available/
sudo vim ghostblog.conf
Mã:
ServerName ghostblog.me ServerAlias www.ghostblog.me # Buộc chuyển hướng http sang https vĩnh viễn / https://ghostblog.me/# Tắt ProxyRequests# ProxyPass / http://127.0.0.1:2368/# ProxyPassReverse / http:/127.0.0.1:2368/ ServerName ghostblog.me SSLEngine on SSLCertificateFile /etc/apache2/certs/ghostblog.crt SSLCertificateKeyFile /etc/apache2/certs/ghostblog.key ProxyPass / http://127.0.0.1:2368/ ProxyPassReverse / http:/127.0.0.1:2368/ ProxyPreserveHost On RequestHeader set X-Forwarded-Proto "https"
Kích hoạt mô-đun apache OpenSSL và khởi động lại apache:
Mã:
sudo a2enmod ssl headers
sudo systemctl restart apache2
Kiểm tra
Truy cập và bạn sẽ bị buộc phải Trang web HTTPS/SSL của blog của bạn.Ghost với apache và SSL đã được cài đặt thành công.