Thứ tư, 14/01/2015 | 00:00 GMT+7

Cách triển khai ứng dụng DocPad trên Ubuntu 14.04

Trong hướng dẫn này, ta sẽ tìm hiểu cách triển khai một ứng dụng được tạo bằng DocPad sang hình ảnh Ubuntu 14.04 chuẩn 64-bit trên DigitalOcean. DocPad là một trình tạo trang web tĩnh được cung cấp bởi Node.js được dùng một mình hoặc cùng với ứng dụng Node.js để thúc đẩy nội dung trang web .

Sau khi đọc hướng dẫn này, bạn có thể phục vụ DocPad trên cổng 80 với quyền là user không phải root và đảm bảo nếu ứng dụng DocPad của bạn gặp sự cố, nó sẽ tự động khởi động lại.

Yêu cầu

Trước khi bắt đầu, bạn cần các thành phần sau :

  • Ubuntu 14.04 Server
  • Tạo user có quyền sudo, bạn sẽ sử dụng quyền này để cài đặt, cấu hình và chạy DocPad: Cách Thêm và Xóa User trên VPS Ubuntu 14.04 . Trong hướng dẫn này, ta sẽ gọi user này là docpad

Bạn nên làm mọi thứ trong hướng dẫn này với quyền là user docpad .

Bước 1 - Cài đặt Git, Node.js và NPM

Trong phần này, ta sẽ cài đặt các yêu cầu cho DocPad.

Đảm bảo danh sách gói của server của bạn được cập nhật:

sudo apt-get update 

Cài đặt Git , cho phép bạn triển khai ứng dụng DocPad mặc định hoặc ứng dụng tùy chỉnh của bạn từ repository Git.

sudo apt-get install git 

Cài đặt Node.js làm web server của bạn:

sudo apt-get install nodejs 

Lưu ý ta đang cài đặt nodejs thay vì node .

Node.js bây giờ sẽ có sẵn từ dòng lệnh với lệnh nodejs .

Ta cũng muốn nó có sẵn cho ta với nút lệnh. Để làm được điều đó, ta có thể tạo một softlink từ nút tới Node.js. Điều này là bắt buộc đảm bảo rằng ứng dụng DocPad của bạn có thể download đúng cách tất cả các phụ thuộc plugin của nó, vì một số trong số chúng gọi nút :

sudo ln -s /usr/bin/nodejs /usr/bin/node 

Để biết thêm thông tin và các cách cài đặt Node.js thay thế, hãy xem bài viết Cách cài đặt Node.js trên server Ubuntu 14.04 .

Ta cần cài đặt giao diện dòng lệnh cho trình quản lý gói cho Node để download các phụ thuộc Node.js của ta :

sudo apt-get install npm 

Bước 2 - Liên kết Node.js với Cổng 80

Ta muốn ứng dụng của bạn có thể truy cập được trên cổng 80. Theo mặc định, các ứng dụng DocPad chạy trên cổng 9778. Trong bước này, ta sẽ liên kết Node.js với cổng 80 và trong bước sau, ta sẽ cấu hình ứng dụng DocPad của bạn để chạy trên cổng 80 là tốt. Bằng cách này, ta có thể truy cập trang web của bạn từ http://example.com thay vì http://example.com:9778 .

Để liên kết Node.js với cổng 80, trước tiên hãy đảm bảo libcap2-bin đã được cài đặt:

sudo apt-get install libcap2-bin 

Trên hầu hết các hệ thống, điều này đã được cài đặt. Sau đó, liên kết Node.js với cổng 80:

sudo setcap cap_net_bind_service=+ep /usr/bin/nodejs 

Ở phần sau của hướng dẫn, ta sẽ cấu hình ứng dụng DocPad để sử dụng cổng 80.

Bước 3 - Cài đặt DocPad

Tiếp theo, ta sẽ sử dụng NPM để cài đặt DocPad.

sudo npm install -g docpad 

Xóa quyền trong thư mục chính của user docpad , vì ta đã sử dụng sudo để cài đặt DocPad:

sudo chown -R docpad:docpad ~ 

Nếu bạn chọn một user khác để chạy DocPad, hãy thay thế user và group bằng tên user của bạn .

Bước 4 - Tạo ứng dụng DocPad của bạn

Trong phần này, ta sẽ cài đặt ứng dụng DocPad của bạn trên server . Bạn có thể sử dụng một dự án hiện có từ repository Git hoặc tạo một ứng dụng thử nghiệm mới từ đầu.

Tạo một folder cho dự án của bạn. Nó có thể được gọi là bất cứ thứ gì, nhưng trong trường hợp này ta sẽ sử dụng docpad_test . Sau đó chuyển vào folder đó.

