PHP にディレクトリへの書き込み権限を与えるにはどうすればよいですか?
P粉512363233
2023-08-27 15:25:11
<p>PHP を使用してファイルを作成しようとしていますが、機能しません。これは書き込みアクセスがないためだと思います(以前にもこの問題がありました)。フォルダーを chmod 0777 して、これが問題かどうかをテストしようとしましたが、結果的に、フォルダーを元に戻すまで、そのディレクトリ内のすべてのスクリプトが 500 エラー メッセージを返すことになりました。
ファイルを作成できるように、PHP にファイル システムへの書き込みアクセスを与えるにはどうすればよいですか? </p>
<p>編集: Apache を使用して Hostgator 共有ホスティングでホストされています。 </p>
<p>編集 2: 誰かがコードについて質問しました:
コードは GD イメージ スクリプトです。残りの部分は、呼び出すたびにイメージを作成したときと同じように動作することがわかります。今回は、新しいテキストを追加するときにそれらを作成し、フォルダーに保存しようとします。私の書き込み行は次のとおりです。
imagejpeg(null,$file,85);</p>
<p>また、単に壊れたスクリプトであるかどうかを確認するためのテスト ファイルも作成しました (主に tizag からコピーしたものです)。
http://gearboxshow.info/rkr/lesig.jpg/testfile.txt (ここにコードを正しく投稿するかどうか、またどのように投稿すればよいかわかりません。これは、PHP タグを除いた PHP スクリプトの内容です。)< /p>
<p> 13,13,1 (別々の行) が返されるので、何か書いたと思われるようですが、testfile.txt が空白である (空白のものをアップロードしました) か、存在しません (削除した場合) ))。 </p>
<p>編集 3: サーバーは CentOS を実行しています。 </p>
シンプルな 3 ステップのソリューション
ステップ 1: PHP ユーザーを特定する
次の内容を含む PHP ファイルを作成します:
リーリーそれを Web サーバーにアップロードします。出力は次のようになります:
リーリーしたがって、PHP ユーザーは
www-data
になります。ステップ 2: ディレクトリの所有者を決定する
次に、コマンド ラインを使用して Web ディレクトリの詳細を確認します。
リーリー結果は次のようになります:
リーリーしたがって、このディレクトリの所有者は
exampleuser1
になります。ステップ 3: ディレクトリ所有者を PHP ユーザーに変更します
次に、Web ディレクトリの所有者を PHP ユーザーに変更します:
リーリーWeb ディレクトリの所有者が変更されたことを確認します:
リーリー結果は次のようになります:
リーリーこの時点で、
example-folder
の所有者は PHP ユーザー:www-data
に正常に変更されました。######仕上げる!これで、PHP はディレクトリに書き込むことができるようになります。
簡単な方法は、最初に PHP にディレクトリ自体を作成させることです。
リーリーこれにより、権限に関するトラブルを回避できます。