我是一个新手,但是我使用python manage.py runserver使我的应用程序工作得很好,但是当我把它带到Apache + mod_wsgi时,我一直收到这个错误。调试消息没有多大帮助。下面是整个调试映像的屏幕截图:http://img694.imageshack.us/img694/6723/screenshotfb.png
这是我的http.conf文件的转储文件。
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",它工作得很好。这个不是。
提前感谢!对我应该做什么有什么建议吗?
发布于 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的相同文档。
发布于 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用户。我希望这能帮到你。
https://stackoverflow.com/questions/2278394
复制相似问题