リモートSSHFSファイルシステムを/ usr/share/nginx/htmlにマウントするNGINXコンテナーを使用しています。目的は、毎回使用することです。新しいステートレスnginxコンテナですが、永続的なコンテンツは同じです。
-SSHFSサーバーが稼働していることを確認しました。
-nginxコンテナ(sshfsクライアント)で、リモートsshfsファイルシステムを/ usr/share/nginx/htmlにマウントしました
/ # sshfs [email protected]:/data /usr/share/nginx/html
[email protected]'s password: / #
-マウントは正常に見えます:
/ # mount | grep sshfs
[email protected]:/data on /usr/share/nginx/html type Fuse.sshfs
(rw,nosuid,nodev,relatime,user_id=0,group_id=0)
/ # df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 886G 681G 161G 81% /
none 886G 681G 161G 81% /
tmpfs 7.9G 0 7.9G 0% /dev
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
/dev/sda1 886G 681G 161G 81% /gns3
shm 64M 0 64M 0% /dev/shm
[email protected]:/data 976M 2.6M 907M 1% /usr/share/nginx/html
-そこにいくつかのファイルを置き、それらは誰でも読むことができます:
/ # ls -la /usr/share/nginx/html
total 36 drwxr-xr-x 1 root root 4096 Aug 20 11:48 . drwxr-xr-x 5 root
root 4096 Aug 20 11:36 ..
-rw-r--r-- 1 root root 537 Aug 20 11:48 50x.html
-rw-r--r-- 1 root root 612 Aug 20 11:48 index.html
drwx------ 1 root root 16384 Aug 20 11:23 lost+found
-rw-r--r-- 1 root root 310 Aug 20 11:48 test.php
新しいnginxコンテナーが何であれ、リモートSSHFSをマウントすると、ユーザーが同じ情報を参照できます。
Nginxは/ usr/share/nginx/htmlのコンテンツを読み取りません。インデックスファイルがないように機能します。
ブラウザに何も表示されません:
nginxログ:
/ # tail /var/log/nginx/error.log
2017/08/20 15:47:16 [crit] 139#0: *3 stat() "/usr/share/nginx/html/" failed (13: Permission denied), client: 192.168.122.247, server: ajnouri.local, request: "GET / HTTP/1.1", Host: "192.168.122.100"
2017/08/20 15:47:16 [crit] 139#0: *3 stat() "/usr/share/nginx/html/404.html" failed (13: Permission denied), client: 192.168.122.247, server: ajnouri.local, request: "GET / HTTP/1.1", Host: "192.168.122.100"
2017/08/20 15:47:16 [crit] 139#0: *3 stat() "/usr/share/nginx/html/404.html" failed (13: Permission denied), client: 192.168.122.247, server: ajnouri.local, request: "GET / HTTP/1.1", Host: "192.168.122.100"
「www-data」はディレクトリに書き込む必要があるようです。
####################### UPDATE
そのため、サーバー上の通常のユーザーであり、sshfsクライアントが「www-data」を使用して「/ var/www」をマウントすることに成功したため、なんとか「www-data」ユーザーを作成できました。
サーバーで、「www-data」ホームディレクトリ(/ var/www)の所有者をwww-data:www-dataに変更しました
/#chown -R www-data:www-data/var/www
/ # ls -la /var/www
total 36
drwxr-xr-x 1 www-data www-data 4096 Aug 20 11:48 .
drwxr-xr-x 5 root root 4096 Aug 20 11:36 ..
-rw-r--r-- 1 www-data www-data 537 Aug 20 11:48 50x.html
-rw-r--r-- 1 www-data www-data 612 Aug 20 11:48 index.html
drwx------ 1 www-data www-data 16384 Aug 20 11:23 lost+found
-rw-r--r-- 1 www-data www-data 310 Aug 20 11:48 test.php
######################
問題を解決していないようです。
Nginxコンテナ(sshfsクライアント)とsshfsサーバーは同じOSを使用します:
/ # lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu 14.04.1 LTS
Release: 14.04
Codename: trusty
将来役立つかもしれない人のために、私はこの問題を抱えていました、そしてもう少し検索した後、マウント呼び出しに-o allow_other
を追加することでそれを機能させることができたことがわかりました
内部で何をしているのか、なぜそれが必要なのか(uidまたはgidを設定しても何も起こりません)はわかりませんが、そこに行きます。
ソース: https://stackoverflow.com/questions/29330382/how-to-enable-writing-to-sshfs-directory-in-php
構成に行があることを確認します
index index.html index.htm;
または、フルリンクでサイトに接続します(例:192.168.0.20/index.html)。