質問: ディレクトリが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
回答: 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の結果は次のようになります。 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の仮想ホストとして設定されています