Apache によって呼び出された PHP スクリプトから次を実行します。
$h = fopen(getcwd()."tmp.txt","w");
fprintf($h,"hi");
fclose($h);
私の個人ユーザー ID が所有するファイルを 644 パーミッションで生成します。ただし、Apache/PHP はユーザー wwwrun として実行されており、ファイルを上書きしたり、chmod する権限がないため、スクリプトを再度実行するとエラーが発生します。
ファイルが配置されているディレクトリは私のホーム ディレクトリにあり、777 のアクセス許可があります。PHP で wwwrun が所有するファイルを作成するか、666 のアクセス許可で作成するか、または何か他のことを行って、PHP による上書きを許可するにはどうすればよいですか。
exec
関数で呼び出される外部プログラムを介してPHPによってファイルが作成される状況にも適用されるソリューションを理想的に探しています。外部プログラムはwwwrunとして実行されますが、外部プログラムによって作成されたファイルは私の個人ユーザーIDによって所有されているという点で、これは同じ問題に苦しんでいるようです。