Question

Able to Read but not Write to a file using PHP/Apache on CentOS

$myfile = fopen(“testData.txt”, “r”) or die(“Unable to open file!”); echo fread($myfile,filesize(“testData.txt”)); fclose($myfile);

Above works! The following fails using either “a”-append or “w”-write!

$myfile = fopen(“testData.txt”, “a”) or die(“Unable to open file!”); $txt = “John Doe\n”; fwrite($myfile, $txt); $txt = “Jane Doe\n”; fwrite($myfile, $txt); fclose($myfile);

ls -l returns: -rw-rw-rw-. 1 user user 24 Dec24 07:54 testData.txt

I am sure that it is a permissions issue somewhere, but no clue where to look. PHP file and the data file are in the same directory (I know this is not good practice - just trying to eliminate as many variables as possible).

Thank you in advance.

Show comments

Submit an answer

This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Sign In or Sign Up to Answer

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Want to learn more? Join the DigitalOcean Community!

Join our DigitalOcean community of over a million developers for free! Get help and share knowledge in Q&A, subscribe to topics of interest, and get courses and tools that will help you grow as a developer and scale your project or business.

Hi @revans2695,

It does seem exactly like that, if you are able to open it with the user from the shell and not from the browser, I would say exactly that.

Regards, KDSys

Hi @revans2695,

It’s possible you’ve or any other system has made the file immutable. Please execute the following command on the file

lsattr testData.txt

It will show you the attributes of the file. Example

 lsattr test
----i---------e--- test

The above example shows the file has a tag of -i and -e. The -i tag means immutable while the -e tag means executable. To remove the -i tag, you would need to do

chattr -i test

Regards, KDSys