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() 无法写入子目录的主要内容,如果未能解决你的问题,请参考以下文章

fwrite(php)并不总是写

fwrite无法正常工作,并写入重复的信息

PHP - fwrite() 不写入套接字

PHP fwrite() 用于将大字符串写入文件

PHP中,fwrite写入文件的时候,怎么换行?

PHP 严格模式