【问题标题】:Apache permissions issue cant upload filesApache权限问题无法上传文件
【发布时间】:2012-10-23 06:29:29
【问题描述】:

我最近构建了我的第一个 Debian 6 挤压箱作为 LAMP 服务器,并且一切似乎都运行良好。它使用最新的 Mysql、PHP 和 Apache.. 全部使用 apt-get 命令安装。

我创建了几个域,它们都运行良好(CMS 系统),但有一个主要例外。

如果不先将权限更改为 777,然后再将其放回 755,我无法使用 CMS 网站功能上传扩展程序或插件。就好像 apache 服务没有以 root 身份运行,或者没有文件权限.. 更像是一个公共用户。

对于我的个人网站,我认为这是可以接受的,但如果我为其他人制作 CMS,我不能让他们无法上传自己的扩展。

任何人都可以建议最佳做法(乐于重做所有事情)以确保 apache 服务拥有文件和目录所需的全部权限,因此我可以将权限保留在 755.. 或地狱,甚至 604。

我在根目录下创建了一个名为 www 的容器,该目录包含一个以域名称 ie example.com 命名的文件夹,其中有文件夹 backup、logs、public.. 网站文件在 public目录。

我已经为所有人配置了虚拟名称服务器,当然也启用了该站点。

提前感谢您的帮助

【问题讨论】:

  • 你永远不希望 Apache 以 root 身份运行。
  • 是的,我明白了,粗心的评论......但它根本没有任何明显的权威。
  • 当您尝试上传时,您的错误日志会显示什么内容?
  • 没有错误信息,已经 100% 确定是 apache 服务的权限问题。如果我将权限设置为 777 一切正常,则其他任何内容(例如 604 甚至 775)都会导致“无法将文件复制到此位置”等

标签: php linux apache permissions posix


【解决方案1】:

恕我直言,您需要在网站公共目录下创建一个上传目录(比如说)并将其权限设置为 775..

第二件事,上传的文件可能首先进入 /tmp,因此您需要将上传的文件从那里移动到 upload-directory..确保您的文件首先在 /tmp 下成功上传..

【讨论】:

  • 是的,但这就是问题所在。我尝试设置为 775,但仍然存在权限问题。这就像apache服务以权限5运行。我需要让apache服务成为所有者,或者至少在组中。
  • 就能够使用 CMS 功能添加插件等而言,我可以让 web 服务正常运行的唯一方法是将整个网站设置为 777
  • as posted here 尝试检查谁拥有 apache 进程并尝试让任何人成为您的 upload-directory 的所有者
【解决方案2】:

对我来说(在 Ubuntu 上)我必须将 umask 002 添加到 /etc/apache2/envvars 以便让 Wordpress 上传具有 775 权限而不是 755 权限的插件/图像(即允许除 Apache 和 root 之外的任何人更改上传的文件)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 2011-10-06
    • 2015-12-18
    • 1970-01-01
    相关资源
    最近更新 更多