linux - 为什么 apache 不能写入文件夹,即使它是组的成员?

标签 linux apache file-permissions

我正在使用 CentOS。

我有一个目录,例如:

drwxrwsr-x 2 someuser deploy 4096 Apr 23 23:29 logs

Apache 是部署组的成员:

deploy:x:509:dev,apache

我相信我确定运行 apache 的用户实际上是“apache”:

$ ps aux | egrep '(apache|httpd)'
apache   26573  0.0  2.6 429516 13176 ?        S    22:54   0:00 php-fpm: pool www

所以如果组有写权限,并且组是deploy,而apache 用户是这个组的一部分,为什么它不能写入那个文件夹?如果我将组更改为 apache,则 apache 可以写入,但我不明白为什么有必要这样做。

最佳答案

Did you restart apache after adding to the deploy group? (I wouldn't expect a reboot to be needed) And does the Apache error log give you any details other than 'permission denied'? – Michael Berkowski

这让我走上了正确的道路。我实际上已经重新启动了 apache 服务。但是,当我按照迈克尔的建议检查 apache 日志时,它们是空的。经过进一步探索,发现 nginx 正在处理此服务器上的请求,而 PHP 正在通过 php-fpm 服务运行。由于 php-fpm 已经设置为以 apache 用户身份运行,并且我已经将 apache 添加为部署组的成员,因此只需重新启动 php-fpm 服务即可。感谢您帮助我解决这个迈克尔问题。

关于linux - 为什么 apache 不能写入文件夹,即使它是组的成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23257310/

相关文章:

c - 优化嵌套 for 循环

linux - git push --mirror - 内部服务器错误

eclipse - 本地主机上的服务器 Tomcat v8.0 无法启动 : Failed to Start Component in Eclipse for JSP

python - 无法在 CentOS v8 上通过 yum 安装 mod_wsgi

windows - 重命名项:拒绝访问路径(Flutter升级)

linux - 从 UNIX 中的一行中获取选择性详细信息

linux - 重命名sources.list

php - 在 Ubuntu 上安装 Apache 服务器 HTTPD

php 使用 777 权限创建新目录。如何?

c# - ASP.NET 将 PDF 写入文件系统