mkdir ~/docpad_test cd ~/docpad_test 

Bước 4a - Download ứng dụng DocPad hiện có và các phụ thuộc của nó

Nếu bạn có một ứng dụng DocPad hiện có, hãy làm theo các bước sau để triển khai nó vào server của bạn. Đầu tiên, ta cần download ứng dụng đã hoàn chỉnh của bạn từ repository Git của nó:

git clone path_to_git_repository 

Tiếp theo, ta cần download tất cả các phụ thuộc của ứng dụng DocPad của ta :

npm install 

Nếu ứng dụng của bạn cũng sử dụng các thành phần Bower, hãy chạy:

bower install 

Bước 4b - Tạo ứng dụng DocPad mới

Nếu bạn chưa có ứng dụng DocPad, bạn có thể tạo một ứng dụng mới. Trong folder ứng dụng, khởi tạo ứng dụng DocPad mới:

docpad run 

Nếu đây là lần đầu tiên bạn chạy DocPad, hãy trả lời các câu hỏi đối thoại tương tác như mong muốn:

Before we continue, have you read and agree to DocPad's Terms of Service (http://bevry.me/tos) and Privacy Policy (http://bevry.me/privacy)? [Y/n] y  Would you like to subscribe to our newsletter and stay up to date with the latest releases and tutorials? [Y/n] n 

Sau đó, ta sẽ được yêu cầu chọn một khung để tạo nền tảng cho ứng dụng của ta . Hãy chọn Twitter Bootstrap (tùy chọn 4 ) vì nó tạo ra một trang web mẫu cho ta và ta có thể thấy ngay thứ gì đó hoạt động trong trình duyệt.

4 

Bây giờ, hãy đợi vài phút trong khi DocPad xây dựng và chạy ứng dụng của bạn. Bạn sẽ thấy kết quả này khi kết thúc triển khai thành công:

info: Installed the skeleton succesfully notice: Shutting down the global DocPad, and starting up the local info: Welcome to DocPad v6.63.8 (local installation: /home/docpad/docpad_test/node_modules/docpad) info: Contribute: http://docpad.org/docs/contribute info: Plugins: cleanurls, coffeescript, downloader, eco, less, livereload, marked, partials, related, stylus, text info: Environment: development info: DocPad listening to http://0.0.0.0:9778/ on directory /home/docpad/docpad_test/out info: LiveReload listening to new socket on channel /docpad-livereload info: Generating... info: Generated 168/173 files in 15.012 seconds info: Watching setup starting... info: Watching setup info: The action completed successfully 

Quá trình sẽ tiếp tục chạy trong cửa sổ terminal của bạn.

Bây giờ hãy truy cập địa chỉ IP hoặc domain của bạn tại cổng 9778:

  • http://example.com:9778

Bạn sẽ thấy trang chủ DocPad mặc định:

Trang chủ DocPad mặc định

Ta sẽ cập nhật ứng dụng để chạy trên cổng 80 trong bước tiếp theo để user không cần chỉ ra cổng khi truy cập domain của bạn.

Bạn có thể dừng server DocPad ngay bây giờ bằng cách nhấn CTRL + C.

Nếu bạn muốn xem các file có ls trong folder ứng dụng, bạn sẽ thấy các file và folder được tạo sau với khung Bootstrap:

docpad.coffee  LICENSE.md  node_modules  out  package.json  Procfile  README.md  src 

Mã nguồn của ứng dụng của ta ở trong src .

Bước 5 - Cấu hình DocPad để chạy trên cổng 80

Bạn cần thêm dòng sau vào file cấu hình docpad.coffee của bạn để DocPad sẽ chạy ứng dụng của bạn trên cổng 80. Đầu tiên, hãy mở file để chỉnh sửa:

nano ~/docpad_test/docpad.coffee 

