Server version: Apache/2.4.37 (centos)
Server built: Dec 23 2019 20:45:34
/var/www
で、djangoのプロジェクトを作る。
/var/www/kingyo
を作った。
mod_wsgiをインストール
dnf install python3-mod_wsgi
/usr/lib64/python3.6/site-packages/mod_wsgi/server
にある
mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so
を
/etc/httpd/modules
にコピーする。
/etc/httpd/conf.d
に
django.conf
を作る。
# cat django.conf
LoadModule wsgi_module modules/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so
WSGIScriptAlias / /var/www/kingyo/kingyo/wsgi.py
WSGIPythonPath /var/www/kingyo/
<Directory /var/www/kingyo/kingyo>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
/var/www/kingyo
に
wsgi.py
を作る。
# cat wsgi.py
#!/usr/bin/python
#coding:utf-8
import os
import sys
from django.core.wsgi import get_wsgi_application
sys.path.append("/var/www/kingyo")
sys.path.append("/var/www/kingyo/kingyo")
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "kingyo.settings")
application = get_wsgi_application()
apache再起動
これでapacheのデフォルトサイトがdjangoで作ったサイトになる。
この時、2つほど問題が
1.管理ページにアクセスできない
2.1を解決した後、管理ページのcssが読み込まれない
1.の解決
djangoで作ったプロジェクトフォルダ、dq.sqlsite3、のownerをapacheに変える
2.の解決
settings.py
に以下を追記
STATIC_ROOT = os.path.join(BASE_DIR, "static")
下記を実行
python manage.py collectstatic
/etc/httpd/conf/httpd.conf
にaliasを追加
Alias /static/ /var/www/kingyo/static/
<Directory /var/www/kingyo/static>
Require all granted
</Directory>
apacheをリスタート
なかなか認証にたどりつけない....
が、この管理サイトというものがすでにpython+djangoで認証しているのである。
これに一般ユーザを追加すればよいのだ。
そしてdjangoはさっきちらっとでてきたが、デフォルトでSQLiteを使っている。
つまり上記の設定により Apache + python + SQLite が動いているのだ。
そこでWSGIという仕組みが使われている。
dbは好きなものに変更でき、postgresqlも使える。