普段ウェブ開発はLAMP環境を作ってSQLとかPHPで開発してたんですが、pythonベースのフレームワークであるDjangoを少しいじってみました。
↑この本をベースに開発しました。徐々に実装していくスタイルの本なので分かりやすかったです。
少し中身を変えて駆け出しエンジニアを登録できるプラットフォームを作ってみました。
http://kakedashi.link ←すいません。停止中です。
AWSのEC2を使ったのですが、本番環境はAPACHEと連携させなければならないそうです。
sudo python3 manage.py runserver 0:8000といった様にpythonファイルを実行していくのですが、開発環境のみ推奨とのことです。
APACHEとの連携は結構ハマってしまったので備忘でメモを載せたいと思います。
⓵インストール関係
sudo apt install apache2
sudo apt-get install apache2-dev
pip3 install mod_wsgi
②APACHEの設定
任意の.confファイルを/etc/apache2/sites-available/ に置きます。今回はdjango.confとします
まずmod_wsgi-express module-configコマンドでモジュールの場所を確認します。
django.confを下記の様に編集していきます。
LoadModule wsgi_module " mod_wsgi-express module-configで確認した~.soのpathを記述 ">
WSGIPythonHome "mod_wsgi-express module-configで確認したpathを記述 "
WSGIScriptAlias / wsgi.pyのpathを記述
WSGIPythonPath / djangoプロジェクトのpathを記述
WSGIPythonPath pythonのsite-packagesのpath※LoadModule wsgi_moduleの途中までを記述
<Directory wsgi.pyのpathを記述>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
Alias /static/ djangoプロジェクトのpath/static/
<Directory djangoプロジェクトのpath/static>
Require all granted
</Directory>
wsgi.pyはdjangoプロジェクト配下に格納してあるので下記記述を加えます。
import os
import sys ※追加
from django.core.wsgi import get_wsgi_application
sys.path.append("djangoプロジェクトのpath") ※追加
sys.path.append("wsgi.pyが格納してあるpath") ※追加
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'bookproject.settings')
あとはstatic関係の設定ですが
djangoプロジェクト配下のsetting.pyに下記を追加します。
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
そしてpython3 manage.py collectstaticコマンドにてCSSを反映
a2ensite django.confコマンドでAPACHEの設定を反映します。
現在の設定はa2dissite 000-defaultコマンドで停止させます。
sudo service apache2 restart にてリスタートさせます
これでアパッチの初期画面ではなくdjangoのアプリケーションが動いたはずです。
↑この初期画面からDjangoで開発した画面に繊維すれば成功です。
いかがでしたでしょうか、駆け出しエンジニアの方そうでない方も気が向いたら登録お願いします。