Thêm port: 80 dòng port: 80 trong khối docpadConfig = {} . Dòng cổng cần phải ở mức đầu tiên trong khối. Bạn có thể thêm nó làm dòng đầu tiên sau docpadConfig = { .

docpadConfig = {  . . .      port: 80  . . .  } 

Đảm bảo rằng bạn đang ở trong folder ứng dụng của bạn . Chạy DocPad bằng lệnh sau. Nếu đây là lần đầu tiên bạn chạy DocPad trên server , hãy chấp nhận các điều khoản và điều kiện và đảm bảo ứng dụng của bạn có thể chạy:

./node_modules/docpad/bin/docpad run 

Sau khi ứng dụng chạy thành công, bạn có thể chuyển đến URL trang web của bạn và xem trang web trong trình duyệt.

Nếu bạn không thể tìm thấy nó, hãy thử chuyển đến http://example.com:9778 . Nếu bạn thấy nó ở đó, đó là do cổng của bạn không được cấu hình đúng trong file docpad.coffee của bạn. Cổng cần được chỉ định ở cấp đầu tiên của đối tượng docpadConfig .

Bây giờ hãy tắt quá trình bằng cách nhấn Ctrl + C. Trong phần tiếp theo, ta sẽ biến ứng dụng trở thành một dịch vụ, thay vì phải khởi động nó từ dòng lệnh mỗi lần.

Bước 6 - Chạy DocPad như một dịch vụ với Upstart

Trong bước cuối cùng này, ta sẽ tạo một tập lệnh Khởi động cho ứng dụng DocPad. Điều này sẽ cho phép bạn chạy các lệnh bắt đầu, dừng, khởi động lại, v.v. cho ứng dụng từ dòng lệnh. Nó sẽ chạy ở chế độ nền của server của bạn, do đó bạn không cần phải mở kết nối SSH. Ta cũng sẽ cấu hình hệ thống để tự động chạy lại ứng dụng nếu nó bị treo hoặc khi server của bạn khởi động lại.

Tạo tập lệnh Khởi động:

sudo nano /etc/init/docpad_test.conf 

Thêm các nội dung sau:

description "DocPad Test Application"  start on (local-filesystems and net-device-up IFACE=eth0) stop on runlevel [!12345]  # If the process quits unexpectedly trigger a respawn respawn  env HOME=/home/docpad/ chdir /home/docpad/docpad_test/  setuid docpad setgid docpad  exec /home/docpad/docpad_test/node_modules/docpad/bin/docpad run 
  • description : Nhập mô tả cho dịch vụ này
  • viv env HOME : Thư mục chính của user DocPad của bạn
  • chdir : Thư mục root của ứng dụng
  • setuidsetgid : User DocPad của bạn ( group phải có cùng tên)
  • exec : Đường dẫn đầy đủ đến version DocPad mà ta muốn chạy; điều này giống với lệnh ta đã sử dụng để khởi động ứng dụng trước đó, ngoại trừ việc nó sử dụng đường dẫn đầy đủ

Để biết thêm về Upstart, vui lòng xem bài viết này .

Khởi động ứng dụng của bạn từ dòng lệnh. Nếu bạn gọi file đó không phải là docpad_test .conf bạn nên sử dụng tên dịch vụ thích hợp:

sudo service docpad_test start 

Chờ khoảng 30 giây để ứng dụng DocPad của bạn tạo; thời gian này sẽ thay đổi tùy thuộc vào kích thước ứng dụng của bạn và sẽ mất khoảng thời gian như khi bạn chạy nó theo cách thủ công với ./node_modules/docpad/bin/docpad run .

Sau khi đợi vài giây, hãy chuyển đến domain hoặc địa chỉ IP trong trình duyệt của bạn. Bạn sẽ thấy trang web do DocPad tạo ra.

Bạn đã hoàn tất! Nếu bạn muốn, hãy sudo reboot cho server của bạn và đảm bảo ứng dụng tự động backup .

Kết luận

Bây giờ, bạn có thể tạo một ứng dụng DocPad mới hoặc sao chép một ứng dụng hiện có, triển khai nó vào server Ubuntu của bạn và có thể truy cập nó tại domain của bạn.

Để bắt đầu xây dựng trang web với DocPad, hãy xem tài liệu .


Tags:

Các tin liên quan

Cách tạo một Playbook Ansible để tự động cài đặt Drupal trên Ubuntu 14.04
2014-12-23
Cách cài đặt Thư viện ảnh Piwigo trên Ubuntu 14.04
2014-12-18
Cách cài đặt Hệ thống thông tin sinh viên SchoolTool trên Ubuntu 14.04
2014-12-18
Cách thiết lập ứng dụng Node.js để sản xuất trên Ubuntu 14.04
2014-12-03
Cách cài đặt và cấu hình PowerDNS với MariaDB Backend trên Ubuntu 14.04
2014-12-02
Cách cài đặt và cấu hình Magento trên Ubuntu 14.04
2014-12-02
Cách cài đặt MEAN.JS Stack trên server Ubuntu 14.04
2014-11-26
Cách tăng tốc trang web Drupal 7 của bạn với Varnish 4 trên Ubuntu 14.04 và Debian 7
2014-11-17
Cách nâng cấp Ubuntu 12.04 LTS lên Ubuntu 14.04 LTS
2014-11-17
Các bước được đề xuất bổ sung cho server Ubuntu 14.04 mới
2014-11-04