0

PHP ソフトウェアを自動更新できるようにしたい。これが機能するには、既存のファイルと存在しないファイル (作成) の両方に書き込みできる PHP が必要です。ターゲット ファイルを 0777 に CHMOD してから書き込むと、常に機能しますか? または、PHP/Apache/wtvr プロセスがファイルの所有者である必要がありますか?

FTP アカウントを使用してアップロードすると、所有者が PHP プロセスと異なる場合がありますが、これは問題ですか?

編集: PHP アプリケーションを構築しています。アプリが実行される構成がわかりません。また、サーバー関連の設定を変更することもできません。chown() や chmod() のように、PHP でできることを実行できます。

4

2 に答える 2

2

ファイルが FTP 経由でアップロードされると、ファイルの所有権が ftp ユーザーに変更されるサーバーが 1 つあります。これにより、過去にいくつかの権限の問題が発生しました。

グループを使用してこれを回避します

たとえば、ファイルにアクセスするためのユーザーグループを作成し、apache と各 ftp ユーザーをグループに追加できます。

usermod -a -G appUpdaters www
usermod -a -G appUpdaters ftp1
usermod -a -G appUpdaters ftp2
etc...

次に、ファイル/フォルダーをユーザー + グループに chown し、chmod を 775 にします。

chown www.appUpdaters foldername
chmod 775 foldername

そうすれば、所有権が ftp1.appUpdaters または ftp2.appUpdaters に変更されても、他のユーザーは引き続きファイルに書き込むことができます。

私が言うように、私が使用するすべてのサーバーでこれを必要とするわけではないようですので、そうするかどうかはサーバーの構成に依存すると思います。グループを使用することにした場合は、このリンクが役立つ場合があります

http://www.cyberciti.biz/faq/howto-linux-add-user-to-group/

于 2010-01-06T11:36:44.397 に答える
1

アップロード先のフォルダを www サーバーが所有するようにします。次に、chmoded 755 の場合、php スクリプトはそのフォルダーに書き込むことができます。

# chown www somefolder
# chmod 755 !$

(www が所有する Web ファイルに他のものを作成しないでください)。

于 2010-01-06T11:10:27.723 に答える