Help us understand the problem. What is going on with this article?

ConoHa VPS(CentOS7)+Flask+Nginx+uWSGIでWEBアプリを作ってみる(1)

More than 1 year has passed since last update.

1. はじめに

WEBアプリ開発初心者の備忘録です。

まずは,VPS上でPython3.6+Flaskを動かして,Flaskの開発用サーバで公開してみます。
下記を参考にしました。

2. VPSについて

ConoHa VPSのプランは下記の通りです。

  • メモリ 1GB/CPU 2Core
  • SSD 50GB

サーバ構築後,セキュリティ関係の初期設定をしますがここでは省略します。(下記参照)

ConohaにVPSを設置して、SSHログイン、ポート番号変更、rootログイン禁止までを30分で!

ちなみに,sshのポート番号がデフォの22のときは結構総当たり攻撃がありましたが,
22から変更したらなくなりました。(当然か)

3. ライブラリのインストール

Python3.6, Nginx, uWSGIをインストールします。

$ sudo yum install -y nginx
$ sudo yum install -y https://centos7.iuscommunity.org/ius-release.rpm
$ sudo yum install -y python36u python36u-libs python36u-devel python36u-pip
$ sudo yum groupinstall "Development Tools"
$ sudo yum install -y uwsgi

インストール後,必要であれば,/bin/以下にシンボリックリンク(Python3とか)を貼ります。

4. Python仮想環境の構築

venvで仮想環境を作ります。Flask関係のファイルはホームディレクトリ以下にappというディレクトリを作って,
まとめておくことにします。

$ cd
$ mkdir app
$ cd app
$ python3.6 -m venv env
$ source env/bin/activate
(env) $ pip3 install flask uwsgi
(env) $ deactivate

5. FlaskでHello World!

app以下にFlaskでHello World!するためのPythonコードを書きます。
コードのファイル名はapp.pyとします。

$ touch app.py
$ emacs app.py
app.py
from flask import Flask

app = Flask(__name__)

@app.route("/")
def index():
    return "Hello! shikao-yuzu page!"

if __name__ == "__main__":
    app.run(host="X.X.X.X" ,port=8080)

host="X.X.X.X"にはVPSのグローバルIPを入れます。

6. ポート開放

firewalldでTCPポート8080を開放します。

$ sudo firewall-cmd --permanent --add-port=8080/tcp
$ sudo firewall-cmd --reload

7. Flaskの開発用サーバ起動

Flask組み込みの開発用サーバを起動します。

http://X.X.X.X:8080
にアクセスして,"Hello! shikao-yuzu page!"と表示されたら成功です。

$ source env/bin/activate
(env) $ python3 app.py

なお,サーバは"Ctrl+C"で終了できます。

続く(かも)

shikao_yuzu
土木工学(学部)→気象・気候学(修士)→土木系CAEエンジニア(2013.4〜2020.2)→気象系SE(2020.4~).日立(茨城)→東京→札幌→横浜→川崎→大阪.気象予報士(第51回).鹿島アントラーズサポーター.
http://shikao-yuzu.tk
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした