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


21

イメージフォルダーとアセットフォルダーを作成する必要があり、「Apache writable」であることを確認する必要があると言われました。また、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

回答:


24

Apacheは、バックグラウンドで実行されるプログラムです。Apacheは元々ユーザーroot(またはとも呼ばれますroot-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の結果は次のようになります。

ルート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

そのため、Webサーバーがディレクトリを書き込み可能にするには、ディレクトリの所有者またはグループを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 writableと同じですか?

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


どうもありがとう。mkdirでディレクトリを作成し、同時にそれらのアクセス許可を与える方法はありますか?
MEM

chmod -R o + w / or / path / hereもできるのは本当ですか?(明らかに-Rオプションです)。?
MEM

はい1つの方法は次のmkdir dirname && chgrp www-data dirname
とおりです。– Rinzwind

@MEMはい。Rコマンドを発行した場所からすべてのディレクトリを実行します。これを行うには多くの方法があります;)
Rinzwind

2
ps -ef | grep [a]pachegrep出力のスプリアス行を避けるための一般的なイディオムです。
enzotib
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.