質問: new XMLHttpRequest(); xhr.open('POST', 'write_data.php'); // 'write_data.php' is the path to the php file described above. xhr.setRequestHeader('Content-Type', 'application/json'); xhr.send(JSON.stringify({filename: name, filedata: data})); } //最後 //jsPsych.data.get()は問題なく作動しています。 //ファイル名はid+random_string(作成済み).csvとしたいです。 saveData(prolificid + random_string, jsPsych.data.get().csv()); ``` write_data.php ``` ``` ### 補足情報(FW/ツールのバージョンなど) Amazon Linux 2 AMI 2.0.20200406.0 x86_64 HVM gp2 PHP 7.4.6
回答: Linux 上の Apache + PHP であれば、通常 Web サイトとして使用されている PHP は、Apache の権限で動作します。 つまり apache の動作ユーザーかグループで、該当ディレクトリに対する読み・書き・実行の各権限がなくてはなりません。 apache がどのユーザーで動いているかは、top でもすれば簡単に調べられます(httpd.conf に記載がありますが一応) 確実にするには、 * Apache の実行ユーザをオーナーとする * ディレクトリへの書き込み権限はユーザのみとする(drwxr-xr-x あたり) という感じでしょうか。ただしその場合通常のユーザ(ec2-user)で読み書きできなくなるので、オーナーは ec2-user、グループを apache のグループ、権限を drwxrwxr-x にするあたりが現実的です。