file_put_contents写到哪里?

时间:2015-12-01 20:12:27

标签: php

我正在使用Authorize.NET的SDK,我是通过作曲家引入的。它位于我的应用程序的vendor / authorizenet目录中。

我正在努力解决由Authorize.NET的Log类(在命名空间net \ authorize \ util中)调用file_put_contents的权限错误。在类的顶部,为日志文件定义了一个常量:

define ("ANET_LOG_FILE","phplog");

每当我尝试向Authorize.NET提交请求时,我都会收到以下信息:

file_put_contents(phplog): failed to open stream: Permission denied

所以很明显会出现某种权限错误,这会阻止Log类写入phplog文件。但是,我无法弄清楚哪个目录有权限错误。

我在vendor / authorizenet文件夹上尝试了递归chmod -R 777。我在我的工作区目录上尝试了chmod 777(不是递归的)。我也在vendor/authorizenet/authorizenet/lib/net/authorize/util(Log.php所在的位置)上尝试过相同的操作,但这也没有用。

有关目录file_put_contents正在查找' phplog'的任何想法文件?

2 个答案:

答案 0 :(得分:4)

除非指定路径,否则所有文件系统函数都会在进程的当前工作目录上运行。您可以致电getcwd了解相关信息。

答案 1 :(得分:0)

我明白了。我正在使用Laravel,因此使用getcwd指出在调用file_put_contents时我当前的工作目录是我的public目录。