My server is in /var/www/html I have a php script in /var/www/html/fileio_test/io_test.php
<?php $logging = <<< LOG This is a test LOG; $testfile = fopen('/home/djameson/test.txt', 'a'); fwrite ($testfile, $logging); fclose($testfile); ?>
When I try to run this script I get
Warning: fopen(/home/djameson/test.txt): failed to open stream: Permission denied in /var/www/html/fileio_test/io_test.php on line 7 Warning: fwrite() expects parameter 1 to be resource, boolean given in /var/www/html/fileio_test/io_test.php on line 8 Warning: fclose() expects parameter 1 to be resource, boolean given in /var/www/html/fileio_test/io_test.php on line 9
How do I let apache write to my home directory? The server runs on fedora 20.
Advertisement
Answer
As your file residing in your Home directory, I would suggest one of following approaches.
Give 0777 permission to file itself.
chmod 0777 /home/djameson/test.txt
Change Ownership to apache user www-data and give owner-write permission.
sudo chown www-data:www-data /home/djameson/test.txt chmod 0744 /home/djameson/test.txt
Add your user to www-data group or vice-verse add www-data user to your group. And then group write permission.
sudo usermod -a -G www-data djameson chmod 0764 /home/djameson/test.txt
NOTE : I am assuming apache user name & group name is www-data & www-data respectively. You must change accordingly your server apache username/group name.