/ Dev Tools

Cài đặt máy chủ Debian cho Python website

Bài này rõ ràng là một tutorial, sẽ giúp bạn cài đặt những thứ cần thiết nhất để chạy một website viết bằng Python, Node.JS hoặc Java, Scala… Nếu mọi chuyện thuận lợi, tôi có thể cài máy chủ chỉ trong 15 phút.

Tôi thích Debian hơn Ubuntu hay CentOS. Đây thuần túy là về mặt cảm tính chứ cũng không hẳn là cái nào hơn được cái nào một cách rõ ràng.

Công Tác Chuẩn Bị

Trước hết bạn phải có quyền root truy cập bằng SSH vào máy chủ. Bạn có thể mua VPS tại DigitalOcean, RamNode, Vultr hoặc thuê bare metal server (dedicated) tại OVH.

Lúc mua xong, bạn sẽ được lựa chọn để cài đặt OS. Hãy chọn Debian 8 Jessie hoặc Debian 7 Wheezy. Hiện đã có bản Debian 9 nhưng chưa stable không nên xài.

Để tiện edit files, bạn có thể dùng thêm công cụ upload FTP như Transmit, Coda hay FileZilla. Pro hơn một chút thì bạn có thể cài vim trước để dùng editor này. Mặc định Debian chỉ cung cấp vinano.

Cài Đặt Thiết Yếu

Bạn có thể tạo một file essentials.sh có nội dung như sau:

Lưu ý: Bạn có thể thêm flag -y vào sau lệnh apt-get instal để bỏ qua màn hỏi Yes/No, ví dụ:

apt-get install -y libxml2-dev

Những câu lệnh trên là để cài những thư viện, chương trình hỗ trợ cho một ứng dụng Python thông thường. Nếu bạn cài thiếu cái gì đó, trong quá trình chạy web sẽ gặp những lỗi linh tinh. Lúc đó lại đi search thì rất mệt mỏi. Mớ thư viện này được tôi tích góp qua hàng tá dự án với vài chục lỗi khác nhau. Cứ yên tâm, thà thừa còn hơn là thiếu.

chmod +x essentials.sh
./essentials.sh

Cài Đặt Chương Trình Bổ Trợ

Tùy theo mỗi dự án mà có yêu cầu phầm mềm khác nhau. Bạn hãy đọc các câu lệnh có trong snippet sau. Cái nào cần dùng thì cài đặt, không cần theo thứ tự.

Lưu ý: Các chương trình có thể đã có phiên bản mới hơn, nếu không có gì thay đổi quá lớn thì bạn có thể chọn nâng lên version mới nhất.

Cũng có thể viết một file shell bash để cài một lần cho nhanh cũng được, tùy vào ý thích của bạn.

Quản Lý File, Thư Mục

Thực ra phần này cũng không hẳn là hướng dẫn cài đặt mà như một loại kinh nghiệm tôi đúc kết được.

Tôi sẽ tạo một thư mục tên là webapps tại /home/username/. Mã nguồn của những website sẽ được tôi nhét hết vào đó, mỗi web sẽ là một thư mục.

Bạn có thể dùng nginx làm proxy, nếu vậy hãy include một dòng như sau vào nginx.conf:

include "/home/*/nginx-sites/*.conf"

Với cấu hình như vậy, bạn có thể thêm bất cứ website nào vào mỗi thư mục home của mỗi user.

Quản Lý Process

Tôi có xu hướng dùng supervisord để chạy mọi background process (daemon). Đây là một chương trình quản lý process cực mạnh và phổ biến. Bạn cứ đọc document của nó thì sẽ hiểu ra vấn đề. Tôi khuyên dùng cái này để đơn giản hóa mọi thứ.

Một điểm cần lưu ý là tại thời điểm viết bài, supervisord chưa hỗ trợ python3 một cách ổn định. Vì vậy bạn cứ cài nó vào python2.7. Thực ra việc cài ở đâu không quan trọng lắm, nhưng tôi vẫn phải nói vì nhiều bạn có cái tật "ham phiên bản mới".

Okay, như vậy là đã hoàn thành cài đặt một máy chủ mới toanh cho dự án của mình. Chúc một ngày làm việc hiệu quả!

Xem thêm: https://gist.github.com/anhtran/07f1c7f45ec0d58d09e1