【问题标题】:Pinax (13, 'Permission denied')Pinax (13, '权限被拒绝')
【发布时间】:2010-02-17 04:49:56
【问题描述】:

我是个菜鸟,但我使用 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”,效果很好。这没有。

提前致谢!关于我应该怎么做的任何建议?

【问题讨论】:

    标签: python django deployment wsgi pinax


    【解决方案1】:

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

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

    最简单的解决方法是让守护进程以与您手动运行代码相同的用户身份运行。为此,使用 WSGIDaemonProcess 的“用户/组”选项。阅读:

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

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

    如果你真的不想处理这个问题,一种解决方法是使用 WSGIDaemonProcess 的“home”选项将守护进程的当前工作目录设置为手动运行服务器的同一目录。请参阅上面引用的 WSGIDaemonProcess 的相同文档。

    【讨论】:

    • 我尝试了你所说的两个建议。没运气。这是我的 pinax.wsgi 文件:copypastecode.com/22518 这是我的 httpd.conf:copypastecode.com/22522 我的项目位于 /home/ubuntu/projects/cloudfly。感谢您的帮助!
    • 试试 'home=/home/ubuntu/projects/cloudfly'。那是运行服务器用作当前工作目录的目录,而不是您的部署子目录。
    【解决方案2】:

    当您使用“python manage.py runserver”时,您以 root 身份登录,这就是为什么它被允许写入该主管,但是当 apache 启动您的 wsgi 脚本时,它将在其用户名下,不允许写入你的 Python 脚本所在的目录。

    假设您使用的是 ubuntu 服务器,我遇到了同样的问题。我修复了它使用

    chown www-data:www-data -R 媒体

    我将所有的 py 脚本保存在 /var/pyproj/ 中。媒体文件夹将位于 /var/pyproj//pysrc(my pinax install director)/site_media/

    我将 wsgi 脚本、nginx conf 和 vhost.conf 保存在 /var/pyproj//server 中。

    祝 django 用户好运。我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2014-03-24
      • 2017-11-03
      • 1970-01-01
      • 2014-08-10
      • 2018-07-19
      • 2017-04-20
      • 2011-06-11
      • 2014-07-15
      • 2015-07-17
      相关资源
      最近更新 更多