LoginSignup
6

More than 3 years have passed since last update.

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

Posted at

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"で終了できます。

続く(かも)

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6