我正在使用 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/