PHP で fopen() 関数が機能しない (Apache、Linux Mint)
P粉722409996
2023-08-13 14:14:43
<p>fopen() が Linux Mint 上の Apache2 ローカル サーバーで動作しません</p>
<pre class="brush:php;toolbar:false;"><?php
エラー報告(E_ALL);
ini_set('表示エラー',1);
include_once "c&f.php";
fopen("test.txt", 'w');</pre>
ファイル <p>test.txt</code> が作成され、Sublime を使用して開いて書き込むことができます。この特定のプロジェクトのディレクトリは <code>/var/www/site02</code> です。インストール後に apache2 を構成するときに、ファイルの読み取りと書き込みができるように、この特定のディレクトリ (site02) の所有権を特に変更しました (sudo chown $USER:$USER -R ... わかりますよね)。実際、このディレクトリでは自分のユーザー アカウントを使用して読み書きできます (このディレクトリでは、「sudo」なしで cli git コマンドを自由に使用できます)。 </p>
<p>上記のコードを使用して <code>index.php</code> にアクセスすると、次のエラーが発生します。
<ブロック引用>
<p>「警告: fopen(test.txt): ストリームを開けません: /var/www/site02/index.php、行 6 で許可が拒否されました」</p>
</blockquote>
<p>何が起こったのですか?この問題についてグーグルで調べてみましたが、何千もの異なる理由が見つかり、さらに混乱するばかりでした。 Apacheサーバーに問題があるのでしょうか?それとも、PHP の設定を変更する必要がありますか? </p>
そこで、この質問を投稿した後、ファイルマネージャー (Thunar) で /var/www/site02 を開いて、グラフィカルインターフェイスで権限を確認することにしました。はい、このディレクトリの所有者は私であり、読み書きできます。グループは myusername で、権限も読み取りと書き込みが可能です。ただし、「その他」の場合、権限は読み取りという 1 つだけです。読み書きできるように変更しました。そして、いくつかのコードでテストしてください:
リーリーそしてそれはうまくいきました!