Thứ tư, 03/07/2013 | 00:00 GMT+7

Cách triển khai ứng dụng Flask trên VPS Ubuntu


Đánh dấu có nghĩa là gì

Các dòng mà nhu cầu user nhập vào hoặc tùy chỉnh sẽ được highlighed trong hướng dẫn này! Phần còn lại chủ yếu phải là copy-and-paste.

Giới thiệu

Flask là một micro-framework được viết bằng Python và dựa trên công cụ mẫu Werkzeug và Jinja2 để phát triển các ứng dụng web. Nó được thiết kế để phát triển các ứng dụng web một cách nhanh chóng.

Cài đặt

Bạn cần phải cài đặt Apache và chạy trên VPS của bạn . Nếu không phải như vậy, hãy làm theo Bước Một trong bài viết của ta về cách cài đặt LAMP trên Ubuntu .

Bước một— Cài đặt và bật mod_wsgi

WSGI (Web Server Gateway Interface) là giao diện giữa web server và ứng dụng web dành cho python. Mod_wsgi là một mod server Apache HTTP cho phép Apache phục vụ các ứng dụng Flask.

Mở terminal và gõ lệnh sau để cài đặt mod_wsgi:

sudo apt-get install libapache2-mod-wsgi python-dev

Để bật mod_wsgi, hãy chạy lệnh sau:

sudo a2enmod wsgi 

Bước hai - Tạo ứng dụng Flask

Trong bước này, ta sẽ tạo một ứng dụng flask . Ta sẽ đặt ứng dụng của bạn trong folder / var / www .

Sử dụng lệnh sau để di chuyển đến folder / var / www:

cd /var/www 

Tạo cấu trúc folder ứng dụng bằng mkdir như hình. Thay thế "FlaskApp" bằng tên bạn muốn đặt cho ứng dụng của bạn . Tạo folder ban đầu FlaskApp bằng cách đưa ra lệnh sau:

sudo mkdir FlaskApp

Di chuyển bên trong folder này bằng lệnh sau:

cd FlaskApp

Tạo một folder FlaskApp khác bằng cách đưa ra lệnh sau:

sudo mkdir FlaskApp

Sau đó, di chuyển bên trong folder này và tạo hai folder con có tên tĩnhmẫu bằng các lệnh sau:

cd FlaskApp
sudo mkdir static templates

Cấu trúc folder của bạn bây giờ sẽ giống như sau:

|----FlaskApp
|---------FlaskApp
|--------------static
|--------------templates

Bây giờ, hãy tạo file __init__.py sẽ chứa logic ứng dụng flask .

sudo nano __init__.py 

Thêm logic sau vào file :

from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
    return "Hello, I love Digital Ocean!"
if __name__ == "__main__":
    app.run()

Lưu và đóng file .

Bước 3 - Cài đặt bình

Cài đặt một môi trường ảo sẽ giữ cho ứng dụng và các phần phụ thuộc của nó bị cô lập khỏi hệ thống chính. Các thay đổi đối với nó sẽ không ảnh hưởng đến cấu hình hệ thống của server cloud .

Trong bước này, ta sẽ tạo một môi trường ảo cho ứng dụng flask của ta .

Ta sẽ sử dụng pip để cài đặt virtualenvFlask . Nếu pip chưa được cài đặt, hãy cài đặt nó trên Ubuntu thông qua apt-get.

sudo apt-get install python-pip 

Nếu virtualenv chưa được cài đặt, hãy sử dụng pip để cài đặt nó bằng lệnh sau:

sudo pip install virtualenv 

Đưa ra lệnh sau (trong đó venv là tên bạn muốn đặt cho môi trường tạm thời của bạn ):

sudo virtualenv venv

Bây giờ, cài đặt Flask trong môi trường đó bằng cách kích hoạt môi trường ảo bằng lệnh sau:

source venv/bin/activate 

Cung cấp lệnh này để cài đặt Flask bên trong:

sudo pip install Flask 

Tiếp theo, chạy lệnh sau để kiểm tra xem cài đặt có thành công và ứng dụng đang chạy hay không:

sudo python __init__.py 

