(搬运)Thinkphp5报错mkdir() Permission denied

转载 2018年04月17日 14:26:31

原文来自:http://www.qiusuoweb.com/68.html

最近一直在用tp5写项目,在此遇到的问题也比较多。今天来谈谈“mkdir() Permission denied”错误。

你如果不仅仅写代码,还得部署到线上,那么这个tp5的这个错误,你有很大概率会遇见它。

因为这跟文件的权限有关系,特别是自动生成的文件或者目录类的权限,linux服务器出于安全因素对于用户的权限有着严格的控制。

对于tp框架而言,自动生成的文件或者目录应该是runtime目录,所以在线部署代码的时候,开放此类目录的权限。

所以解决mkdir() premission denied 的问题最直接的方式,把runtime权限放开,让所有用户都可以创建它。

chmod -R 777 runtime

在liunx中进入项目目录执行以上命令,就能解决这个问题,简单,高效。

如果你对文件的安全要求比较苛刻,那么以上的答案并不能令你满意,简单,高效的方法背后一般需要牺牲一些安全因素为代价。

但以下提供的方法或许是一个不错的选择。

更改runtime目录的所有者,也就是runtime这个目录权限只针对所有者开放。

以我的项目为例,服务器是nginx,nginx中设置的访问用户为www用户,那么我只需要把runtime目录有root用户改为www用户就能解决此问题。

ps aux|grep nginx //查看当前的nginx进程,能够找到nginx用户是哪个(可能是www,user或者其他的)

chown -R www runtime //chown -R <nginx 用户> runtime,改变runtime所有者为nginx用户

ok,进入项目目录去执行上面的命令吧,是否有效一试便知。

到这里,问题已经基本解决还提供了两种参考方法,但知其然,最好知其所以然,这是我们不断求知的好习惯,多知果求因,多问几个为什么。

好了啰嗦了,言归正传,上面的方法的解释是因为对于web的每一个请求都是由服务器(nginx,apache等)代劳的,真正操作这些项目文件或目录的是这些服务器用户,比如nginx中的www用户,apache中的apache用户。所以指定文件或者目录的所有者就是这个问题的关键,至于第一个方法设置最高权限为何也可以呢,这个就相当于任何用户都能访问这个runtime目录,当然也包括www或者apache用户。退一步,上面的第二个方法是以nginx为例,如果你的服务器是apache呢,那你现在应该知道怎么改了吧。

以上就是对tp5解决mkdir() Permission denied这个问题的探讨方法,希望对你有益。

thinkphp5精讲与项目使用

thinkphp5的使用可谓是非常非常方便,而且thinkphp5中添加了很多新的特性来支持api友好型开发。配合thinkphp5强大的路由功能让开发变得非常快捷,简单。而且thinkphp5是国内很多开发公司选择的框架。
  • 2017年08月03日 00:35

thinkPHP使用view()导入模版报错mkdir(): Permission denied

这是权限问题你如果不仅仅写代码,还得部署到线上,那么这个tp5的这个错误,你有很大概率会遇见它。因为这跟文件的权限有关系,特别是自动生成的文件或者目录类的权限,linux服务器出于安全因素对于用户的权...
  • ldl_csdn_ios
  • ldl_csdn_ios
  • 2017-10-20 17:01:09
  • 141

Ubuntu composer 安装thinkphp5 失败,报错:[ErrorException] mkdir(): Permission denied

在Linux环境下,使用composer安装thinkphp5,安装时,报错:[ErrorException]               mkdir(): Permission denied : ...
  • whq19890827
  • whq19890827
  • 2018-01-10 22:51:32
  • 291

关于使用tp5,执行时碰到mkdir() Permission denied错误

在部署在线上的时候,你使用tp5的时候,这个错误很大几率会碰到。 因为这跟文件的权限有关系,特别是自动生成的文件或者目录类的权限,linux服务器出于安全因素对于用户的权限有着严格的控制。 ...
  • admin1008611
  • admin1008611
  • 2017-12-19 15:31:55
  • 546

PHP使用之网站后台上传图片出错,提示Warning: mkdir() [function.mkdir]: Permission denied……

网站后台上传图片出错if (!is_dir("upload/".$_SESSION["userid"]))//当路径不存在 { mkdir("upload/".$_SESSION["u...
  • yxys01
  • yxys01
  • 2017-09-19 17:54:54
  • 817

EACCES: permission denied, mkdir '/home/错误的解决方法

我用的是webstorm+nodejs开发环境 之前都正常,在运行npm start命令时出现以下错误 Error: EACCES: permission denied, mkdir ‘/hom...
  • yfwangjd
  • yfwangjd
  • 2017-08-16 14:53:09
  • 294

PHP Warning: mkdir() [function.mkdir]: Permission denied in解决方法

权限不足不能执行创建目录命令 解决方法: 修改父级目录权限为0777即可 linux: chmod -R 777 ./dirname...
  • haibo0668
  • haibo0668
  • 2016-06-01 14:41:10
  • 4481

php mac 下没有mkdir的权限

提示这个。 Warning: mkdir(): Permission denied 解决方法: 这是因为目录没有权限的原因,chmod -R 777 “目录”...
  • ldl_csdn_ios
  • ldl_csdn_ios
  • 2017-09-18 09:56:36
  • 887

Warning: mkdir() [function.mkdir]:Permission denied in

linux下面php没有创建文件的权限:Warning: mkdir() [function.mkdir]: Permission denied in ....原因:nginx或者apache没有创建...
  • zhezhebie
  • zhezhebie
  • 2017-06-19 11:50:48
  • 1040

untu 下操作目录,出现Permission denied的解决办法

ubuntu 今天遇到个诡异问题,向一个目录(myResources)粘贴文件的时候,出现这样一个提示 Permission denied 是权限没设好,只是拷贝粘贴一个文件,怎么会...
  • hellochenlian
  • hellochenlian
  • 2014-07-08 11:12:25
  • 5633
收藏助手
不良信息举报
您举报文章:(搬运)Thinkphp5报错mkdir() Permission denied
举报原因:
原因补充:

(最多只允许输入30个字)