Triển khai Website với Openshift

Tạo Website với Openshift

Bài đầu tiên của blog này sẽ nói về chính những dịch vụ mà nó đang chạy trên đó.

Chú ý: Nội dung bài này chỉ thích hợp với những người đã có 1 chút kiến thức về các thành phần cũng như cách thức hoạt động của 1 website.

Website tồn tại trên mạng cũng giống như 1 ngôi nhà, nó cũng cần có 1 mảnh đất để xây dựng (Hosting), một số nhà (Domain) để gắn cho ngôi nhà của bạn.

Trước hết, nói về tên miền thì các bạn có thể bỏ 1 khoản phí nho nhỏ để tậu cho riêng mình 1 cái tên miền dạng .com, .net, .biz….  Hoặc có thể sử dụng các dịch vụ cung cấp tên miền miễn phí như dot.tk.

Sau khi đã có tấm bảng số nhà rồi, bước tiếp theo là xây dựng ngôi nhà để gắn cái bảng số đó lên.

Ở đây, tôi chọn nhà cung cấp dịch vụ Hosting là OpenShift. OpenShift thực chất không phải là một hosting thông thường, mà đó là một ứng dụng cho phép tạo ra 1 nền tảng Hosting công cộng, và chúng ta có thể tùy chỉnh phần mềm cài cho nó. Bạn có thể cài đặt một số ứng dụng tùy chọn như Python, PHP, Perl, Python, MySQL, PostgreSQL….. Mỗi ứng dụng này được hỗ trợ từ các package, các pakage này cũng như các gói phần mềm riêng lẻ trên Windows, bạn cần phần mềm nào thì bạn có thể cài phần mềm đó.

I. Công vụ cần có để bắt đầu việc triển khai website với Openshift

– Putty – http://www.putty.org/

– WinSCP –  http://winscp.net/

Bắt tay vào làm nào:

II. Đăng ký 1 tài khoản OpenShift

Vào trang chủ OpenShift tại https://www.openshift.com/ và nhấn Sign Up:

Register new Openshift account

Sau khi đăng ký xong, OpenShift sẽ gửi 1 email yêu cầu xác nhận vào địa chỉ email. Sau khi xác nhận qua đường link mà Openshift đã gửi qua email, vậy là chúng ta đã xong bước 1.

III. Tạo Application cho tài khoản OpenShift

Nhấn vào Creat your first application now

Creat new application

IV. Cài đặt Server

Cài đặt các dịch vụ cần thiết để cho 1 website có thể chạy được. Ở đây chúng ta dùng mã nguồn PHP nên sẽ cài gói ứng dụng PHP cho Host của mình.

Hiện tại chúng ta có 2 lựa chọn: PHP 5.3 và PHP 5.4. Chọn cái nào cũng được nhưng tại thời điểm hiện tại (khi bài viết này được viết) thì phiên bản PHP 5.4 chưa hỗ trợ mcrypt, vì thế nếu bạn dùng ứng dụng nào yêu cầu có mcrypt thì nên chọn phiên bản PHP 5.3.

PHP Installing

Trong mục Public Url ta điền vào tên của Application.

Trong mục Scalling có 2 lựa chọn: No Scalling và Scale with web traffic.

Tôi chọn Scale with web traffic để có thể tận dụng được tối đa tài nguyên hệ thống (hơi tham tí)

Choose option

Nhấn Creat Application để bắt đầu cài đặt.

Sau khi cài đặt xong, bạn vô đường link có dạng như Public Url ban đầu đã tạo ra, nếu như dưới đây là đã cài đặt PHP thành công.

PHP installed successfull

Quay lại trang chủ Application, nhấn vào Application của chúng ta mới tạo khi nãy, phía dưới có các tùy chọn cài đặt các hệ cơ sở dữ liệu:

Choose database manager

Ở đây tôi chọn MySQL.

MySQL installing

Chờ 1 lúc để hệ thống cài đặt, sau khi cài đặt MySQL xong sẽ như sau:

MySQL installed successfull

Bạn cần nhớ những thông tin về tài khoản, mật khẩu để sau chúng ta có thể kết nối vào cơ sở dữ liệu. Chú ý đây là thông tin cơ sở dữ liệu của bạn nên đừng có để ai biết.

 Vậy là xong công việc tạo “móng” cho ngôi nhà của chúng ta.

V. Kết nối FTP đến để upload dữ liệu

OpenShift cho phép chúng ta sử dụng kết nối FTP được mã hóa qua SSH có tên SFTP. Đầu tiên, chúng ta sẽ cập nhật Private Key (Key này dùng để chứng thực cũng như mã hóa đường truyền của bạn)

Để tạo ra Private Key thì chúng ta sử dụng chương trình có tên PUTTYGEN.EXE có trong bộ tool Putty lúc trước ta đã tải về. Chạy chương trình PUTTYGEN.EXE, nhấn vô nút Generate để bắt đầu quá trình tạo Key, bạn cần di chuyển chuột chạy vòng vòng trong cửa sổ chương trình để đẩy nhanh tiến độ tạo Key.

puttygen generate private key

Key tạo ra dạng như sau:

Private key

Để nguyên cửa sổ PUTTYGEN.EXE vừa xong, chúng ta quay lại giao diện Application của mình trên Openshift.

add private key

