2017-04-01 10 views
0

基本的な質問は申し訳ありませんが、答えが見つかりません。私はPHP内からファイルに書き込もうとしていますが、Permissionが拒否されて失敗します。なぜか分かりません。 私のコードはPHP内からファイルを書き込む方法 - 許可が拒否されました

<!DOCTYPE HTML> 
<html> 
<head> 
    <title>File test</title> 

<?php 
ini_set('display_errors', 'On'); 
error_reporting(E_ALL | E_STRICT); 

echo 'Current script owner: ' . get_current_user(); 
echo '<br>WhoAmI: '. shell_exec('whoami'); 
echo '<br>cwd: '.getcwd(); 
$plist = fopen("plist.txt", "w") or die("Unable to open file!"); 
fwrite($plist, 'some text'); 
fclose($plist); 
?> 

これは私が

Current script owner: mick 
WhoAmI: www-data 
cwd: /home/mick/Documents/www/test 
Warning: fopen(plist.txt): failed to open stream: Permission denied in /home/mick/Documents/www/test/fileTest.php on line 13 
Unable to open file! 

私のユーザー(ミック)は、明らかに私が記述しようとしていますディレクトリを所有し、WWW-データが「ミックのメンバーであることがわかり出力されています'グループ。私は777にディレクトリを設定して動作させようとしましたが、まだエラーが発生します。私はここで何を逃したのですか?

+0

お手数ですが、 'ls -la/home/mick/Documents/www/test'を実行してください。 –

+0

現在のファイルパスとは何ですか?また、テキストファイルのパスとは何ですか? – C2486

+0

これは、-rw-r-r-- 1 mick mickを返します。374 Apr 1 15:33 fileTest.php –

答えて

0

www-dataの許可を得る必要があります。あなたはこれらのコマンドを実行して、それを行うことができます。

sudo chown www-data:www-data /home/mick/Documents/www/test 
sudo chmod 777 /home/mick/Documents/www/test 

上記のコードは、ユーザーWWW-データディレクトリへのための完全なアクセスを提供します。

またはw + inner fopenを追加します。存在しない場合はファイルを作成します。

+0

はいそれはapacheです。私はちょうどあなたの提案を試みたが、それは違いはありません、同じエラーを取得します。 –

+0

OK私は今それを持っていると思います。私はある時点で、オーナーのミックとテキストファイルを作成していました。私はそれに書き込めるはずです。当時、私はそれがwww-データとして書くことに気づいていなかった。それは今働く。ご協力いただきありがとうございます。 –

関連する問題