web-dev-qa-db-ja.com

ディレクトリがApacheで書き込み可能であることをどのようにして知ることができますか?

イメージフォルダーとアセットフォルダーを作成する必要があり、「Apacheが書き込み可能である」ことを確認する必要があると言われました。また、app/runtimeディレクトリをWeb書き込み可能にするように言われました。これはApacheの書き込み可能と同じですか?その場合:

どうすればすぐにそれを行うことができますか、それを知ることができますか?

ls -lを実行すると、次のようなメッセージが表示されます。

drwxr-xr-x 13 user user 4096 2011-08-26 10:23 app
drwxr-xr-x 4 user user 4096 2011-08-26 10:23 runtime
drwxr-xr-x 2 user user 4096 2011-08-26 11:11 images
drwxr-xr-x 2 user user 4096 2011-08-26 11:12 assets
20
MEM

Apacheは、バックグラウンドで実行されるプログラムです。 Apacheは元々ユーザーrootroot-processとも呼ばれます)によって起動されます。このroot-processは、クライアント要求を処理するいくつかの子プロセスを起動します。セキュリティ上の理由から、子プロセスはユーザーrootではなく、最小限の特権を持つユーザーとして実行されます。通常、このユーザーの名前はApacheまたはwww-dataです。

これがApache v1のユーザーであるかどうかを確認するには:

ps -ef | grep httpd | grep -v grep

またはApache v2の場合:

ps -ef | grep Apache | grep -v grep

Apache 2の結果は次のようになります。

 root 5001 1 0 07:21? 00:00:00/usr/sbin/Apache2 -k start 
 www-data 5021 5001 0 07:21? 00:00:00/usr/sbin/Apache2 -k start 
 www-data 5022 5001 0 07:21? 00:00:00/usr/sbin/Apache2 -k start 
 www-data 5023 5001 0 07:21? 00:00:00/usr/sbin/Apache2 -k start 

この場合、ユーザー/グループはwww-dataです

そのため、ウェブサーバーがディレクトリを書き込み可能にするには、ディレクトリの所有者またはグループをApacheの所有者またはグループに設定し、書き込み許可を有効にする必要があります。通常、ディレクトリをApacheグループ(Apacheまたは `www-dataまたは子プロセスの起動に使用される任意のユーザー)に属するように設定し、グループの書き込み権限を有効にします。

chgrp www-data /path/to/mydir
chmod g+w /path/to/mydir

www-dataは、上記のpsコマンドで見つけた名前です)。

に関して:

2)app/runtimeディレクトリをWeb書き込み可能にするように言われました。これはApacheの書き込み可能と同じですか?

はい、これはApacheが期待するグループに対して書き込み可能に設定する必要があるディレクトリです。おそらくこれは/var/www/のどこかにあるか、/etc/Apache2/sites-enabled/および/または/etc/Apache2/sites-availableの仮想ホストとして設定されています

24
Rinzwind