回答編集履歴

3

文章の軽微修正

2017/06/03 03:12

投稿

miyahan
miyahan

スコア3095

test CHANGED
@@ -56,7 +56,7 @@
56
56
 
57
57
 
58
58
 
59
- mod_wsgi を使うという前提で質問に回答します。
59
+ やっと本題ですが、mod_wsgi を使うという前提で質問に回答します。
60
60
 
61
61
 
62
62
 
@@ -72,7 +72,7 @@
72
72
 
73
73
 
74
74
 
75
- 上記の mod_wsgi の設定例ではDjangoアプリを一般ユーザー(centosさん)権限で動かします。(これを daemon mode といいます)ですので、Apache が WSGIの設定ファイル `/home/centos/myapp/wsgi.py` にアクセスできるようにする必要があります。
75
+ Apache が WSGIの設定ファイル `/home/centos/myapp/wsgi.py` にアクセスできるようにする必要があります。
76
76
 
77
77
 
78
78
 
@@ -80,15 +80,15 @@
80
80
 
81
81
 
82
82
 
83
- 同様に `/home/centos/myapp` に読み込み・実行権限が、`/home/centos/myapp/wsgi.py` に読み込み権限があるかも念のため確認してください。
83
+ また、すでにそうなっているはずですが、同様に `/home/centos/myapp` に others の`rx`権限が、`/home/centos/myapp/wsgi.py` に`r`権限があるかも念のため確認してください。
84
84
 
85
85
 
86
86
 
87
- ちなみに SQLite3 のデータベースファイルは、apacheではなく所有者(centos)として読み書きを行うので、他ユーザーからの書き込みを許可してあげる必要はありません。
87
+ ちなみに上記の mod_wsgi の設定例ではDjangoアプリを一般ユーザー(centosさん)権限で動かします。(これを daemon mode といいます)そのため SQLite3 のデータファイルは、apacheではなく所有者(centos)として読み書きを行うので、他ユーザーからの書き込みを許可してあげる必要はありません。
88
88
 
89
89
 
90
90
 
91
- デプロイにあたり特別な設定が要らない、つまり開発したものをそのまま本番環境(Apache動かせるので運用が楽です。さらに一般ユーザー権限で動かすこと、万が一 Django アプリに侵入された際に他のプロセスやOSごと乗っ取られるリスクを最小限にすることができセキュアです。
91
+ daemon mode で一般ユーザー権限で動かすことにより、万が一 Django アプリに侵入された際に他のプロセスやOSごと乗っ取られるリスクを最小限にすることができセキュアです。
92
92
 
93
93
 
94
94
 
@@ -96,4 +96,4 @@
96
96
 
97
97
 
98
98
 
99
- 意図がよくわかりませんが、デフォルト(apache)のまま変える必要はないと思います。
99
+ デフォルト(`apache`)のまま変える必要はないと思います。

2

パーミッション周りの誤りを修正

2017/06/03 03:11

投稿

miyahan
miyahan

スコア3095

test CHANGED
@@ -40,6 +40,8 @@
40
40
 
41
41
  WSGIProcessGroup myapp
42
42
 
43
+ Require all granted
44
+
43
45
  </Directory>
44
46
 
45
47
  ```
@@ -70,19 +72,23 @@
70
72
 
71
73
 
72
74
 
73
- 上記の mod_wsgi の設定例ではDjangoアプリを一般ユーザー(centosさん)権限で動かしいますですので、現在Djangoの開発用サーバー正常動いていならば特段パーミッションの変更は不す。
75
+ 上記の mod_wsgi の設定例ではDjangoアプリを一般ユーザー(centosさん)権限で動かします。(これを daemon mode とますですので、Apache が WSGIの設定ファイル `/home/centos/myapp/wsgi.py` にアクセスきるようがあります。
74
76
 
75
77
 
76
78
 
77
- SQLite3タベースファイルもapacheではなく所有者(centos)として読み書き行うで、他ユーザーらの書き込み許可してあげる必要はありません。
79
+ CentOS7 だとホームディレクトリミッションは 700 になっていると思いますので`chmod 755 /home/centos` で他ユーザーに読み込み・実行権限付与してください。(もし他のユーザーにホームディレクトリを見れては困るであれば、Djangoアプリのディレクトリ他の場所に移動してください)
78
80
 
79
81
 
80
82
 
81
- デプロイあたり特別な設定要らないつまり開発したものをそのまま本番環境(Apache)で動せるで運用が楽ちんです
83
+ 同様 `/home/centos/myapp` に読み込み・実行権限が、`/home/centos/myapp/wsgi.py` に読み込み権限があるも念ため確認してください
82
84
 
83
85
 
84
86
 
87
+ ちなみに SQLite3 のデータベースファイルは、apacheではなく所有者(centos)として読み書きを行うので、他ユーザーからの書き込みを許可してあげる必要はありません。
88
+
89
+
90
+
85
- さらに一般ユーザー権限で動かすことで、万が一 Django アプリに侵入された際に他のプロセスやOSごと乗っ取られるリスクを最小限にすることができセキュアです。
91
+ デプロイにあたり特別な設定が要らない、つまり開発したものをそのまま本番環境(Apache)で動かせるので運用が楽です。さらに一般ユーザー権限で動かすことで、万が一 Django アプリに侵入された際に他のプロセスやOSごと乗っ取られるリスクを最小限にすることができセキュアです。
86
92
 
87
93
 
88
94
 
@@ -90,4 +96,4 @@
90
96
 
91
97
 
92
98
 
93
- 質問の趣旨がよくわかりませんが、デフォルト(apache)のまま変える必要はないと思います。
99
+ 意図がよくわかりませんが、デフォルト(apache)のまま変える必要はないと思います。

1

文章の軽微修正

2017/06/03 00:49

投稿

miyahan
miyahan

スコア3095

test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- 一般的には `Webサーバ --- WSGIサーバー --- WSGIアプリ(Django)` という構成を取るのですが、Apache には mod_wsgi という便利モジュールが用意されていて、これを入れるだけで WSGIサーバーなしで WSGIアプリを動かすことができます。
9
+ 一般的には `Webサーバ --- WSGIサーバー --- WSGIアプリ(Django)` という構成を取るのですが、Apache には mod_wsgi という便利モジュールが用意されていて、これを入れるだけで WSGIサーバーなしで WSGIアプリを動かすことができます。
10
10
 
11
11
 
12
12
 
@@ -20,11 +20,15 @@
20
20
 
21
21
  1. **Python3.6用**の mod_wsgi をインストール (pipを使うのが無難?)
22
22
 
23
- 2. Apacheの設定を書く
23
+ 1. Apacheの設定ファイル編集し、mod_wsgi を読み込ませる
24
+
25
+ 1. Apacheの設定ファイルを編集し、Djangoアプリの設定を入れる
24
26
 
25
27
 
26
28
 
27
29
  ```httpd.conf
30
+
31
+ # Djangoアプリ設定例
28
32
 
29
33
  WSGIDaemonProcess myapp user=centos group=wheel threads=5
30
34
 
@@ -35,10 +39,6 @@
35
39
  <Directory /home/centos/myapp>
36
40
 
37
41
  WSGIProcessGroup myapp
38
-
39
- SetHandler wsgi-script
40
-
41
- AddHandler wsgi-script .wsgi
42
42
 
43
43
  </Directory>
44
44