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

时间:2019-02-05 08:49:41

标签: php apache xampp httpd.conf

我有一个在xampp上运行的codeigniter项目。当我运行php命令mkdir时,出现错误“权限被拒绝”。事实证明,php用户和计算机用户的名称不同。因此,我在httpd.conf文件中更改了行

User daemon
Group daemon

User username
Group daemon

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

1 个答案:

答案 0 :(得分:1)

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,创建或更改文件,...),则不授予写入权限,如果该进程不需要执行(运行命令,则读取文件夹的内容),则不授予执行权限。