2012-05-09 9 views
3

私はphpを使ってフォルダを作成するcodeigniterアプリケーションを持っています。 php経由で作成されたフォルダの所有者は「apache」ですが、ftp経由でフォルダをアップロードする場合は、所有者が自分のftpユーザー名です。php apache permissions - ベストプラクティス

私は、アクセス許可のためにftp経由でアップロードされたフォルダ内のファイルをphp(apache)で変更できないという問題がありました。その間、私はftpuserをapacheグループに追加し、apacheをftpuserグループに追加しましたが、より良い方法があるかどうか疑問に思っていましたか?

+0

私はこの回答を読むことをお勧めします:http://serverfault.com/a/357109/233024 – HEDMON

+2

スタックオーバーフローはプログラミングと開発の質問のサイトです。この質問は、プログラミングや開発に関するものではないので、話題にはならないようです。ヘルプセンターの[ここではどのトピックを参照できますか](http://stackoverflow.com/help/on-topic)を参照してください。おそらく、[スーパーユーザ](http://superuser.com/)や[Unix&Linux Stack Exchange](http://unix.stackexchange.com/)の方が良いかもしれません。また、[Dev Opsについての質問はどこに投稿しますか?](http://meta.stackexchange.com/q/134306)を参照してください。 – jww

答えて

3

私がすることは、chgrpというディレクトリです。phpはグループに書き込みます。apacheは(私のサーバ上のwww、あなたのApache上にある可能性があります)、chmod g + sです。これにより、そのディレクトリで作成されたファイルもWebサーバーグループの所有になります。デフォルトのumaskでグループ書き込みが許可されている場合、これが問題を解決します。

+1

ウェブサイトのディレクトリ全体でchmod g + sを実行してwww-dataを使用し、その後ftpユーザーを経由してファイルをアップロードしてファイルをアップロードすると、アップロードされたすべてのファイルは自動的にwww-dataによって所有されます。 –

1

ベストプラクティスは、ユーザーが必要なファイルの読み書きのみを許可することです。

私のウェブアプリケーションでは、Webサイト用のデータディレクトリがあります。このディレクトリには、アプリケーションから動的に生成されたすべてのデータが保存されています。

私は、そのディレクトリに書き込む許可をアプリに与えるだけです。