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

时间 2019-02-05
阅读 20
点赞 0
收藏 0
连接spy

我有一个在XAMPP上运行的CodeIgniter项目。当我运行php命令mkdir时,会得到错误“permission denied”。结果是,php用户和计算机用户没有相同的名称。所以我在httpd.conf文件中更改了行

User daemon
Group daemon

User username
Group daemon

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

建议答案

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

要解决这个问题,您需要修复httpd进程(和php)需要的文件/文件夹/命令的权限。你也可以:

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

如果进程不需要在该位置写入(mkdir、创建或更改文件…),则不授予写入权限;如果不需要执行(运行命令、读取文件夹内容),则不授予执行权限。

👍 0