
ポストでウィンドウのNTFS上のリソースにアクセスする問題を解決し、Debian の Apache が Windows の ntfs ファイルシステム上のリソースにアクセスできるように成功しました。次に、Debian の Apache が Windows の vfat ファイルシステム上のリソースにアクセスできるようにしたいと思います。
ディスクパーティションが フォーマットされsda2
ていますvfat
。
sudo blkid |grep 995A
/dev/sdb2: LABEL="SHARED" UUID="5E9C-995A" TYPE="vfat" PARTLABEL="Basic data partition" PARTUUID="efdeb9ab-e920-40e6-9d24-df672b8806e9"
自動的にマウントするための設定を書き込みます/etc/fstab
。
UUID=5E9C-995A /media/debian/SHARED vfat auto ,sync,umask=000 ,rw 0 0
これで/dev/sda2
自動的にマウントできるようになりました。私のApacheの設定は次の通りですdebian
:
cat /etc/apache2/sites-enabled/000-default.conf
<VirtualHost *:80>
ServerName localhost
DocumentRoot /media/debian/SHARED/project
Alias /project "/media/debian/SHARED/project/build/html"
<Directory /media/debian/SHARED/project>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
の権限を設定します/media/debian/SHARED/project
。
sudo chmod -R 644 /media/debian/SHARED/project
Apacheを再起動します:
sudo systemctl restart apache2
Firefoxで入力します 127.0.0.
。127.0.0.1/project
Forbidden
You don't have permission to access this resource.
Apache/2.4.25 (Debian) Server at 127.0.0.1 Port 80
ログを確認するには:
sudo cat /var/log/apache2/error.log
[Wed Aug 12 17:11:58.727479 2020] [core:error] [pid 3149] (13)Permission denied: [client 127.0.0.1:56434] AH00035: access to / denied (filesystem path '/media/debian/SHARED') >because search permissions are missing on a component of the path
[Wed Aug 12 16:53:37.958950 2020] [core:error] [pid 3061] (13)Permission denied: [client 127.0.0.1:56158] AH00035: access to /project/ denied (filesystem path '/media/debian/SHARED') because search permissions are missing on a component of the path
所有権を表示する/media/debian/SHARED/project
ls -al /media/debian/SHARED/project
total 304
drwxr-xr-x 14 root root 16384 Aug 12 14:19 .
drwxr-xr-x 4 root root 16384 Jan 1 1970 ..
drwxr-xr-x 4 root root 16384 Aug 12 14:18 build
/media/debian/SHARED
ディスク パーティション上にあるためvfat
、所有権を変更することはできませんchown
。
sudo chown -R www-data.www-data /media/debian/SHARED/project
chown: changing ownership of '/media/debian/SHARED/project': Operation not permitted
Apache が VFAT パーティション上のリソースにアクセスできるようにする方法、ステップ バイ ステップのソリューションをお願いします。
答え1
答えは実際のこの問題については、以前の質問で既に取り上げられており、対処および説明されています。エラーの原因となっているディレクトリの 1 つまたは 2 つのディレクトリを超えたところに問題があると考えるのは誤りです。問題はまさに にあります/media/debian/
。
/media/someuser
などのディレクトリには近づかないでください/media/debian
。これらのディレクトリはシステムによって特別な扱いを受け、必要に応じて各ユーザーに対して動的にディレクトリが作成されます。これらのディレクトリは「席を保持している」ユーザー専用であり、デフォルトでは Apache プロセスがアクセスできません。再起動または単純なログオフ/ログインによってアクセス権がリセットされ、以前はアクセスできたとしても Apache httpd が再びアクセスできなくなる可能性もあります。
/srv/
マウントポイント ディレクトリを別の場所に作成するだけです。またはという新しいディレクトリ内/data/
(または 内でもよいですが/var/www/
、お勧めしません) に作成できます。
たとえば、root として:
mkdir -p /srv/media/SHARED
次に、すべての Apache 設定を変更し、の代わりに/etc/fstab
を指すようにします。/srv/media/SHARED
/media/debian/SHARED
の場合のように、ユーザー権限を動的に処理するツールとの競合は発生しないため/media/debian
、apache httpd のユーザー www-data が にアクセスする際に権限の問題が発生することはありません/srv/media/SHARED
。
それが以前の目的だった場合、このディレクトリはこのユーザー用に予約されたディレクトリではないため、ユーザーの GUI には直接表示されない可能性があります。またはdebian
を指すシンボリックリンクまたはその他のデスクトップ メソッドを追加するだけです。/srv/media
/srv/media/SHARED
VFATは非常に制限されたファイルシステムであるため、問題が発生する場合があります。これは、Operation not permitted
VFATでは正常で予想されるエラーです。チョーンそしてchmodVFATを使用しない以外に修正する方法はありません。httpdは(おそらくいくつかのオプションに依存しますが)実行権限を持つファイルに対して特別な解釈を行う可能性があります。そのようなケースが発生した場合、これは別の問題であり、POSIXファイルシステム、または少なくともNTFSを使用することで簡単に解決できます。ntfs-3g微調整を加えて(.NTFS-3G/UserMapping
) を使用してアクセス権を処理します。VFAT または ExFAT は使用しないでください。