Reputation: 3
So I've got Apache on web server running Fedora. I'm trying to write into the text file.
if(!empty($_POST['versionWrite'])){
$file = fopen(APP_DIR."/resources/version.txt", "w");
fwrite($file, $_POST['versionWrite'].PHP_EOL);
fclose($file);
}
And when I execute the code, I get this:
Warning: fopen(/var/www/spumprnagle/resources/version.txt): failed to open stream: Permission denied in /var/www/spumprnagle/head.php on line 28
Warning: fwrite() expects parameter 1 to be resource, boolean given in /var/www/spumprnagle/head.php on line 29
Warning: fclose() expects parameter 1 to be resource, boolean given in /var/www/spumprnagle/head.php on line 30
This happens in every script working with files. And I have no idea what shall I do to grant Apache permissions to edit files.
Thanks for your time :).
Upvotes: 0
Views: 1426
Reputation: 1559
OK, I add this answer for who are searching for answer on Fedora. I changed file permissions to 777 and file ownership to apache:apache but it keeps throwing the same error. finally I found that in some versions of Fedora SElinux prevents Httpd from writing files. The solution is to disable SElinux as follow:
vim /etc/selinux/config
then edit the file as follow:
SELINUX=disabled
Then Restart. It worked for me. Happy coding.
Upvotes: 2
Reputation: 775
Problem: The apache user doesn't have the permission to write file.
Solution:
chown -R apache:apache path/to/directory
where apache is the default user for fedora and path/to/directory is the path of the directory containing the files with you want to write.
If you want to give the permission to a single file then omit -R
Upvotes: 0
Reputation: 1682
I would start by checking permissions on the file /var/www/spumprnagle/resources/version.txt
to ensure that it's writeable by the web user. Since you tagged fedora
here, I believe that's usually the apache
user, so try chown apache:apache /var/www/spumprnagle/resources/version.txt
.
If you're unsure of permission setting you can always temporarily set 777, e.g. chmod 777 /var/www/spumprnagle/resources/version.txt
. If that resolves the issue, you can adjust the permissions down to something more reasonable (644).
Upvotes: 0