php - 尝试在 Ubuntu 18.04 LTS 上部署 Symfony - setfacl 不起作用?
问题描述
我正在按照此处的指南(诚然它有点过时)将我的第一个 Symfony 4 项目部署到生产环境。在我获得文件权限之前一切都很好。我在链接的第 4 步中专门执行了这些步骤:
sudo chown -R myuser:myuser /var/www/html
sudo chmod -R 750 /var/www/html
sudo setfacl -R -m u:www-data:rX /var/www/html/project
sudo setfacl -R -m u:www-data:rwX /var/www/html/project/var/cache /var/www/html/project/var/log
sudo setfacl -dR -m u:www-data:rwX /var/www/html/project/var/cache /var/www/html/project/var/log
这给了我
getfacl /var/www/html/project
# file: var/www/html/project/
# owner: myuser
# group: myuser
user::rwx
user:www-data:r-x
group::r-x
mask::r-x
other::---
和
getfacl /var/www/html/project/var/cache
# file: var/www/html/project/var/cache
# owner: myuser
# group: myuser
user::rwx
user:www-data:rwx
group::r-x
mask::rwx
other::---
default:user::rwx
default:user:www-data:rwx
default:group::r-x
default:mask::rwx
default:other::---
但是,当我运行 Web 应用程序时,我得到一个空白页,并且显示错误日志
[crit] 3116#3116: *12 stat() "/var/www/html/project/public/" 失败(13:权限被拒绝)
所以似乎 setfacl 不起作用?我在这里做错了什么?是否有更好的权限指南?
解决方案
鉴于www-data
用户不是该myuser
组的成员,它需要访问目录+x
的权限/var/www/html
。问题中的现有权限是“750”。要改变这一点:
chmod o+x /var/www/html
推荐阅读
- javascript - Angular & OpenLayers - forEachFeatureAtPixel 和 onclick 属性的问题
- angularjs - Angularjs | ng-repeat 选择时设置 true 或 false
- api - 如何在 Postman 中使用第一个 API 响应作为第二个 API 的请求?
- reactjs - ReactJS:检查 `MainRouter` 的渲染方法。错误
- powershell - 递归地向文件夹授予域用户/组权限
- docker - kubernetes 将来自服务的传出 http 流量重定向到 localhost:port
- java - 即使在创建数据库和表之后,SQL(查询)错误或缺少数据库
- java - 如何修改约束布局中的链长?
- node.js - 部署对话流示例代码时出错
- firebase - Vue Firebase:currentUser 为空