I’m stuck trying to open a file with fopen in php.
$db_ausgaenge = "statuseing.php"; $dout = fopen($db_ausgaenge, "x+"); print $dout; print(shell_exec('whoami')); print(shell_exec('pwd')); print(shell_exec('id')); fwrite($dout, $out); fclose($dout); Warning: fopen(statuseing.php): failed to open stream: File exists in /var/www/html/zufallsgenerator.php on line 33
I checked following items:
- chmod for statuseing.php 0777
- owner is www-data with groud www-data
- script is running as user www-data
- groups are uid=33(www-data) gid=33(www-data) groups=33(www-data)
- pwd is /var/www/html as expected
- the path the scripts want’s to open is correct
checked openbase dir in php.ini showed in phpinfo(), added /var/www/html, but php doesn’t care about it.
open_basedir = /var/www/html/
After daemon-reload and restarting apache2 via systemctl nothing changed, phpinfo() didn’t show the path given in the config. restarting the system via init 6 didn’t took effect, too.
Advertisement
Answer
statuseing.php already exists.
See the manual (http://php.net/manual/en/function.fopen.php) – opening in x or x+ mode says: Create and open for writing only; place the file pointer at the beginning of the file. If the file already exists, the fopen() call will fail by returning FALSE