Thứ tư, 28/08/2013 | 00:00 GMT+7

Cách bắt đầu với Jekyll trên VPS Ubuntu

Jekyll là một trình tạo trang tĩnh đơn giản. Nó đưa các trang vào trong Markdown, Dệt may, Chất lỏng, HTML và CSS và xuất ra các trang HTML tĩnh hoàn chỉnh. Jekyll hoạt động tốt với GitHub Pages , nhưng có một số hạn chế - ví dụ: nó không đặc biệt dễ làm việc với các plugin . Vì vậy, lưu trữ một trang web Jekyll trên VPS của bạn có thể là một ý tưởng hay. Làm như vậy là dễ dàng!


Trong hướng dẫn này, ta sẽ sử dụng những thứ sau:

Yêu cầu cài đặt


Trên VPS của bạn :

  1. Cài đặt VPS Ubuntu
  2. Cài đặt và bắt đầu nginx

Tại local :

Nếu bạn chưa có, hãy cài đặt Ruby và RubyGems. Cách tốt nhất để làm điều này là sử dụng Trình quản lý version Ruby (RVM) . Sử dụng lệnh từ trang chủ RVM (rvm.io), lệnh này sẽ giống như sau:

curl -L https://get.rvm.io | bash -s stable --ruby=2.0.0 

Làm theo bất kỳ dấu nhắc nào khác để cài đặt Ruby trên hệ thống. Sau khi nó được cài đặt, bạn có thể cài đặt các gem cần thiết:

gem install jekyll capistrano 

Tạo blog với Jekyll


Trang web của Jekyll có hướng dẫn bắt đầu nhanh hướng dẫn bạn tạo một trang Jekyll đơn giản và phục vụ nó. Có rất nhiều chi tiết sử dụng ở đó. Ta sẽ bắt đầu bằng cách tạo một blog đơn giản. Chuyển vào folder bạn muốn làm việc và chạy:

jekyll new . cd myblog jekyll serve 

Bạn có thể thấy trang web của bạn đang chạy tại localhost: 4000 .

Điều hướng đến folder “myblog” và bạn sẽ thấy một vài folder . Cái ta quan tâm là _site ; cái này chứa trang web tĩnh được tạo bởi Jekyll, mà ta sẽ triển khai trong bước tiếp theo.

Cài đặt blog để triển khai với Capistrano


Nếu trang web Jekyll của bạn vẫn đang chạy (sau khi chạy jekyll serve ), hãy thoát khỏi quá trình đó. Vẫn trong folder “myblog”, hãy chạy:

capify . 

Điều này tạo ra các file cần thiết để triển khai Capistrano. Capistrano là " phần mềm có kiến thức " cho rằng bạn sẽ triển khai qua SSH. Khi bạn chạy lệnh, nó phải được tạo một file tại config/deploy.rb ; mở nó và cập nhật nó giống như sau:

# replace this with your site's name set :application, "Blog" set :repository, '_site' set :scm, :none set :deploy_via, :copy set :copy_compression, :gzip set :use_sudo, false  # the name of the user that should be used for deployments on your VPS set :user, "deployer"  # the path to deploy to on your VPS set :deploy_to, "/home/#{user}/blog"  # the ip address of your VPS role :web, "123.456.789.10"  before 'deploy:update', 'deploy:update_jekyll'  namespace :deploy do   [:start, :stop, :restart, :finalize_update].each do |t|     desc "#{t} task is a no-op with jekyll"     task t, :roles => :app do ; end   end    desc 'Run jekyll to update site before uploading'   task :update_jekyll do     # clear existing _site     # build site using jekyll     # remove Capistrano stuff from build     %x(rm -rf _site/* && jekyll build && rm _site/Capfile && rm -rf _site/config)   end end 

Bước tiếp theo là cài đặt VPS với cấu trúc folder theo yêu cầu của Capistrano. Bạn chỉ cần làm điều này một lần:

cap deploy:setup 

Cuối cùng, triển khai VPS của bạn:

cap deploy 

Nhiệm vụ triển khai của Capistrano sẽ:

  1. Xóa mọi trang web Jekyll tĩnh hiện có
  2. Xây dựng trang web Jekyll của bạn
  3. Dọn dẹp các file không cần thiết có trong bản dựng (chủ yếu là các file có nắp)
  4. Sao chép nội dung của trang web tĩnh của bạn, qua SFTP, vào VPS của bạn, thả chúng vào folder được chỉ định

