使用七牛云存储PHP SDK上传文件时,报错:Warning: file_put_contents(/.qiniu_phpsdk_hostscache.json),但上传文件成功。
根据错误提示找到Zone.php第149行和第150行:
$path = $this->hostCacheFilePath(); file_put_contents($path, json_encode($this->hostCache), LOCK_EX);
起初猜测网站目录没有写入权限,在设置读写权限后仍然报错,通过第149行代码找到第156和第157行:
$home = getenv('HOME'); return $home . '/.qiniu_phpsdk_hostscache.json';
测试了一下getenv('HOME')没有输出,因此造成file_put_contents无法写入,于是将这两行代码替换为:
return __DIR__ . '/.qiniu_phpsdk_hostscache.json';
至此问题已解决。