I am working with Authorize.NET's SDK, which I pulled in through composer. It's sitting in the vendor/authorizenet directory in my app.
I am struggling with a permissions error for a call to file_put_contents made by Authorize.NET's Log class (in namespace net\authorize\util). At the top of the class, a constant is defined for a log file:
define ("ANET_LOG_FILE","phplog");
Every time I try to submit a request to Authorize.NET, I get the following:
file_put_contents(phplog): failed to open stream: Permission denied
So obviously there is some kind of permissions error going on that is preventing the Log class from writing to the phplog file. However, I can't figure out what directory has the permissions error.
I tried a recursive chmod -R 777
on the vendor/authorizenet folder. I tried a chmod 777
on my workspace directory (not recursive). I also tried the same on vendor/authorizenet/authorizenet/lib/net/authorize/util
(where Log.php is located), and that also didn't work.
Any ideas about what directory file_put_contents is looking in for the 'phplog' file?
Unless you specify a path, all filesystem functions work on the process's current working directory. You can find out what that is by calling getcwd
.
I figured it out. I'm using Laravel, so using getcwd
pointed out that my current working directory when the file_put_contents call is made is to my public
directory.