首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法创建目录“/var/www/html/前端/运行时/缓存”:mkdir():权限被拒绝

无法创建目录“/var/www/html/前端/运行时/缓存”:mkdir():权限被拒绝
EN

Stack Overflow用户
提问于 2019-11-19 22:40:13
回答 2查看 1.9K关注 0票数 0

我正在尝试使用Nginx web服务器在数字海洋水滴(CentOS 7)上部署yii-2应用程序。我已将www文件夹范围设置为:

代码语言:javascript
运行
复制
chmod -R 775 /var/www

并使用www/apache用户测试所有权。但创建缓存文件夹的权限仍被拒绝:

代码语言:javascript
运行
复制
Exception – yii\base\Exception
Failed to create directory "/var/www/html/frontend/runtime/cache": mkdir(): Permission denied
Caused by: yii\base\ErrorException
mkdir(): Permission denied
in /var/www/html/vendor/yiisoft/yii2/helpers/BaseFileHelper.php at line 628

请指点一下,我是不是做错了什么?

EN

Stack Overflow用户

发布于 2019-11-20 18:13:17

您需要让selinux知道您将允许http进程写入哪些目录。可以将其视为另一组权限。

使用chcon设置或更改这些权限

下面是一个典型的yii应用需要写入的目录的快速列表

代码语言:javascript
运行
复制
chcon -Rt httpd_sys_content_rw_t /var/www/*/frontend/runtime
chcon -Rt httpd_sys_content_rw_t /var/www/*/backend/runtime
chcon -Rt httpd_sys_content_rw_t /var/www/*/console/runtime
chcon -Rt httpd_sys_content_rw_t /var/www/*/frontend/web/assets
chcon -Rt httpd_sys_content_rw_t /var/www/*/backend/web/assets

请注意,上述路径中的通配符(*)适用于www中的所有目录

需要写入访问权限(文件/图像上传文件夹)的项目特定路径需要单独应用

代码语言:javascript
运行
复制
chcon -R -t httpd_sys_content_rw_t /var/www/some-project/uploads/*

您还可以阅读有关contexts here的更多信息

如果是新的设置,您可能需要设置以下flags才能正常工作

代码语言:javascript
运行
复制
setsebool -P allow_httpd_anon_write 1
setsebool -P httpd_can_network_connect 1
setsebool -P httpd_can_network_connect_db 1

如果所有这些都不是您喜欢的,那么您可以启用允许模式

代码语言:javascript
运行
复制
setenforce 0
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58936518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档