Lưu trữ Blog của bạn với nginx

Quay lại VPS của bạn, chuyển sang folder có sẵn của các trang web nginx. Điều này thường được đặt tại:

cd /etc/nginx/sites-available 

Nếu bạn chạy ls trong folder này, bạn sẽ (ít nhất) thấy một file có tên "mặc định". Nếu bạn thích, bạn có thể sử dụng cái này làm mẫu:

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/example.com 

Đối với một trang web tĩnh, bạn không cần cấu hình nhiều. Cấu hình sau sẽ hoạt động ở mức tối thiểu:

server {   # listen on http (port 80)   # remove the "default_server" if you are running multiple sites off the same VPS   listen 80 default_server;    # the IP address of your VPS   server_name 123.456.789.10;   # see http://nginx.org/en/docs/http/server_names.html for options   # to use your own domain, point a DNS A record at this IP address   # and set the server name to (eg.) "blog.example.com"    # the path you deployed to. this should match whatever was in your   # Capistrano deploy file, with "/current" appended to the end   # (Capistrano symlinks to this to your current site)   root /home/deployer/blog/current;   index index.html    # how long should static files be cached for, see http://nginx.org/en/docs/http/ngx_http_headers_module.html for options.   expires 1d; } 

Ngoài ra, bạn có thể sử dụng ý chính này để lấy những thứ cần thiết. Dù bằng cách nào, hãy tạo một file mới trong folder này với cấu hình nginx mong muốn của bạn. Sau khi tạo xong, bạn cần tạo một softlink cho nó từ folder hỗ trợ các trang web:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com 

Sử dụng softlink nghĩa là dễ dàng đưa một trang web offline bằng cách xóa softlink mà không cần chạm vào file cấu hình root .

Tiếp theo, đảm bảo nginx có thể đọc các file mà nó sẽ phân phát. Nginx cần có khả năng đọc và thực thi mọi thứ trong folder mà nó đang lưu trữ và tất cả các folder mẹ. Để thực hiện việc này, ta sẽ cấp quyền sở hữu folder của trang web cho user nginx, www-data . Sau đó, ta sẽ cung cấp cho nó quyền đọc và thực thi quyền truy cập vào các folder cần thiết:

sudo chown -R www-data:www-data /home/deployer/blog/current sudo chmod 755 -R /home 

Cuối cùng, bạn nên yêu cầu nginx cập nhật cấu hình của nó. Bạn có thể làm điều này bằng cách:

# tests the nginx configuration; if this is not successful you should fix any errors raised sudo nginx -t  # safely restarts the nginx worker sudo kill -HUP `cat /var/run/nginx.pid` 

Ngoài ra, bạn có thể khởi động lại nginx. Nhưng lựa chọn trên thường được coi là an toàn hơn.

sudo service nginx restart 

Thử nghiệm và tiến lên


Điều hướng đến địa chỉ IP của VPS của bạn. Bạn sẽ thấy trang chủ của trang Jekyll của bạn !

Cái gì tiếp theo? Đến đây bạn có thể bắt đầu viết nội dung và tùy chỉnh trang web của bạn với Jekyll. Khi nào bạn có nội dung mới mà bạn muốn đưa lên mạng, điều đó dễ dàng như thực hiện cap deploy .


Tags:

Các tin liên quan

Cách sử dụng Dig, Whois và Ping trên Ubuntu VPS để truy vấn dữ liệu DNS
2013-08-23
Cách thiết lập Sass trên VPS của bạn đang chạy trên Ubuntu
2013-08-14
Cách cài đặt Cassandra và chạy một cụm node đơn trên VPS Ubuntu
2013-08-08
Cách cài đặt CouchDB từ nguồn trên VPS Ubuntu 13.04 x64
2013-08-06
Cách quản lý gói trong Ubuntu và Debian với Apt-Get & Apt-Cache
2013-08-06
Bắt đầu với LXC trên VPS Ubuntu 13.04
2013-08-06
Cách cài đặt Go and Revel trên VPS Ubuntu 13.04 x64
2013-07-31
Cách thiết lập chứng chỉ SSL với PhpMyAdmin trên VPS Ubuntu 12.04
2013-07-30
Cách cài đặt và quản lý trình giám sát trên Ubuntu và VPS Debian
2013-07-23
Cách tạo ứng dụng Node.js bằng Sails.js trên VPS Ubuntu
2013-07-16