Django を CentOS7で動かす
Django を CentOS7 で動かす最低限メモ
これまで、CentOS6 やら、AWSやらでDjangoの設定を行ってきた が、CentOS7上に、なるべく簡単、最低限で(手抜き)で環境を作りたい。
1.EPEL のインストール
以下のサイトで、最新のバージョンを確認し、rpm でインストール
http://www.liquidweb.com/kb/how-to-install-pip-on-centos-7/
http://dl.fedoraproject.org/pub/epel/7/x86_64/e/ でバージョンを確認
rpm -iUvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-6.noarch.rpm
yum を更新しておく
yum -y update
2.pip のインストール
これで、pip がyumからインストールできるようになる。pipが導入できれば、最近のPythonだと何とかなる感。
yum install python-pip
3.Djangoのインストール
ローカルでの動作確認バージョンに合わせてインストール。
CentOS6 のときは、デフォルトのPythonが、2.6 だったので、2.7のインストールとか面倒だったが、CentOS7 では、2.7 なのでそのまま利用する。
VirtualEnv 使ったほうが良いかもだが、今回は簡易。
pip install Django==1.9.6
4.mod_wsgi
apache と django をつなぐための mod_wsgi をインストール
http://www.unixmen.com/configure-django-with-apache-centos-7/
yum install mod_wsgi
django の設定ファイルを編集する
vi /etc/httpd/conf.d/django.conf
WSGIScriptAlias に、リクエストされたパス"/" を転送するパス "…wsgi.py" を指定。
WSGIPythonPath に、アプリケーションのルートを指定
https://docs.djangoproject.com/ja/1.9/howto/deployment/wsgi/modwsgi/
WSGIScriptAlias / /path/to/mysite.com/mysite/wsgi.py
WSGIPythonPath /path/to/mysite.com<Directory /path/to/mysite.com/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
5.ユーザーディレクトリに配置する場合、有効化
ここまでで、実行しても、ずーーーーーーと permission エラーになっていた。
結局、自分は、ユーザーディレクトリに、git から pull したDjangoアプリを置いていたのだが、
以下の設定を編集し、apache の UserDir を有効にする必要があった。
/etc/httpd/conf.d/userdir.conf
<IfModule mod_userdir.c> # # UserDir is disabled by default since it can confirm the presence # of a username on the system (depending on home directory # permissions). # UserDir enable # # To enable requests to /~user/ to serve the user's public_html # directory, remove the "UserDir disabled" line above, and uncomment # the following line instead: # #UserDir public_html </IfModule>
6.Webサーバーの再起動
systemctl restart httpd.service
以上。
動作確認とれた。
数時間、上記5.ではまったが、前に比べれば簡単になった。