0

test.php は test.txt を開いて書き込みます。1 つのホスティング サーバーで正常に動作します。

コードを別のホストに移行した後、test.php は test.txt を書き出すことができなくなりました。エラーは次のとおりです。

Warning: fopen(/home/username/public_html/test.txt)
[function.fopen]: failed to open stream: Permission denied

test.txt ファイルが 777 に設定されている場合にのみ機能します。元のホストでは、test.txt は 755 に設定されています。

この新しいホストで 777 を使用せずに test.php にファイルへの書き込みを許可するには、何が欠けていますか?

また、ファイル アップロードの PHP スクリプトも機能しません。

4

1 に答える 1

1

重要なのはパーミッションだけではなく、誰がファイルを所有するかも重要です。Web サーバーの実行に使用されているのと同じユーザーがフォルダー/ファイルを所有している場合は、755 で十分です。

public_html ディレクトリに直接書き込むことは、セキュリティ上の大きなリスクになります。サブディレクトリ (おそらく public_html の外にあるのが最適) フォルダーを作成し、適切なアクセス許可/所有権を付与することをお勧めします。

apache を実行しているユーザー (または使用されている Web サーバー) が所有するフォルダーを持つ方が安全です。

于 2013-02-19T22:39:06.533 に答える