Ubuntuバージョン14.04を実行していますが、/var/www/html
に保存されているlocalhostのphpファイルをホストするように設定されたApache2サーバーがあります。
私のPHPスクリプトの1つで次のコードを実行しようとすると
<?php
$file = fopen("test.txt","w");
fwrite($file,"Hello World. Testing!");
fclose($file);
?>
Test.txtという名前の/ var/www/htmlに保存されているファイル、または検索後にコンピューターのどこにもファイルが見つかりません。ファイル名はまだ存在していません。Sudo nautilus
内のphpファイルを編集するために必要な権限がないため、/var/www/html
を使用しています。 /var/www/html
フォルダーにファイルが表示されないのはなぜですか。ファイルが作成されるように修正するにはどうすればよいですか?
サーバーでphpファイルをテストしたところ、正常に動作します。
問題は、ユーザーwww-data
がそのフォルダーへの書き込み権限を持っていないことです。
実際にそのユーザーがそのフォルダーへの書き込み権限を持っていない場合、ファイル/var/log/Apache2/error.log
にエラーメッセージが表示されます。
最後のエラーを確認するには、次を実行します
tail -n 15 /var/log/Apache2/error.log
たとえば、「test.txt」の代わりに「/test.txt」(/に書き込み、rootのみが可能)を置くと、ログファイル内に次のエラーが表示されます。
[:error] [pid 7505] [client 127.0.0.1:47066] PHP Warning: fopen(/test.txt): failed to open stream: Permission denied in /var/www/html/a.php on line 2
上記は、許可が拒否されていることを明確に示しています。
ユーザーwww-data
に対してそのフォルダーへの書き込み許可を与えることにより、この問題を修正できます。