前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ThinkPHP目录不可写的解决方案

ThinkPHP目录不可写的解决方案

作者头像
用户1456517
发布2019-03-05 16:00:19
1.4K0
发布2019-03-05 16:00:19
举报
文章被收录于专栏:芝麻实验室芝麻实验室

最近公司产品官网刚交付,需要部署上线,该站点基于Thinkphp框架,但在部署完毕测试时,站点提示目录不可写。经过一番自查及搜索引擎一番查找,仍旧没有找到合理的解决方案。 当然,肯定有人会说,某度出来明明有很多的方案,比如授权777之类的,但是如果细细一想,抛开是生产环境不说,随意授权777难道合理?

作为Thinkphp框架开发的站点,其框架官方说明已提到,应用目录[./Application/YOURWWWDIR]需授权及对应的站点根目录(即入口文件index.php)需授予读写权限,因此我们要做的实际就是解决这2个要求即可。因此,执行如下操作:

代码语言:javascript
复制
$ chown -R nginx:nginx ./Application/YOURWWWDIR
$ chown -R nginx:nginx WWWROOT

然而,依旧提示目录 [ ../Application/Runtime/ ] 不可写!

仔细一想,用户通过浏览器访问站点,是通过Web服务器用户(如果没有设置一般会默认为nobody),同时,Thinkphp需要通过php来读写文件,因此还需要授予php程序有权访问上述目录。 这一点,可以通过ACL来实现,也可以通过用户组来实现,为方便管理,这里推荐使用用户组方式

代码语言:javascript
复制
$ vim /usr/local/php/etc/php-fpm.d/www.conf
$     23 user = nginx  #默认为nobody
$     24 group = nginx #默认为nobody
$ service php-fpm restart

再次打开浏览器,访问一切正常。ヽ( ̄▽ ̄)ノ


本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018/05/13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档