WebアプリケーションをPythonベースのDjangoを利用して作成したので,その時のインストールと起動のメモ.
環境: Amazon EC2 Ubuntu 14.04, nginx, mysql, python3
// python3.4のインストール
apt-get install python3
// pipのインストール
wget https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py
// Djangoのインストール
sudo pip install Django
// Djangoのインストールの確認.
python3
import django
// gunicornをインストール
sudo pip install gunicorn
sudo chmon +x django-admin.py
// mysiteというプロジェクトを作成してみる
django-admin.py startproject mysite
nginxの/etc/nginx/site-availableの設定ファイルの最初に以下を追加
upstream django {
server 127.0.0.1:9000;
}
server {
listen 80;
server_name cgi.atsuhiro-me.net;
root /path to root;
access_log /path to log;
error_log /path to log;
location / {
proxy_pass http://django;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
// gunicornの実行.
gunicorn --workers=1 --bind=127.0.0.1:9000 mysite.wsgi:application
これでブラウザからcgi.atsuhiro-me.netにアクセスすれば,Djangoのページが表示されるはず.nginxで502 Bad Gatewayが表示されたら,gunicornが正常に実行できていないか,nginxがgunicornを認識していないなどが考えられる.
次に,Python3にMySQL Connectorをインストールする.http://dev.mysql.com/downloads/connector/よりPython用のがダウンロードできる.mysql-connector-python_1.2.3のplatform independentをダウンロードし,以下のコマンドにてインストールする.バイナリだとpython2にインストールされてしまうので,明示的にpython3にインストールする必要がある.
cd mysql-connector-python-1.2.3
sudo python3 setup.py install
phpmyadminなどのツールでMySQLに新しいデータベースを作成する.次にDjangoのプロジェクトのsettings.pyのDATABASEを以下のように編集する.
DATABASES = {
"default": {
"ENGINE": "mysql.connector.django",
"NAME": "Dj-mysite",
"USER": "Dj-mysite",
"PASSWORD": "xxx",
"HOST": ""
}
}
これでMySQLにログインできるようになったので,プロジェクトのmanage.pyがあるディレクトリに移動し,
python3 manage.py syncdb
を実行する.するとデータベースの初期設定が完了する.
有用なリンク