UbuntuのApacheでFlaskを用いてPython3でWebアプリケーションを作る
今PHPで作ってるCHUNITHM Rate CalculatorをPython3で作ってみようとしたときの備忘録
環境
- Ubuntu-Server:16.04(64bit)
- Python:3.5.2
前準備
$ sudo apt update
$ sudo apt upgrade
Flaskのインストール
$ sudo apt install python3-dev python3-pip
$ sudo pip3 install Flask
Flaskのインストール中に
locale.Error: unsupported locale setting
こんなエラーが出たら、
$ export LC_ALL=C
を打ってもう一度実行してみる
Apache2とApacheでPython3を使えるようにするmodのインストール
$ sudo apt install apache2
$ sudo apt install libapache2-mod-wsgi-py3
ファイル構成
root@Ubuntu:/var/www$ tree -l
.
└── flask
├── flask_script.py
└── flask_app.wsgi
1 directories, 2 files
アプリケーションの作成
#flask_script.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
.wsgiファイルの作成
#flask_app.wsgi
import os,sys
sys.path.insert(0, os.path.abspath(os.path.dirname(__file__)))
from flask_script import app as application
Apacheの設定
$ sudo vim /etc/apache2/sites-available/flask.conf
Flaskの設定ファイルつくる
#flask.conf
<VirtualHost *:80>
ServerName localhost
WSGIDaemonProcess flask_app user=www-data group=www-data threads=5
WSGIScriptAlias / /var/www/flask/flask_app.wsgi
<Directory /var/www/flask>
WSGIProcessGroup flask_app
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
このように設定する。
この時アプリケーションのディレクトリ以下が、www-data
がオーナーになるように所有者を変えておく。
$ sudo chown -R www-data:www-data /var/www/flask/
$ sudo ln -s /etc/apache2/sites-available/flask.conf /etc/apache2/sites-enabled/flask.conf # Apacheに読み込んでもらうために、シンボリックリンクを作成する。
$ sudo rm /etc/apache2/sites-enabled/000-default.conf # デフォルトの設定ファイルを読み込まれないようにする
Apacheを再起動
$ sudo apachectl restart
もし、再起動の時に
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using localhost Set the 'ServerName' directive globally to suppress this message
というエラーが発生したら、
$ sudo echo ServerName $HOSTNAME > /etc/apache2/conf-available/fqdn.conf
$ sudo a2enconf fqdn
と打ち込んで、もう一度再起動する
$ sudo apachectl restart
エラーが出なかったら、http://localhost
にアクセスしてみてHello World!
と表示されれば成功
ファイルを変更した際はApacheを再起動しないといけないよう?