Nó sẽ hiển thị “Đang chạy trên http: // localhost: 5000 /” hoặc "Đang chạy trên http://127.0.0.1:5000/". Nếu bạn thấy thông báo này, bạn đã cấu hình ứng dụng thành công.

Để hủy kích hoạt môi trường, hãy đưa ra lệnh sau:

deactivate

Bước 4 - Cấu hình và kích hoạt server ảo mới

Đưa ra lệnh sau trong terminal của bạn:

sudo nano /etc/apache2/sites-available/FlaskApp

LƯU Ý: Các version Ubuntu (13.10+) mới hơn yêu cầu phần mở rộng ".conf" cho các file VirtualHost - hãy chạy lệnh sau để thay thế:

sudo nano /etc/apache2/sites-available/FlaskApp.conf

Thêm các dòng mã sau vào file để cấu hình server ảo. Đảm bảo thay đổi Tên server thành domain của bạn hoặc địa chỉ IP của server cloud :

<VirtualHost *:80>
		ServerName mywebsite.com
		ServerAdmin admin@mywebsite.com
		WSGIScriptAlias / /var/www/FlaskApp/flaskapp.wsgi
		<Directory /var/www/FlaskApp/FlaskApp/>
			Order allow,deny
			Allow from all
		</Directory>
		Alias /static /var/www/FlaskApp/FlaskApp/static
		<Directory /var/www/FlaskApp/FlaskApp/static/>
			Order allow,deny
			Allow from all
		</Directory>
		ErrorLog ${APACHE_LOG_DIR}/error.log
		LogLevel warn
		CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Lưu và đóng file .

Bật server ảo bằng lệnh sau:

sudo a2ensite FlaskApp

Bước 5 - Tạo file .wsgi

Apache sử dụng file .wsgi để cung cấp ứng dụng Flask. Di chuyển đến folder / var / www / FlaskApp và tạo một file có tên flaskapp .wsgi bằng các lệnh sau:

cd /var/www/FlaskApp
sudo nano flaskapp.wsgi 

Thêm các dòng mã sau vào file flaskapp .wsgi:

#!/usr/bin/python
import sys
import logging
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0,"/var/www/FlaskApp/")

from FlaskApp import app as application
application.secret_key = 'Add your secret key'

Bây giờ cấu trúc folder của bạn sẽ giống như sau:

|--------FlaskApp
|----------------FlaskApp
|-----------------------static
|-----------------------templates
|-----------------------venv
|-----------------------__init__.py
|----------------flaskapp.wsgi

Bước 6 - Khởi động lại Apache

Khởi động lại Apache bằng lệnh sau để áp dụng các thay đổi:

sudo service apache2 restart 

Bạn có thể thấy một thông báo tương tự như sau:

Could not reliably determine the VPS's fully qualified domain name, using 127.0.0.1 for ServerName 

Thông báo này chỉ là một cảnh báo và bạn có thể truy cập server ảo của bạn mà không gặp sự cố nào khác. Để xem ứng dụng của bạn, hãy mở trình duyệt của bạn và chuyển đến domain hoặc địa chỉ IP mà bạn đã nhập trong cấu hình server ảo của bạn .

Bạn đã triển khai thành công một ứng dụng flask .

Bài báo gửi bởi: Kundan Singh

Tags:

Các tin liên quan

Cách cài đặt và sử dụng màn hình trên server cloud Ubuntu
2013-07-01
Cách thiết lập firewall với UFW trên server cloud Ubuntu và Debian
2013-06-25
Cách cài đặt Gerrit trên Ubuntu Cloud Server
2013-06-18
Cách cài đặt diễn đàn Vanilla trên Ubuntu 12.10
2013-06-14
Cách giới hạn mức sử dụng CPU trên Ubuntu 12.10
2013-06-08
Cách cài đặt diễn đàn phpBB® trên Ubuntu 12.10
2013-06-06
Cách cài đặt Simple Machines® trên Ubuntu 12.10
2013-06-06
Cách thiết lập Red5 trên Ubuntu 12.10
2013-05-31
Cách thiết lập Tiki Wiki trên Ubuntu 12.10
2013-05-31
Cách cài đặt Webmin trên Ubuntu Cloud Server
2013-05-07