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

Posted

技术标签:

【中文标题】httpd.conf 上的用户/组的 Apache 问题 - 权限【英文标题】:Apache Issue with user/ group on httpd.conf - permissions 【发布时间】:2019-06-29 01:09:09 【问题描述】:

我有一个在 xampp 上运行的 codeigniter 项目。当我运行 php 命令 mkdir 时,我收到错误“权限被拒绝”。原来 php 用户和 computer 用户没有同名。所以我在 httpd.conf 文件中更改了行

User daemon
Group daemon

User username
Group daemon

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

【问题讨论】:

【参考方案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,创建或更改文件,...),则不要授予写入权限,如果它不需要执行(运行命令,读取文件夹的内容)然后不授予执行权限。

【讨论】:

以上是关于httpd.conf 上的用户/组的 Apache 问题 - 权限的主要内容,如果未能解决你的问题,请参考以下文章

禁用 httpd.conf 中的目录浏览与 apache 上的 .htaccess

Apache 默认在哪里安装 httpd.conf?

基于 Windows 的 Apache 服务器 (wamp) 上的 cakephp 和 httpd.conf 问题

Apache 忽略 httpd.conf 分配的路径

Windows 上的 httpd.conf:找不到 API 模型结构 `php8_module`

LAMP环境的搭建----Apache下部署项目