Mezzanine、uWSGI、Nginxによる環境の構築(うろおぼえ)

(0 comments)

今回のブログの環境構築について、思い出しながらメモしてみる。私の環境なので、他人の役に立たない可能性が高いが。

サーバーはABLENETのVBS、Arch Linux、Nginx、MySQL(MariaDB)がインストールされている状態。また、Pythonのバージョンは3.6.5。python-pipをArch Linux のパッケージとしてArch Linuxのリポジトリからインストールしている。また、今回、ドキュメントルートは /home/web/blog/ に置くものとする。

1. 予め、MySQLのデータベースを作成しておく。

2. Mezzanine のインストール(今回は、こちらの都合でpyenvは使わず、sudo pip install  mezzanineでインストール。)。また、uwsgiも同様にpipでインストール。

3. ドキュメントルート上で、mezzanine プロジェクト(ここではmyprojectとする。)

$ cd /home/web/blog
$ mezzanine-project myproject

4. myproject というディレクトリが生成される。MySQLを使用可能にするために、myproject/myproject ディレクトリ内のlocal_settings.py を編集。10行目くらいからはじまる DATABASES の各項目を編集。

"ENGINE" : "django.db.backends.mysql" ,

その後のNAME は予め作成しておいたMySQLデータベースの名前、PASSWORD以下は、MySQLの設定のこと。また、その後のALLOWED_HOSTもlocalhostが参照できる値にしておく。( ALLOWED_HOST = ["*"] )

5. /home/web/blog/myproject/ ディレクトリに移動して、データベースのテーブル等を作成する。

$ cd /home/web/blog/myproject/
$ python manage.py createdb

6. mezzanine のstaticとtemplatesを/home/web/blog/myproject/ の下にコピーする。

$ python manage.py collectstatic
$ python manage.py collecttemplates

この操作によって、static内のcssや、templates内のbase.htmlが編集できるようになる。

7. /etc/nginx/nginx.conf の編集。今回は blog.conf という設定ファイルを作り、nginx.conf 内で include blog.conf という文を記述しておく。

 blog.confの例

# the upstream component nginx needs to connect to

upstream django {
    server unix:///home/web/blog/myproject/myproject.sock ; # for a file socket
    # server 127.0.0.1:8001; # for a web port socket (we'll use this first)
}


server {
        listen       80;
        server_name  blog.rago1975.net;

        charset utf-8;

	location / {
	    uwsgi_pass  django;
	    include uwsgi_params;
	}
        
	location  /static {
        	alias /home/web/blog/myproject/static ; # your Django project's static files - amend as required
		try_files $uri $uri/;
    	}

	#error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }

    }

8. uWSGIの設定。今回は、/home/web/blog/uwsgi/ というディレクトリを作成し、その中に、uwsgi.ini ファイルを設置する。

[uwsgi]
base = /home/web/blog/myproject
chdir = %(base)
module = myproject.wsgi
logto = uwsgi.log
pidfile = uwsgi.pid
socket = /home/web/blog/myproject/myproject.sock
master = True
chmod-socket = 666
buffer-size = 32768
vacuum = True

9. /home/web/blog/uwsgi/ 内でuwsgiを実行。

$ uwsgi --ini uwsgi.ini &

こんな感じだったと思う。(ちょっと端折り過ぎかな)

Comments

There are currently no comments

New Comment

コメントは管理者の承認の後、反映されます。(Comments are displayed after site administrator approval.)

required

required (not published)

optional

required