首页 新闻 赞助 找找看

ubuntu下php无法创建目录和写入文件内容

0
[已解决问题] 解决于 2016-02-01 14:42

我在ubuntu下部署lamp环境,出现了php无法创建目录和写入文件的情况,项目的权限都已经赋值为777了,apache还是报了错误信息:

PHP Warning:  file_put_contents(/var/www/wechataccess/log/user.log): failed to open stream: Permission denied in /var/www/wechataccess/includes/Util.class.php on line 74

求解

PHP代码如下:

$max_size = 10000;
$log_filename = LOG_DIR . 'user.log';

if (!is_dir(LOG_DIR)) {
  mkdir(LOG_DIR, 0777, true);
}

//如果日志文件大小超过限制则移除文件
if (file_exists($log_filename) && (filesize($log_filename) > $max_size)){
  unlink($log_filename);
}

file_put_contents($log_filename, date('Y-m-d H:i:s')."    $str\r\n", FILE_APPEND);
hetianqi的主页 hetianqi | 初学一级 | 园豆:71
提问于:2016-01-31 22:58
< >
分享
最佳答案
0

就是权限的问题。提示很清楚了。

看一看你写的那个文件夹的权限。实在不行加上 -r 在试一下

奖励园豆:5
宁静致远_ | 菜鸟二级 |园豆:218 | 2016-02-01 12:16

我对整个项目下的文件都赋权限了的,chmod 0777 *.*

hetianqi | 园豆:71 (初学一级) | 2016-02-01 14:01

@heron: 试一下

sudo chmod -R 777

宁静致远_ | 园豆:218 (菜鸟二级) | 2016-02-01 14:22

@宁静致远_: 好吧,确实是这样的,看来对linux权限还是不熟。谢谢了

hetianqi | 园豆:71 (初学一级) | 2016-02-01 14:42
其他回答(1)
0

都知道是权限的问题,但是我要说的是root和你的系统用户问题。Ubuntu登录的用户名并非root,那么如果你每次增加文件都要sudo chmod一下并不是一个有效的好办法。相信我,chown也并不能解决问题,因为lnmp(lamp)默认的wwwroot用户和组都是www:www,你将www:www用户修改为chown user:user -R wwwroot后打开网页会发现,权限问题席卷而来。那么最有效的办法是什么呢?

setfacl -R -m u:username:rwx wwwroot

此时,username用户也拥有了wwwroot目录的rwx操作权限,并且丝毫没有干涉lnmp(lamp)默认的用户和组权限。

个人拙见,不喜勿喷。

 

Marhey | 园豆:202 (菜鸟二级) | 2016-05-03 14:38

还是多谢你的回复,我对ubuntu的东西还不是很熟,所以对你说的不是很懂,以后遇到了再来看吧

支持(0) 反对(0) hetianqi | 园豆:71 (初学一级) | 2016-05-03 15:39

你这个不也是每次都要运行吗

支持(0) 反对(0) 小洋哥啃程序 | 园豆:200 (初学一级) | 2023-05-31 13:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册