首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pinax (13,‘权限被拒绝’)

Pinax (13,‘权限被拒绝’)
EN

Stack Overflow用户
提问于 2010-02-17 12:49:56
回答 2查看 423关注 0票数 0

我是一个新手,但是我使用python manage.py runserver使我的应用程序工作得很好,但是当我把它带到Apache + mod_wsgi时,我一直收到这个错误。调试消息没有多大帮助。下面是整个调试映像的屏幕截图:http://img694.imageshack.us/img694/6723/screenshotfb.png

这是我的http.conf文件的转储文件。

代码语言:javascript
复制
WWSGIDaemonProcess cloud-tester python-path=/home/ubuntu/.virtualenvs/pinax-env/lib/python2.6/site-packages
WSGIProcessGroup cloud-tester

WSGIScriptAlias /cloudrunner /home/ubuntu/projects/cloudfly/deploy/pinax.wsgi
<Directory /home/ubuntu/projects/cloudfly/deploy>
    Order deny,allow
    Allow from all
</Directory>

pinax.wsgi的内容是Pinax附带的内容。我什么都没改变。

我创建了一个示例"basic_project",它工作得很好。这个不是。

提前感谢!对我应该做什么有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-17 13:01:54

在Apache/mod_wsgi下,您的代码将作为Apache用户运行,并且通常没有访问权限来写入您作为用户拥有的目录。阅读:

http://code.google.com/p/modwsgi/wiki/ApplicationIssues#Access_Rights_Of_Apache_User

最简单的方法是运行,使守护进程以与您手动运行代码相同的用户身份运行。使用“WSGIDaemonProcess /group”选项来实现此目的。阅读:

http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives#WSGIDaemonProcess

另一个问题可能是您在代码中使用了相对路径名。这在Apache下不起作用,因为当前工作目录可以是任何内容。您真的应该始终使用绝对路径名,或者至少相对于代码文件的__file__的os.path.dirname()来计算它们。

如果你真的不想处理它,一种绕过它的方法是使用WSGIDaemonProcess的'home‘选项,将守护进程的当前工作目录设置为您手动运行服务器的同一目录。请参阅上面提到的WSGIDaemonProcess的相同文档。

票数 4
EN

Stack Overflow用户

发布于 2011-01-27 00:47:42

当你使用'python runserver‘时,你是以超级用户的身份登录的,这就是为什么它被允许写入那个目录,但是当manage.py启动你的wsgi脚本时,它将在它的用户名下,这是不允许在你的python脚本所在的目录中写入的。

假设你正在使用ubuntu服务器,我也遇到了同样的问题。我用以下命令修复了它

chown www-data:www-data -R介质

我将所有py脚本放在/var/pyproj/中。介质文件夹将位于/var/pyproj//pysrc(my pinax安装目录)/site_ media /中

我将我的wsgi脚本nginx conf和vhost.conf保存在/var/pyproj//服务器中。

祝你好运,django用户。我希望这能帮到你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2278394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档