みーのぺーじ

みーが趣味でやっているPCやソフトウェアについて.Python, Javascript, Processing, Unityなど.

Djangoのインストールと起動

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

を実行する.するとデータベースの初期設定が完了する.

有用なリンク