teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

内容の改善。

2021/09/17 05:46

投稿

ASAPBYAF
ASAPBYAF

スコア2

answer CHANGED
@@ -6,66 +6,45 @@
6
6
  特に**Verify the supplied path and access permissions for whole of the path.**の部分が改善の具体策を与えてくれたと考えています。
7
7
  この部分は「与えられているpythonのパス**/home/vagrant/anaconda3/envs/gaia**のパスがあっているか、またアクセス権限があるかを確認してください。」という意味だと考えました。
8
8
 
9
- ###そこで/home/vagrant/anaconda3/envs/gaiaについてアクセス権確認しました。
10
- /(homeがあるディレクトリが/だったので)でls -laというコマンドを使って所有者とグルプ名、およびその権限を確認しました。
9
+ ###そこで以下の2点見直しました。
10
+ (1)実行ユザーは誰か?
11
+ (2)(1)で確認したユーザーは適切な権限を持っているか?
12
+ ###なぜこの2点だと考えたか
13
+ apacheを起動するのはrootだが、ブラウザからのアクセスに対応しているのは実行ユーザという者らしいと知り、実行ユーザが適切な権限を持って、レスポンスに必要なファイルおよびディレクトリにアクセスできる必要があると考えたから。(正直、正確な理解はできてないです。http://honana.com/apache/apache_22/userとhttps://qiita.com/100/items/ab31e57fcc66ac661d5cを参考にしました。)
14
+ ###(1)について
15
+ (/usr/local/apache2/conf/httpd.conf)でhttpd.confファイルの以下を確認。
11
16
  ```ここに言語を入力
17
+ User daemon
12
- drwxr-xr-x. 3 root root 21 5月 13 2020 home
18
+ Group daemon
13
19
  ```
14
- という結果でした。これは、所有者とグループがともrootになってることを表しいます。
20
+ ###(2)いて
15
- 見方は左側が所有者、右側がグループです。(https://qiita.com/shizen-shin/items/453e408f78483d391930を参考しました。)
16
- その後、vagrant/anaconda3/envs/gaiaのそれぞれのディレクトリに移動してls -laコマンドを使い、すべて所有者とグループがvagrantになっていること確認しました。
21
+ **/home/vagrant/anaconda3/envs/gaia**各ディレクトリ権限を確認。各ディレクトリの上のディレクトリでls -laを使ことで、確認しました。
17
22
  ```ここに言語を入力
23
+ drwxr-xr-x. 3 root root 21 5月 13 2020 home
18
- drwxrwxrwx. 1 vagrant vagrant 0 9月 15 10:26 vagrant
24
+ drwx------. 8 vagrant vagrant 258 9月 17 14:08 vagrant
19
25
  drwxrwxr-x. 28 vagrant vagrant 4096 9月 15 12:11 anaconda3
20
- drwxrwxr-x. 2 vagrant vagrant 12288 9月 15 12:10 bin
26
+ drwxrwxr-x. 3 vagrant vagrant 46 9月 15 12:17 envs
21
27
  drwxrwxr-x. 11 vagrant vagrant 173 9月 15 12:17 gaia
22
-
23
28
  ```
24
- これらのことから、
25
- ###まず誰にアクセス権限を与えるべきか考え、以下三点を確認しました。
29
+ vagrantのディレクトリにアクセス権限がないこが問題ように思えました。
26
- (1)今のユーザー
27
- (2)今ユーザーが属するグループ
30
+ (アクセス権限見方はhttps://qiita.com/shizen-shin/items/453e408f78483d391930を参考にしました。)
28
- (3)apacheのhttpd.confに設定されいるユーザーおよびグループ
31
+ そこで、chmod o+r vagrantとchmod o+x vagrantを使っ、権限を与えました。
29
-
30
- (1)who(https://eng-entrance.com/linux-user-showを参考
32
+ コマンドの詳細はhttps://qiita.com/ntkgcj/items/6450e25c5564ccaa1b95を参考にしました。
31
- (2)はcat /etc/passwdおよび cat /etc/group(https://eng-entrance.com/linux-user-showとhttps://kazmax.zpp.jp/linux_beginner/etc_group.htmlを参考)
32
- (3)はhttpd.confファイル
33
+ 後、homeでls -laとすると、
33
- を使いました。
34
- (1)の結果
35
34
  ```ここに言語を入力
36
- vagrant pts/0 2021-09-17 09:39 (10.0.2.2)
35
+ drwx---r-x. 8 vagrant vagrant 258 9月 17 14:08 vagrant
37
36
  ```
37
+ となっており、権限が確認されました。
38
- (2)の結果はcat /etc/passwdつい(vagrantの列を抜粋)
38
+ ###再起動して実際アクセスすると、出力が返っきました。
39
+ 再起動。
39
40
  ```ここに言語を入力
40
- vagrant:x:1000:1000:vagrant:/home/vagrant:/bin/bash
41
+ systemctl restart apache2
41
42
  ```
42
- cat /etc/groupについて(vagrantの列を抜粋)
43
+ リクエスト
43
- ```ここに言語を入力
44
+ ```ここに言語を入力
44
- vagrant:x:1000:vagrant
45
+ curl localhost:81/myapp/
45
46
  ```
46
- (3) もともと両方daemonになっていたので、(1)(2)の結果を受けて以下のように設定しなおしました。
47
- ```ここに言語を入力
48
- <IfModule unixd_module>
49
- #
47
+ 出力
50
- # If you wish httpd to run as a different user or group, you must run
51
- # httpd as root initially and it will switch.
52
- #
53
- # User/Group: The name (or #number) of the user/group to run httpd as.
54
- # It is usually good practice to create a dedicated user and group for
55
- # running httpd, as with most system services.
56
- #
57
- User vagrant
58
- Group vagrant
59
-
60
- </IfModule>
61
48
  ```
62
-
63
- これらからvagrantがapacheを動かすことになるのだろうと考え、つぎはpythonのパスに対してvagrantに権限与えることを考えました。
64
-
65
- そこで、問題はhomeのグループ名にあると考えて、それをvagrantに変更しました。
66
- コマンドは、**chown root:vagrant home**を使いました。(https://webkaru.net/linux/chown-command/を参考しました。)
67
- その後、もう一度、/でls -laというコマンドを使って所有者とグループ名、およびその権限を確認しました。すると、
68
- ```ここに言語を入力
49
+ Hello World!
69
- drwxr-xr-x. 3 root vagrant 21 5月 13 2020 home
70
- ```
50
+ ```
71
- のようにグループが変更されていることが確認できました。