我有一个使用django框架和mod_wsgi运行python代码的apache httpd服务器。 我的view.py我需要进行一个子进程调用来执行另一个python文件,该文件在这个过程中需要创建一些目录。
但是,我得到OSERROR 13:无论我在哪里尝试创建目录,都会拒绝权限。
仅在/ 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运行的脚本
在此目录中创建任何文件/目录答案 0 :(得分:3)
可能值得补充的是,这也可以在Python中实现
import os
import pwd
path = '/var/www/myapp/foo/'
if not os.path.exists(path):
os.makedirs(path) # creates with default perms 0777
uid, gid = pwd.getpwnam('root').pw_uid, pwd.getpwnam('www-data').pw_uid
os.chown(path, uid, gid) # set user:group as root:www-data
答案 1 :(得分:0)
我在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运行的脚本
在此目录中创建任何文件/目录