Androidの携帯電話からapache2を実行しているRaspberry Piのサーバにファイルをアップロードします。私は動作していないphpでこれを行いたいので、問題を最小限の例に減らしました。私はその問題が許可に関係していると思う。私は自分のPC上のブラウザからこのファイルにアクセスした場合、私は内にあるものを実行した場合、私は許可がサーバにファイルを書き込むことを拒否されました
Current script owner: pi Array ([type] => 2 [message] => fopen(testfile2): failed to open stream: Permission denied [file] => /var/www/gcm/wtest.php [line] => 8) write 2 error
を取得
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/s$
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<?php
echo 'Current script owner: ' . get_current_user();
echo "\n";
$file2 = fopen('testfile2', 'w');
if ($file2 === false)
{
print_r(error_get_last());
}
$fwrite2 = fwrite($file2, 'hello');
if ($fwrite2 === false){
echo "\n";
echo "write 2 error\n";
}
else{
echo "write2 OK\n";
}
fclose($file2);
?>
</html>
:
はは、サーバー上の次のwtest.phpファイルを持っていますphpタグをRaspberry Piサーバーのスクリプトとして使用すると、正常に動作します。 一時的に wtest.phpとgcmフォルダの権限を777に変更しました。私はこれが永久的な解決策のための悪い考えであることを知っていますが、問題を絞り込むために簡単に試しました。
これまでのところ、何も効果がありませんでした。すべてのヘルプは非常に
Webサーバーのユーザーとファイルの所有者が同じ場合は、本当ですか?あなたは書かれているはずのファイルに対して 'chmod 777'をしますか? –
@PraveenKumar書き込まれるファイルは、コードが実行されるまで実際には存在しません。 PHPが作成します。サーバー上で実行されるスクリプトでは正常に動作しますが、ブラウザでは動作しません。 – NickT
[get_current_user()](http://php.net/manual/en/function.get-current-user.php)で実行されているオーナー/グループphpを確認して、Webフォルダの所有者/グループを同じ。 – Novocaine