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

在部署在线上的时候,你使用tp5的时候,这个错误很大几率会碰到。

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

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

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

第一种方式:

chmod -R 777 runtime
简单而且快捷,如果你不满意这种方式,还有一种:

更改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用户
希望对你有益。


猜你喜欢

转载自blog.csdn.net/admin1008611/article/details/78843195
今日推荐