回答編集履歴
4
追記2をもう少し詳しく記載。
test
CHANGED
@@ -18,15 +18,75 @@
|
|
18
18
|
|
19
19
|
|
20
20
|
|
21
|
-
|
21
|
+
envvars に LANGを設定
|
22
22
|
|
23
|
-
# 環境変数LANGをShellから引き継ぐ
|
24
23
|
|
24
|
+
|
25
|
+
```/etc/apache2/envvars
|
26
|
+
|
27
|
+
unset HOME
|
28
|
+
|
29
|
+
if [ "${APACHE_CONFDIR##/etc/apache2-}" != "${APACHE_CONFDIR}" ] ; then
|
30
|
+
|
31
|
+
SUFFIX="-${APACHE_CONFDIR##/etc/apache2-}"
|
32
|
+
|
33
|
+
else
|
34
|
+
|
35
|
+
SUFFIX=
|
36
|
+
|
37
|
+
fi
|
38
|
+
|
39
|
+
export APACHE_RUN_USER=www-data
|
40
|
+
|
41
|
+
export APACHE_RUN_GROUP=www-data
|
42
|
+
|
43
|
+
export APACHE_PID_FILE=/var/run/apache2$SUFFIX/apache2.pid
|
44
|
+
|
45
|
+
export APACHE_RUN_DIR=/var/run/apache2$SUFFIX
|
46
|
+
|
47
|
+
export APACHE_LOCK_DIR=/var/lock/apache2$SUFFIX
|
48
|
+
|
49
|
+
export APACHE_LOG_DIR=/var/log/apache2$SUFFIX
|
50
|
+
|
51
|
+
export LANG=ja_JP.utf8 # ← 日本語UTF8を設定
|
52
|
+
|
25
|
-
|
53
|
+
export LANG
|
26
54
|
|
27
55
|
|
28
56
|
|
29
57
|
```
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
Apacheの設定に `PassEnv LANG` を追加
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
```/etc/apache2/conf-enabled/cgi-bin.conf
|
68
|
+
|
69
|
+
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
|
70
|
+
|
71
|
+
<Directory "/var/www/cgi-bin">
|
72
|
+
|
73
|
+
AllowOverride None
|
74
|
+
|
75
|
+
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
|
76
|
+
|
77
|
+
Require all granted
|
78
|
+
|
79
|
+
AddHandler cgi-script .py
|
80
|
+
|
81
|
+
PassEnv LANG # ←envvars で設定したLANGをCGIに引き渡す
|
82
|
+
|
83
|
+
</Directory>
|
84
|
+
|
85
|
+
```
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
サンプルコードを作成して cgi-bin に配置。
|
30
90
|
|
31
91
|
|
32
92
|
|
@@ -54,7 +114,19 @@
|
|
54
114
|
|
55
115
|
|
56
116
|
|
57
|
-
|
117
|
+
動作確認
|
118
|
+
|
119
|
+
|
120
|
+
|
121
|
+
```
|
122
|
+
|
123
|
+
# curl localhost/cgi-bin/hello.py
|
124
|
+
|
125
|
+
```
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
passenv ありの場合
|
58
130
|
|
59
131
|
|
60
132
|
|
@@ -67,3 +139,19 @@
|
|
67
139
|
date : 2019年 12月 2日 月曜日 15:06:22 UTC ←日本語ロケール
|
68
140
|
|
69
141
|
```
|
142
|
+
|
143
|
+
|
144
|
+
|
145
|
+
passenv なしの場合
|
146
|
+
|
147
|
+
|
148
|
+
|
149
|
+
```
|
150
|
+
|
151
|
+
LANG : None
|
152
|
+
|
153
|
+
sys.getfilesystemencoding: ANSI_X3.4-1968
|
154
|
+
|
155
|
+
date : Sun Dec 8 00:10:21 JST 2019
|
156
|
+
|
157
|
+
```
|
3
サンプルを追加
test
CHANGED
@@ -27,3 +27,43 @@
|
|
27
27
|
|
28
28
|
|
29
29
|
```
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
```python
|
34
|
+
|
35
|
+
#!/usr/bin/env python
|
36
|
+
|
37
|
+
import sys
|
38
|
+
|
39
|
+
import os
|
40
|
+
|
41
|
+
import subprocess
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
print "Content-type: text/html\n\n"
|
46
|
+
|
47
|
+
print "LANG : " + str(os.environ.get('LANG'))
|
48
|
+
|
49
|
+
print "sys.getfilesystemencoding: " + sys.getfilesystemencoding()
|
50
|
+
|
51
|
+
print "date : " + subprocess.check_output('date')
|
52
|
+
|
53
|
+
```
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
実行結果
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
```
|
62
|
+
|
63
|
+
LANG : ja_JP.utf8
|
64
|
+
|
65
|
+
sys.getfilesystemencoding: UTF-8 ← ロケールのエンコードが返ってきた
|
66
|
+
|
67
|
+
date : 2019年 12月 2日 月曜日 15:06:22 UTC ←日本語ロケール
|
68
|
+
|
69
|
+
```
|
2
追記2を追加。
test
CHANGED
@@ -7,3 +7,23 @@
|
|
7
7
|
|
8
8
|
|
9
9
|
apache の環境変数は、`/etc/apache2/envvars` ファイルで設定されてるのでこれを編集して apache2 を再起動してみてください。
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
(追記2)
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
apache の設定で次を追加すると うまくいくかもしれません。
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
```apache2.conf
|
22
|
+
|
23
|
+
# 環境変数LANGをShellから引き継ぐ
|
24
|
+
|
25
|
+
PassEnv LANG
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
```
|
1
別の回答を追記
test
CHANGED
@@ -1 +1,9 @@
|
|
1
1
|
あてずっぽうですが `raspi-config` で ロケールを設定して、再起動したら治りませんか?
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
(追記)
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
apache の環境変数は、`/etc/apache2/envvars` ファイルで設定されてるのでこれを編集して apache2 を再起動してみてください。
|