【发布时间】:2012-07-21 08:43:04
【问题描述】:
我有一个使用 django 框架和 mod_wsgi 运行 python 代码的 apache httpd 服务器。 我的 view.py 我需要进行子进程调用来执行另一个 python 文件,该文件在进程中需要创建一些目录。
但是,无论我在哪里尝试创建目录,我都会收到 OSERROR 13: Permission denied。
只有在/tmp中创建目录是成功的。
谁能指导我如何解决这个问题?
提前致谢!!!
编辑: 我在 serverfault.com 中找到了答案。这里供参考 apache2 在 root 下运行,但它分叉在“www-data”组下运行的进程。 所以创建一个你想要创建文件/目录的目录
sudo mkdir /srv/www/writable
换组
sudo chgrp www-data /srv/www/writable
授予组写入权限
sudo chmod g+w /srv/www/writable
你就完成了。现在您可以使用 apache2 运行的脚本在此目录中创建任何文件/目录
【问题讨论】:
-
您显然有权限问题,因为 apache 以不同于拥有您尝试在其中创建新目录的父目录的用户帐户运行。
-
是的,我可以做到这一点。我使用 apt-get 安装了 apache,当我执行 ps aux|grep apache2 时,我看到 apache2 在 root 用户下运行...
-
主 apache 线程以 root 身份运行,但它派生出通常切换到另一个用户的子节点,通常是 www-data。
-
是的,我还看到 apache2 在 www-data 下运行...这是否意味着我需要将目录的所有者/组更改为 www-data?