Bấm vào add an SSH public key to your account, sau đó copy nội dung Private Key  từ cửa sổ PUTTYGEN.EXE  và dán vào khung nhập dữ liệu trong Application của bạn. Sau đó nhấn Creat.

Tiếp theo là lưu lại Private Key bằng cách nhấn vào Save Private Key trong cửa sổ PUTTYGEN.EXE, bạn lưu file *.ppk này ở đâu đó tùy bạn miễn sao chỉ có bạn biết thôi.

OK, bây giờ mở WinSCP mà bạn download lúc trước về. Điền như dưới hình:

login infomation

Chúng ta sẽ không sử dụng password, mà sử dụng chính Private Key ban nãy tạo ra để đăng nhập. Nhấn vào Advanced… và trỏ đường dẫn tại mục Authentication đến file private key ban nãy tạo ra.

add private key

Nhấn OK để hoàn tất.

Nhấn Login để đăng nhập vào Host của bạn.

root directory

Sau khi đăng nhập xong, bên cửa sổ bên phải của bạn chính là thư mục trên Host, bạn vào theo đường dẫn /app-root/repo/php.

Đây chính là thư mục gốc (giống thư mục www hay htdocs), các bạn sẽ upload mã nguồn website của bạn lên đây.

Xong phần xây nhà, giờ là đi gắn biển cho ngôi nhà.

Các bạn đã có domain của riêng mình rồi thì đi tiếp, ai chưa có thì vui lòng đi đăng ký 1 cái nhé.

Openshift có cơ chế redirect, không cần Nameserver, vì thế cần xác định chính xác địa chỉ IP của máy chủ (cái này mỗi lần bạn tạo 1 Application sẽ có địa chỉ khác nhau)

Để tìm địa chỉ không khó, tôi sẽ ping đến địa chỉ mặc định của App (trong trường hợp này là server-thanhblog.rhcloud.com)

Ping to get IP

Đã có địa chỉ của server. Tôi sẽ dùng địa chỉ này để add vào A Record trong mục quản lý tên miền tại dịch vụ tên miền của tôi.

Add IP to domain

Quan trọng là 2 mục @ và www.

Giờ là công việc add domain đã trỏ IP vào Application trên Openshift.

Đăng nhập vào Openshift, chọn Application:

add alias

Điền domain của bạn vào ô Domain name, Nhấn Save.

Xong! Chờ 1 vài phút để hệ thống cập nhật tên miền của bạn.

Leave a Reply

7 Comments on "Triển khai Website với Openshift"

Notify of
avatar
Sort by:   newest | oldest | most voted
Hung Pham
Guest

cái này mình scale app vào toàn bị báo lỗi 503. Thành viết 1 bài hướng dẫn fix lỗi này đi, mình làm theo 1 số cách search trên mạng vẫn chưa sửa được hi

Trung Thành
Guest

Scale app này là 1 hình thức clone mã nguồn của bạn sang 1 gear nữa để san tải thông qua haproxy. Vì thế đôi lúc sẽ bị lỗi 503. Để giải quyết gọn nhất vụ 503 này mình nghĩ chỉ có dùng 1 gear là ổn thôi. Ngay cả site này của mình cũng vậy, cũng đôi khi bị 503 do gear chuyển về idle.
Bạn đã xem trong log php log và haproxy log chưa? Những lúc bị lỗi thì nó báo như thế nào?

Tuấn
Guest

Lỗi 503 khi chạy ở chế độ Scale app là do site bạn có lượt view quá ít. Mình thấy cứ khoảng 1-2 hôm mà không có ai vào là nó tự suppend dẫn đến lỗi 503. Tuy nhiên khi có người truy cập là nó lại wakeup lên bình thường.
Site bạn có lượt view thấp thì nên để No scaling, lúc nào nhiều rồi thì để Scale.

Nguyen Phuc
Guest

Bạn ơi, cho mình hỏi đoạn code file .htaccess để chuyển từ www về non-www trên openshift với, mình sử dụng các code được chia sẻ trên mạng đều không sử dụng được, thanks bạn

Trung Thành
Guest

Hiện tại mình đang dùng đoạn code sau:

//www to non-www
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1$1 [R=301,L]

Bạn có thể tham khảo thêm ở đây:
https://forums.openshift.com/domain-with-no-www-dns-question-is-that-possible

Nguyen Phuc
Guest

Thêm một vấn đề nữa là mình đã add domain vào Application rồi nhưng mình search trên google thì vẫn hiện cả domain mới lẫn sub domain application rhcloud, có cách nào để ẩn sub domain rhcloud trên search engine không? Thanks Ad

Trung Thành
Guest
domain của rhcloud là domain gốc của ứng dụng mình tạo trên OpenShift, vì thế ko bỏ nó đi được. Bạn đã dùng domain riêng rồi thì cứ SEO theo domain ấy. Ẩn trên kết quả tìm kiếm thì mình e là không thể. Bạn có thể chuyển hướng truy cập từ domain rhcloud về domain riêng theo hướng dẫn trong bài sau: http://www.theirishpenguin.com/2012/09/11/search-engine-friendly-redirects-for-custom-domains-on-openshift-using-a-htaccess-file.html Sau 1 khoảng thời gian thì các truy cập đến rhcloud sẽ chuyển qua domain mới của bạn. Có thể khi tìm kiếm vẫn ra domain rhcloud nhưng khi truy cập thì traffic chuyển về domain… Read more »
wpDiscuz