Skip to content
Advertisement

PHP isn’t able to read file

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

User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement