PHP fwrite() 无法写入子目录
Posted
技术标签:
【中文标题】PHP fwrite() 无法写入子目录【英文标题】:PHP fwrite() cannot write to subdirectory 【发布时间】:2014-07-09 19:00:37 【问题描述】:我的网站位于/var/www/html/hs/
,我有我的update.php。它应该写信给/var/www/html/hs/json/myFile.json
,但它没有。当我尝试写入 update.php 的同一目录时,似乎没有出现任何问题。
update.php 文件编写代码部分的事情:
$fileJSON = fopen("json/$fileName.json", "w");
fwrite($fileJSON, $JSONE);
fclose($fileJSON);
我(相信)已经通过sudo chown -R myName /var/www/
给了自己必要的权限。
系统:Linux ubuntu 3.13.0-24-generic #47-Ubuntu SMP Fri May 2 23:30:00 UTC 2014 x86_64
php 版本 5.5.9-1ubuntu4
Apache 版本 Apache/2.4.7 (Ubuntu)
【问题讨论】:
json
目录是否存在?如果没有,则需要创建它。
检查您的错误日志!
该目录确实存在,我 /var/log/apache2/error.log 也没有任何东西。尽管如此,显然 chmod 确实对我有用:D 无论如何谢谢
【参考方案1】:
如果json/
目录不存在,您需要创建它:
if (!is_dir('json'))
mkdir('json');
【讨论】:
【参考方案2】:我认为您没有必要的权限。检查您的 error_log 对此有何评论!
你不应该chown
使用你自己的用户名,而是使用运行 Apache 的用户名。 (使用ps -aux | grep httpd
来查看它是哪个用户。一旦chowned,如果您没有root 权限,您可能无法访问该目录。
你可以做的另一件事是chmod
你想要写入的目录到777
。
【讨论】:
以上是关于PHP fwrite() 无法写入子目录的主要内容,如果未能解决你的问题,请参考以下文章