httpd.conf 上的用户/组的 Apache 问题 - 权限

Apache Issue with user/ group on httpd.conf - permissions

我有一个 运行 在 xampp 上的 codeigniter 项目。当我 运行 一个 php 命令 mkdir 我得到错误 "Permission denied"。原来 php 用户和计算机用户的名称不同。所以我在 httpd.conf 文件中更改了行

User daemon
Group daemon

User username
Group daemon

匹配我的用户名。现在我得到了这个问题的修复,但这会在代码的另一部分产生许可错误。这很奇怪,因为我 运行 在另一台具有相同设置的机器上使用相同的项目并且它可以工作。你能给我指出正确的方向吗?

User 指令指定 httpd 进程应该使用哪个 linux 用户来 运行 作为。这意味着 httpd 进程将执行所有操作,就好像该用户(在本例中为您)正在做的那样。如果您没有执行某些操作的权限,httpd 进程将无法执行此操作,您将看到一个错误。

要修复此问题,您需要修复 httpd 进程(和 php)所需的 files/folders/commands 权限。您可以:

  • 授予对 file/folder 上的守护程序组的完全权限:chgrp daemon /path/to/file; chmod g+rwx /path/to/file
  • 授予特定用户完全权限file/folder:chown username /path/to/file; chmod u+rwx /path/to/file
  • 授予所有人完全权限(可能不推荐):chmod o+rwx /path/to/file

如果进程不需要在该位置写入(mkdir,创建或更改文件,...)那么不要授予写入权限,如果它不需要执行(运行 命令,读取文件夹的内容)然后不授予执行权限。