我有一个在xampp上运行的codeigniter项目。当我运行php命令mkdir时,出现错误“权限被拒绝”。事实证明,php用户和计算机用户的名称不同。因此,我在httpd.conf文件中更改了行
User daemon
Group daemon
到
User username
Group daemon
匹配我的用户名。现在,我得到了此问题修复程序,但是这在代码的另一部分上创建了一个错误。这很奇怪,因为我在具有相同设置的另一台计算机上运行了相同的项目,并且可以正常工作。你能指出我正确的方向吗?
答案 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,创建或更改文件,...),则不授予写入权限,如果该进程不需要执行(运行命令,则读取文件夹的内容),则不授予执行权限。