【问题标题】:Deploying mod_wsgi: Error loading MySQLdb module部署 mod_wsgi:加载 MySQLdb 模块时出错
【发布时间】:2023-03-20 07:03:01
【问题描述】:

我想再次使用 apache + mod_wsgi 部署我的 django 应用程序。我似乎收到了这个错误 500 消息最初,我被告知我需要最新版本的 MySQLdb。安装后,我收到此错误消息。

Error loading MySQLdb module: /tmp/MySQL_python-1.2.3-py2.4-linux-i686.egg-tmp/_mysql.so: failed to map segment from shared object: Permission denied

我不确定问题出在哪里。我相信这可能与我的 httpd.conf 中写的这一行有关。

WSGIPythonEggs /tmp

但它被设置为可以读写和执行。

【问题讨论】:

  • 为什么要将库存储在/tmp
  • Are you not allowed to create an eggs cache in 如果我不能将该行放入我的 httpd.conf 文件中,我将收到此错误[Errno 13] Permission denied: '/root/.python-eggs``/tmp?。以前,我可以通过在我的 httpd.conf 文件中添加WSGIPythonEggs /tmp来解决这个问题。现在有一些问题是无法从共享对象映射段

标签: django mod-wsgi httpd.conf mysql-python


【解决方案1】:

SELinux 很可能已启用。这个确切的问题记录在 mod_wsgi 文档中。

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

【讨论】:

    【解决方案2】:

    尝试与/tmp 不同的目录 - 根据this question,它具有t 权限集,不允许用户删除不属于他们自己的文件。

    你仍然需要WSGIPythonEggs 指令。

    更新:根据Graham Dumpleton's comment,该指令仅适用于嵌入式模式,不适用于守护程序模式。他在fixing Application Permission issues 上提供了指向他的wiki 的链接,该链接建议在mod_wsgi 脚本模块中设置变量,而不是httpd.conf

    【讨论】:

    • 我创建了一个名为 'tmp2' 的新目录,我将权限更改为 755,在我的 httpd.conf 更改中,我调用了 WSGIPythonEggs /tmp2。这不起作用(rror[Errno 13] Permission denied: '/root/.python-eggs``/tmp2
    • @Shehzad009,尝试 777 获取权限。
    • @John C: 不,再次失败Can't extract file(s) to egg cache 错误。
    • @Shehzad009,所以目录有全权限,还是不行?诡异的。我不确定为什么不这样做,但我可以说当我遇到同样的错误时(使用 uWSGI/nginx),我创建了一个目录我的用户 /home/foo/eggs,其中 eggs 拥有完全权限(没有 t),并且上面的目录具有 x 权限,因此可以搜索它们。运行uWSGI后,eggs中多了一个新目录,名为MySql...egg-tmp,归uWSGI所有。
    • @Shehzad009,添加我的更新后 - 我注意到这是你的问题。所以他的回答没有用?这是一个新问题,还是原有问题的并发症?
    猜你喜欢
    • 2011-07-27
    • 2013-03-13
    • 1970-01-01
    • 2016-03-05
    • 2015-08-22
    • 2017-01-27
    • 2014-11-12
    • 2019-09-26
    • 1970-01-01
    相关资源
    最近更新 更多