質問編集履歴
12
内容変更&確認
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,36 +1,52 @@
|
|
1
1
|
### 実現したいこと
|
2
|
-
AWSのLightsailにデプロイしたDjangoのアプリケーションの一部のページでServerError500を解消したいが、エラーの原因追及を行うために、ロギング設定を行ったのだが、これもエラーとなった。
|
3
|
-
|
4
|
-
|
2
|
+
Djangoのアプリケーションの一部のページでServerError500の解消を実現したい。
|
5
3
|
|
6
4
|
### 発生している問題・分からないこと
|
7
5
|
以前、AWSのLightsailにデプロイしたDjangoのアプリケーションがあり、下記の内容を行う前は、エラーも出ることなく、正常に利用することができました。
|
8
6
|
|
9
7
|
・VSCode上(ローカル環境)で、Djangoのディレクトリ(「students」)のmodels.pyの不要なデータベース項目を削除し、マイグレーションを行いました。
|
10
8
|
|
11
|
-
そこで、ロギング設定を行い、エラーログをlogsというファイルに書き出すように設定したところ、ロギング設定でもエラーが生じてしまいました。
|
12
|
-
|
13
9
|
### エラーメッセージ
|
14
|
-
sudo cat /opt/bitnami/apache2/logs/error_logを行ったところ、settings.loggingでエラーが出ていることを確認。
|
15
|
-
|
16
|
-
「 configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)」、 「File "/opt/bitnami/python/lib/python3.11/site-packages/django/utils/log.py", line 76, in configure_logging」```
|
17
|
-
|
18
|
-
|
10
|
+
ロギング設定を行い、エラーログを確認したところ、下記の内容が出てきました。
|
19
11
|
|
20
12
|
```error
|
21
|
-
|
22
|
-
【ロギング設定前】
|
23
|
-
|
13
|
+
result = block.nodelist.render(context)
|
14
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
15
|
+
File "/opt/bitnami/python/lib/python3.11/site-packages/django/template/base.py", line 10
|
16
|
+
05, in render
|
24
|
-
|
17
|
+
return SafeString("".join([node.render_annotated(context) for node in self]))
|
25
|
-
|
18
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
19
|
+
File "/opt/bitnami/python/lib/python3.11/site-packages/django/template/base.py", line 10
|
20
|
+
05, in <listcomp>
|
21
|
+
return SafeString("".join([node.render_annotated(context) for node in self]))
|
22
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
23
|
+
File "/opt/bitnami/python/lib/python3.11/site-packages/django/template/base.py", line 96
|
24
|
+
6, in render_annotated
|
25
|
+
return self.render(context)
|
26
|
+
^^^^^^^^^^^^^^^^^^^^
|
27
|
+
File "/opt/bitnami/python/lib/python3.11/site-packages/django/template/base.py", line 10
|
28
|
+
64, in render
|
26
|
-
|
29
|
+
output = self.filter_expression.resolve(context)
|
30
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
31
|
+
File "/opt/bitnami/python/lib/python3.11/site-packages/django/template/base.py", line 71
|
27
|
-
|
32
|
+
5, in resolve
|
33
|
+
obj = self.var.resolve(context)
|
34
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^
|
35
|
+
File "/opt/bitnami/python/lib/python3.11/site-packages/django/template/base.py", line 84
|
36
|
+
7, in resolve
|
37
|
+
value = self._resolve_lookup(context)
|
38
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
39
|
+
File "/opt/bitnami/python/lib/python3.11/site-packages/django/template/base.py", line 89
|
40
|
+
0, in _resolve_lookup
|
41
|
+
current = getattr(current, bit)
|
42
|
+
^^^^^^^^^^^^^^^^^^^^^
|
43
|
+
File "/opt/bitnami/python/lib/python3.11/site-packages/django/db/models/fields/files.py"
|
44
|
+
, line 65, in url
|
45
|
+
self._require_file()
|
46
|
+
File "/opt/bitnami/python/lib/python3.11/site-packages/django/db/models/fields/files.py"
|
47
|
+
, line 40, in _require_file
|
28
|
-
|
48
|
+
raise ValueError(
|
29
|
-
The server encountered an internal error or misconfiguration and was unable to complete your request.
|
30
|
-
|
31
|
-
Please contact the server administrator at you@example.com to inform them of the time this error occurred, and the actions you performed just before this error.
|
32
|
-
|
33
|
-
|
49
|
+
ValueError: The 'img' attribute has no file associated with it.
|
34
50
|
```
|
35
51
|
|
36
52
|
### 該当のソースコード
|
@@ -238,12 +254,12 @@
|
|
238
254
|
},
|
239
255
|
'handlers': {
|
240
256
|
'console': {
|
241
|
-
'level': '
|
257
|
+
'level': 'DEBUG',
|
242
258
|
'class': 'logging.StreamHandler',
|
243
259
|
'formatter': 'development',
|
244
260
|
},
|
245
261
|
'file': {
|
246
|
-
'level': '
|
262
|
+
'level': 'DEBUG',
|
247
263
|
'class': 'logging.FileHandler',
|
248
264
|
'filename': os.path.join(BASE_DIR, f'logs/log_{today}.log'),
|
249
265
|
'formatter': 'development',
|
@@ -252,7 +268,7 @@
|
|
252
268
|
'loggers': {
|
253
269
|
'django': {
|
254
270
|
'handlers': ['file', 'console'],
|
255
|
-
'level': '
|
271
|
+
'level': 'DEBUG',
|
256
272
|
'propagate': True,
|
257
273
|
}
|
258
274
|
},
|
@@ -265,34 +281,9 @@
|
|
265
281
|
- [x] その他
|
266
282
|
|
267
283
|
##### 上記の詳細・結果
|
268
|
-
現在、当スレッドで、アドバイスをいただきつつ、まず、ロギングのエラー解消に動いていま
|
284
|
+
現在、当スレッドで、アドバイスをいただきつつ、まず、ロギングのエラー解消に動いていましたがようやくロギングのエラーが解消できました。現在、本題のエラーの原因追及を行おうと思っています。
|
269
285
|
|
270
286
|
|
271
287
|
### 補足
|
272
|
-
|
288
|
+
|
273
|
-
|
274
|
-
|
289
|
+
|
275
|
-
sudo chown -R daemon:daemon /opt/bitnami/apache2/logs
|
276
|
-
|
277
|
-
もう一度、ログディレクトリおよびログファイルの所有者を確認するために、下記のコードを確認しました。
|
278
|
-
|
279
|
-
ログディレクトリの所有者を確認
|
280
|
-
sudo ls -ld /opt/bitnami/apache2/logs
|
281
|
-
|
282
|
-
ログファイルの所有者を確認
|
283
|
-
sudo ls -l /opt/bitnami/apache2/logs
|
284
|
-
|
285
|
-
-rw-r--r-- 1 daemon daemon 3275 Aug 31 23:27 error_log-20240901.gz
|
286
|
-
-rw-r--r-- 1 daemon daemon 3839 Sep 7 21:15 error_log-20240908.gz
|
287
|
-
-rw-r--r-- 1 daemon daemon 165660 Sep 14 23:51 error_log-20240915.gz
|
288
|
-
srwx------ 1 daemon daemon 0 Sep 16 03:11 wsgi.2968.3.1.sock
|
289
|
-
|
290
|
-
その後、エラーログファイルの内容を確認するために
|
291
|
-
sudo ls -l /opt/bitnami/projects/student_info/myvenv/student_info/logs/
|
292
|
-
を確認し、下記の内容まで確認しました。
|
293
|
-
|
294
|
-
total 0
|
295
|
-
-rw-r--r-- 1 bitnami bitnami 0 Sep 13 08:37 log_20240913.log
|
296
|
-
|
297
|
-
Apache所有者でない「bitnami」が書き込みをしたが、出来ずに空ファイルになったのかなと推測できました。ただ、再度InternalServerErrorが表示されているページを更新しましたが、新しいログが生成できていない状況です。
|
298
|
-
|
11
情報の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -294,5 +294,5 @@
|
|
294
294
|
total 0
|
295
295
|
-rw-r--r-- 1 bitnami bitnami 0 Sep 13 08:37 log_20240913.log
|
296
296
|
|
297
|
-
Apache所有者でない「bitnami」が書き込みをしたが、出来ずに空ファイルになったのかなと推測できました。
|
297
|
+
Apache所有者でない「bitnami」が書き込みをしたが、出来ずに空ファイルになったのかなと推測できました。ただ、再度InternalServerErrorが表示されているページを更新しましたが、新しいログが生成できていない状況です。
|
298
|
-
|
298
|
+
|
10
情報整理と追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
### 実現したいこと
|
2
|
+
AWSのLightsailにデプロイしたDjangoのアプリケーションの一部のページでServerError500を解消したいが、エラーの原因追及を行うために、ロギング設定を行ったのだが、これもエラーとなった。
|
3
|
+
|
2
|
-
|
4
|
+
そのため、「ロギング設定の正常化(バグ解消)→Djangoのアプリケーションの一部のページでServerError500を解消」を実現したい。
|
3
5
|
|
4
6
|
### 発生している問題・分からないこと
|
5
7
|
以前、AWSのLightsailにデプロイしたDjangoのアプリケーションがあり、下記の内容を行う前は、エラーも出ることなく、正常に利用することができました。
|
@@ -263,13 +265,34 @@
|
|
263
265
|
- [x] その他
|
264
266
|
|
265
267
|
##### 上記の詳細・結果
|
266
|
-
|
267
268
|
現在、当スレッドで、アドバイスをいただきつつ、まず、ロギングのエラー解消に動いています。その後、本題のエラーの原因追及を行おうと思っています。
|
268
269
|
|
269
270
|
|
270
271
|
### 補足
|
272
|
+
httpサーバがbitnamiユーザで動いてるかを確認し、rootがメインで動いており、daemonがユーザーリクエストの処理を行っており、bitnamiではApacheの実行がされていないと確認できました。
|
273
|
+
|
274
|
+
下記のコードをAWSのLightsail上で入力して、所有者の「daemon」に合わせました。
|
275
|
+
sudo chown -R daemon:daemon /opt/bitnami/apache2/logs
|
276
|
+
|
271
|
-
ログファイルの
|
277
|
+
もう一度、ログディレクトリおよびログファイルの所有者を確認するために、下記のコードを確認しました。
|
278
|
+
|
279
|
+
ログディレクトリの所有者を確認
|
280
|
+
sudo ls -ld /opt/bitnami/apache2/logs
|
281
|
+
|
282
|
+
ログファイルの所有者を確認
|
283
|
+
sudo ls -l /opt/bitnami/apache2/logs
|
284
|
+
|
285
|
+
-rw-r--r-- 1 daemon daemon 3275 Aug 31 23:27 error_log-20240901.gz
|
286
|
+
-rw-r--r-- 1 daemon daemon 3839 Sep 7 21:15 error_log-20240908.gz
|
287
|
+
-rw-r--r-- 1 daemon daemon 165660 Sep 14 23:51 error_log-20240915.gz
|
288
|
+
srwx------ 1 daemon daemon 0 Sep 16 03:11 wsgi.2968.3.1.sock
|
289
|
+
|
290
|
+
その後、エラーログファイルの内容を確認するために
|
272
|
-
d
|
291
|
+
sudo ls -l /opt/bitnami/projects/student_info/myvenv/student_info/logs/
|
273
|
-
|
292
|
+
を確認し、下記の内容まで確認しました。
|
293
|
+
|
274
|
-
|
294
|
+
total 0
|
295
|
+
-rw-r--r-- 1 bitnami bitnami 0 Sep 13 08:37 log_20240913.log
|
296
|
+
|
275
|
-
|
297
|
+
Apache所有者でない「bitnami」が書き込みをしたが、出来ずに空ファイルになったのかなと推測できました。
|
298
|
+
|
9
編集
test
CHANGED
File without changes
|
test
CHANGED
@@ -18,7 +18,8 @@
|
|
18
18
|
```error
|
19
19
|
|
20
20
|
【ロギング設定前】
|
21
|
+
「student_detail」のページ上には、「ServerError500」の表示、ページ検証のコンソールには、
|
21
|
-
「
|
22
|
+
「Failed to load resource: the server responded with a status of 500 (Internal Server Error)」
|
22
23
|
|
23
24
|
一方で、ロギング設定後は、すべてのページが閲覧不能になってしまい、下記の表示が出ています。
|
24
25
|
【ロギング後】
|
8
編集
test
CHANGED
File without changes
|
test
CHANGED
@@ -28,6 +28,7 @@
|
|
28
28
|
Please contact the server administrator at you@example.com to inform them of the time this error occurred, and the actions you performed just before this error.
|
29
29
|
|
30
30
|
More information about this error may be available in the server error log.
|
31
|
+
```
|
31
32
|
|
32
33
|
### 該当のソースコード
|
33
34
|
|
7
パーミッション情報についての追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -266,4 +266,8 @@
|
|
266
266
|
|
267
267
|
|
268
268
|
### 補足
|
269
|
-
|
269
|
+
ログファイルのパーミッションは下記のように確認されました。
|
270
|
+
drwxr-xr-x 2 bitnami bitnami 4096 Sep 13 08:37 /opt/bitnami/projects/student_info/myvenv/s
|
271
|
+
tudent_info/logs
|
272
|
+
|
273
|
+
なので、パーミッションは問題ないように思います。
|
6
改善
test
CHANGED
File without changes
|
test
CHANGED
@@ -11,10 +11,11 @@
|
|
11
11
|
### エラーメッセージ
|
12
12
|
sudo cat /opt/bitnami/apache2/logs/error_logを行ったところ、settings.loggingでエラーが出ていることを確認。
|
13
13
|
|
14
|
+
「 configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)」、 「File "/opt/bitnami/python/lib/python3.11/site-packages/django/utils/log.py", line 76, in configure_logging」```
|
15
|
+
|
16
|
+
また、ロギング設定の前は、下記のエラーが生じていました。
|
17
|
+
|
14
18
|
```error
|
15
|
-
「 configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)」、 「File "/opt/bitnami/python/lib/python3.11/site-packages/django/utils/log.py", line 76, in configure_logging」```
|
16
|
-
|
17
|
-
また、ロギング設定の前は、下記のエラーが生じていました。
|
18
19
|
|
19
20
|
【ロギング設定前】
|
20
21
|
「student_detail」のページ上には、「ServerError500」の表示、ページ検証のコンソールには、「Failed to load resource: the server responded with a status of 500 (Internal Server Error)」
|
5
テーマ文変更
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
AWSのLightsailにデプロイしたDjangoのアプリケーションの
|
1
|
+
AWSのLightsailにデプロイしたDjangoのアプリケーションのページのServerError500を解消したい 【お助けください!】
|
test
CHANGED
File without changes
|
4
文章の整理
test
CHANGED
File without changes
|
test
CHANGED
@@ -6,14 +6,27 @@
|
|
6
6
|
|
7
7
|
・VSCode上(ローカル環境)で、Djangoのディレクトリ(「students」)のmodels.pyの不要なデータベース項目を削除し、マイグレーションを行いました。
|
8
8
|
|
9
|
+
そこで、ロギング設定を行い、エラーログをlogsというファイルに書き出すように設定したところ、ロギング設定でもエラーが生じてしまいました。
|
10
|
+
|
9
11
|
### エラーメッセージ
|
10
|
-
sudo cat /opt/bitnami/apache2/logs/error_logを行
|
12
|
+
sudo cat /opt/bitnami/apache2/logs/error_logを行ったところ、settings.loggingでエラーが出ていることを確認。
|
11
13
|
|
12
14
|
```error
|
13
|
-
|
15
|
+
「 configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)」、 「File "/opt/bitnami/python/lib/python3.11/site-packages/django/utils/log.py", line 76, in configure_logging」```
|
16
|
+
|
17
|
+
また、ロギング設定の前は、下記のエラーが生じていました。
|
18
|
+
|
14
|
-
|
19
|
+
【ロギング設定前】
|
15
|
-
|
16
|
-
「student_detail」のページ上には、「ServerError500」の表示、ページ検証のコンソールには、「Failed to load resource: the server responded with a status of 500 (Internal Server Error)」
|
20
|
+
「student_detail」のページ上には、「ServerError500」の表示、ページ検証のコンソールには、「Failed to load resource: the server responded with a status of 500 (Internal Server Error)」
|
21
|
+
|
22
|
+
一方で、ロギング設定後は、すべてのページが閲覧不能になってしまい、下記の表示が出ています。
|
23
|
+
【ロギング後】
|
24
|
+
Internal Server Error
|
25
|
+
The server encountered an internal error or misconfiguration and was unable to complete your request.
|
26
|
+
|
27
|
+
Please contact the server administrator at you@example.com to inform them of the time this error occurred, and the actions you performed just before this error.
|
28
|
+
|
29
|
+
More information about this error may be available in the server error log.
|
17
30
|
|
18
31
|
### 該当のソースコード
|
19
32
|
|
@@ -78,166 +91,166 @@
|
|
78
91
|
|
79
92
|
```
|
80
93
|
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
94
|
+
|
95
|
+
```
|
96
|
+
【settings.py】
|
97
|
+
from pathlib import Path
|
98
|
+
from environs import Env
|
99
|
+
from pathlib import Path
|
100
|
+
|
101
|
+
|
102
|
+
# Environment Variables
|
103
|
+
env = Env()
|
104
|
+
env.read_env()
|
105
|
+
|
106
|
+
BASE_DIR = Path(__file__).resolve().parent.parent
|
107
|
+
|
108
|
+
|
109
|
+
|
110
|
+
SECRET_KEY = env.str('SECRET_KEY')
|
111
|
+
|
112
|
+
DEBUG = env.bool('DEBUG')
|
113
|
+
|
114
|
+
ALLOWED_HOSTS = ['〇〇', '127.0.0.1']
|
115
|
+
|
116
|
+
|
117
|
+
INSTALLED_APPS = [
|
118
|
+
'django.contrib.admin',
|
119
|
+
'django.contrib.auth',
|
120
|
+
'django.contrib.contenttypes',
|
121
|
+
'django.contrib.sessions',
|
122
|
+
'django.contrib.messages',
|
123
|
+
'django.contrib.staticfiles',
|
124
|
+
'students',
|
125
|
+
'django_bootstrap5',
|
126
|
+
'import_export',
|
127
|
+
'accounts.apps.AccountsConfig',
|
128
|
+
'lessons',
|
129
|
+
'exams',
|
130
|
+
]
|
131
|
+
|
132
|
+
MIDDLEWARE = [
|
133
|
+
'django.middleware.security.SecurityMiddleware',
|
134
|
+
'django.contrib.sessions.middleware.SessionMiddleware',
|
135
|
+
'django.middleware.common.CommonMiddleware',
|
136
|
+
'django.middleware.csrf.CsrfViewMiddleware',
|
137
|
+
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
138
|
+
'django.contrib.messages.middleware.MessageMiddleware',
|
139
|
+
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
140
|
+
]
|
141
|
+
|
142
|
+
ROOT_URLCONF = 'student_info.urls'
|
143
|
+
|
144
|
+
TEMPLATES = [
|
145
|
+
{
|
146
|
+
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
147
|
+
'DIRS': [BASE_DIR/'templates'],
|
148
|
+
'APP_DIRS': True,
|
149
|
+
'OPTIONS': {
|
150
|
+
'context_processors': [
|
151
|
+
'django.template.context_processors.debug',
|
152
|
+
'django.template.context_processors.request',
|
153
|
+
'django.contrib.auth.context_processors.auth',
|
154
|
+
'django.contrib.messages.context_processors.messages',
|
155
|
+
],
|
156
|
+
},
|
157
|
+
},
|
158
|
+
]
|
159
|
+
|
160
|
+
WSGI_APPLICATION = 'student_info.wsgi.application'
|
161
|
+
|
162
|
+
|
163
|
+
if env.bool('LOCAL'):
|
164
|
+
DATABASES = {
|
165
|
+
'default': {
|
166
|
+
'ENGINE': 'django.db.backends.sqlite3',
|
167
|
+
'NAME': BASE_DIR / 'db.sqlite3',
|
168
|
+
}
|
169
|
+
}
|
170
|
+
else:
|
171
|
+
DATABASES = {
|
172
|
+
'default': {
|
173
|
+
'ENGINE': 'django.db.backends.mysql',
|
174
|
+
'NAME': env.str('DB_NAME'),
|
175
|
+
'USER': env.str('DB_USER'),
|
176
|
+
'HOST': env.str('DB_HOST'),
|
177
|
+
'PASSWORD': env.str('DB_PASSWORD'),
|
178
|
+
'PORT': env.int('DB_PORT'),
|
179
|
+
}
|
180
|
+
}
|
181
|
+
|
182
|
+
AUTH_PASSWORD_VALIDATORS = [
|
183
|
+
{
|
184
|
+
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
|
185
|
+
},
|
186
|
+
{
|
187
|
+
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
|
188
|
+
},
|
189
|
+
{
|
190
|
+
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
|
191
|
+
},
|
192
|
+
{
|
193
|
+
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
|
194
|
+
},
|
195
|
+
]
|
196
|
+
|
197
|
+
LANGUAGE_CODE = 'ja'
|
198
|
+
|
199
|
+
TIME_ZONE = 'Asia/Tokyo'
|
200
|
+
|
201
|
+
USE_I18N = True
|
202
|
+
|
203
|
+
USE_TZ = True
|
204
|
+
|
205
|
+
STATIC_URL = 'static/'
|
206
|
+
STATIC_ROOT = BASE_DIR / 'static'
|
207
|
+
|
208
|
+
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
|
209
|
+
|
210
|
+
MEDIA_URL = '/media/'
|
211
|
+
MEDIA_ROOT = BASE_DIR / 'media_local'
|
212
|
+
|
213
|
+
AUTH_USER_MODEL = 'accounts.CustomUser'
|
214
|
+
|
215
|
+
LOGIN_URL = 'login'
|
216
|
+
LOGIN_REDIRECT_URL = 'list'
|
217
|
+
LOGOUT_REDIRECT_URL = 'logout'
|
218
|
+
|
219
|
+
CSRF_COOKIE_SECURE = True
|
220
|
+
SESSION_COOKIE_SECURE = True
|
221
|
+
|
222
|
+
import os
|
223
|
+
import datetime
|
224
|
+
|
225
|
+
today = datetime.date.today().strftime('%Y%m%d')
|
226
|
+
LOGGING = {
|
227
|
+
'version': 1,
|
228
|
+
'disable_existing_loggers': False,
|
229
|
+
'formatters': {
|
230
|
+
'development': {
|
231
|
+
'format': '%(asctime)s [%(levelname)s] %(message)s'
|
232
|
+
},
|
233
|
+
},
|
234
|
+
'handlers': {
|
235
|
+
'console': {
|
236
|
+
'level': 'INFO',
|
237
|
+
'class': 'logging.StreamHandler',
|
238
|
+
'formatter': 'development',
|
239
|
+
},
|
240
|
+
'file': {
|
241
|
+
'level': 'INFO',
|
242
|
+
'class': 'logging.FileHandler',
|
243
|
+
'filename': os.path.join(BASE_DIR, f'logs/log_{today}.log'),
|
244
|
+
'formatter': 'development',
|
245
|
+
},
|
246
|
+
},
|
247
|
+
'loggers': {
|
248
|
+
'django': {
|
249
|
+
'handlers': ['file', 'console'],
|
250
|
+
'level': 'INFO',
|
251
|
+
'propagate': True,
|
252
|
+
}
|
253
|
+
},
|
241
254
|
```
|
242
255
|
|
243
256
|
### 試したこと・調べたこと
|
@@ -247,21 +260,8 @@
|
|
247
260
|
- [x] その他
|
248
261
|
|
249
262
|
##### 上記の詳細・結果
|
250
|
-
|
263
|
+
|
251
|
-
|
252
|
-
> Internal Server Error
|
253
|
-
The server encountered an internal error or misconfiguration and was unable to complete your request.
|
254
|
-
|
255
|
-
Please contact the server administrator at you@example.com to inform them of the time this error occurred, and the actions you performed just before this error.
|
256
|
-
|
257
|
-
More information about this error may be available in the server error log.
|
258
|
-
|
259
|
-
ロギング
|
264
|
+
現在、当スレッドで、アドバイスをいただきつつ、まず、ロギングのエラー解消に動いています。その後、本題のエラーの原因追及を行おうと思っています。
|
260
|
-
|
261
|
-
なお、Apacheのエラーログには、「 configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)」、 「File "/opt/bitnami/python/lib/python3.11/site-packages/django/utils/log.py", line 76, in configure_logging」
|
262
|
-
のようにロギング周辺でエラーが出ていることはわかりました。
|
263
|
-
|
264
|
-
そこで、settings.pyをもう一度確認しています。
|
265
265
|
|
266
266
|
|
267
267
|
### 補足
|
3
追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -258,7 +258,11 @@
|
|
258
258
|
|
259
259
|
ロギングでのエラーログにて、原因追及することに行き詰ってしまい、未だに、原因がわかっていないという状況です。なお、VScodeのローカル環境では、正常に動いております。
|
260
260
|
|
261
|
+
なお、Apacheのエラーログには、「 configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)」、 「File "/opt/bitnami/python/lib/python3.11/site-packages/django/utils/log.py", line 76, in configure_logging」
|
262
|
+
のようにロギング周辺でエラーが出ていることはわかりました。
|
263
|
+
|
261
|
-
そ
|
264
|
+
そこで、settings.pyをもう一度確認しています。
|
265
|
+
|
262
266
|
|
263
267
|
### 補足
|
264
268
|
特になし
|
2
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
AWSのLightsailにデプロイしたDjangoのアプリケーションの一部のページでServerError500を解消したい
|
1
|
+
AWSのLightsailにデプロイしたDjangoのアプリケーションの一部のページでServerError500を解消したい :お助けください!
|
test
CHANGED
File without changes
|
1
ロギング設定を行うことで、エラーログを確認したが、うまく行かずに今に至っている旨を内容を追記。
test
CHANGED
File without changes
|
test
CHANGED
@@ -6,12 +6,14 @@
|
|
6
6
|
|
7
7
|
・VSCode上(ローカル環境)で、Djangoのディレクトリ(「students」)のmodels.pyの不要なデータベース項目を削除し、マイグレーションを行いました。
|
8
8
|
|
9
|
-
上記の結果、「student_detail」のページ上には、「ServerError500」の表示、ページ検証のコンソールには、「Failed to load resource: the server responded with a status of 500 (Internal Server Error)」と記載が表示されました。
|
10
|
-
|
11
9
|
### エラーメッセージ
|
10
|
+
sudo cat /opt/bitnami/apache2/logs/error_logを行いましたが、apache上で気になるエラーコードは確認できませんでした。
|
11
|
+
|
12
12
|
```error
|
13
13
|
Failed to load resource: the server responded with a status of 500 (Internal Server Error)
|
14
14
|
```
|
15
|
+
|
16
|
+
「student_detail」のページ上には、「ServerError500」の表示、ページ検証のコンソールには、「Failed to load resource: the server responded with a status of 500 (Internal Server Error)」と記載が表示されました。
|
15
17
|
|
16
18
|
### 該当のソースコード
|
17
19
|
|
@@ -21,20 +23,6 @@
|
|
21
23
|
from jp_birthday.models import BirthdayModel
|
22
24
|
from datetime import datetime
|
23
25
|
from accounts.models import Subject,CustomUser
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
class School(models.Model):
|
28
|
-
name = models.CharField(max_length=200)
|
29
|
-
|
30
|
-
def __str__(self):
|
31
|
-
return self.name
|
32
|
-
|
33
|
-
class ModelsTest(BirthdayModel):
|
34
|
-
|
35
|
-
class Meta:
|
36
|
-
app_label = 'jp_birthday'
|
37
|
-
ordering = ('pk',)
|
38
26
|
|
39
27
|
class Student(models.Model):
|
40
28
|
Choices_status = (
|
@@ -70,19 +58,6 @@
|
|
70
58
|
class Meta:
|
71
59
|
ordering = ['name']
|
72
60
|
|
73
|
-
class StudentSubject(models.Model):
|
74
|
-
student = models.ForeignKey(Student, on_delete=models.CASCADE, related_name='subjects')
|
75
|
-
subject = models.ForeignKey(Subject, on_delete=models.CASCADE)
|
76
|
-
teacher = models.ForeignKey(CustomUser, on_delete=models.CASCADE, related_name='taught_subjects',default=1)
|
77
|
-
start = models.DateField()
|
78
|
-
end = models.DateField(blank=True, null=True)
|
79
|
-
|
80
|
-
def __str__(self):
|
81
|
-
return f"{self.student} の {self.subject} の担当講師は {self.teacher}"
|
82
|
-
|
83
|
-
def get_absolute_url(self):
|
84
|
-
return reverse('list')
|
85
|
-
|
86
61
|
```
|
87
62
|
|
88
63
|
```students/views.py
|
@@ -96,41 +71,6 @@
|
|
96
71
|
from accounts.models import Subject, CustomUser
|
97
72
|
from django.shortcuts import render, redirect
|
98
73
|
from .forms import StudentForm
|
99
|
-
from django.utils import timezone
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
class StudentListView(LoginRequiredMixin, ListView):
|
104
|
-
model = Student
|
105
|
-
paginate_by = 100
|
106
|
-
|
107
|
-
def get_queryset(self):
|
108
|
-
queryset = super().get_queryset()
|
109
|
-
self.form = form = StudentSearchForm(self.request.GET or None)
|
110
|
-
|
111
|
-
if form.is_valid():
|
112
|
-
key_word = form.cleaned_data.get('key_word')
|
113
|
-
if key_word:
|
114
|
-
for word in key_word.split():
|
115
|
-
queryset = queryset.filter(name__icontains=word)
|
116
|
-
|
117
|
-
school = form.cleaned_data.get('category')
|
118
|
-
if school and school != '0':
|
119
|
-
queryset = queryset.filter(school=school)
|
120
|
-
|
121
|
-
student_year = form.cleaned_data.get('student_year')
|
122
|
-
if student_year and student_year != '0':
|
123
|
-
queryset = queryset.filter(years=student_year)
|
124
|
-
|
125
|
-
status = form.cleaned_data.get('status')
|
126
|
-
if status:
|
127
|
-
queryset = queryset.filter(status=status)
|
128
|
-
return queryset
|
129
|
-
|
130
|
-
def get_context_data(self, **kwargs):
|
131
|
-
context = super().get_context_data(**kwargs)
|
132
|
-
context['search_form'] = self.form
|
133
|
-
return context
|
134
74
|
|
135
75
|
class StudentDetailView(LoginRequiredMixin,DetailView):
|
136
76
|
model = Student
|
@@ -307,9 +247,18 @@
|
|
307
247
|
- [x] その他
|
308
248
|
|
309
249
|
##### 上記の詳細・結果
|
250
|
+
VScode上でロギング設定を行った上で、githubを介して、AWSのLightsailにデプロイをし、Lightsailのコンソールにて、プロジェクトディレクトリに移動し、エラーログを確認しようとしたところ、下記のようなエラーメッセージがページに表現されました。
|
251
|
+
|
252
|
+
> Internal Server Error
|
253
|
+
The server encountered an internal error or misconfiguration and was unable to complete your request.
|
254
|
+
|
255
|
+
Please contact the server administrator at you@example.com to inform them of the time this error occurred, and the actions you performed just before this error.
|
256
|
+
|
257
|
+
More information about this error may be available in the server error log.
|
258
|
+
|
259
|
+
ロギングでのエラーログにて、原因追及することに行き詰ってしまい、未だに、原因がわかっていないという状況です。なお、VScodeのローカル環境では、正常に動いております。
|
260
|
+
|
310
|
-
Lightsailの
|
261
|
+
そのため、AWSのLightsailでのエラーログの確認から、教えていただけると幸いです。
|
311
|
-
sudo cat /opt/bitnami/apache2/logs/error_log
|
312
|
-
|
313
262
|
|
314
263
|
### 補足
|
315
264
|
特になし
|