在Yosemite上,Apache 2.4无法加载mod_wsgi.so模块。

3

问题

我使用OS X Yosemite和Python 2.7,尝试按照一个简单的Flask with Apache WSGI的示例,但在执行apachectl -S时却收到此错误:

httpd: Syntax error on line 171 of /private/etc/apache2/httpd.conf: Cannot load libexec/mod_wsgi.so into server: dlopen(/usr/libexec/mod_wsgi.so, 10): image not found

我尝试过的

首先,我将文件与其他mod_*文件一起放置在/usr/libexec/apache2/中。其次,我尝试遵循Graham Dumpleton的回答并验证以下步骤:

1. 您没有隐藏扩展名并且已将扩展名添加两次。

gwg$ file /usr/libexec/apache2/mod_wsgi.so
/usr/libexec/apache2/mod_wsgi.so: Mach-O 64-bit bundle x86_64

2. 确保mod_wsgi.so文件对于Apache服务用户可读。

我不太确定如何实现这一点,但是我刚刚将该文件的权限与其他.so文件进行了比较。例如:

gwg$ ls -l mod_vhost_alias.so 
-rwxr-xr-x  1 root  wheel  19472 Sep  9 18:11 mod_vhost_alias.so

并且

gwg$ ls -l mod_wsgi.so 
-rwxr-xr-x  1 root  wheel  209564 Dec  4 17:05 mod_wsgi.so

3. 确认你的Apache是32位[64位]。

I'm not sure how to do this.

4. 您的Python是32 [64]位。

根据这个SO答案

>>> import struct
>>> print struct.calcsize("P") * 8
64

5. 确保你的Python是安装在所有用户中而不仅仅是安装它的用户中。

gwg$ sudo su -
root# python
Python 2.7.6 (default, Sep  9 2014, 15:04:36) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 

问题

需要帮助吗?谢谢您的提前预约。

1个回答

2
使用brew是我在Mac OS X上运行wsgi最简单的方法。以下是步骤:
  1. brew tap homebrew/apache
  2. brew install mod_wsgi
  3. 如果需要,执行xcode-select --install
  4. 您必须手动编辑 /etc/apache2/httpd.conf,以包含 LoadModule wsgi_module /usr/local/Cellar/mod_wsgi/3.X/libexec/mod_wsgi.so
    • 截至2014年12月,X为5,但只需按照屏幕上显示的说明操作即可
  5. 检查一切是否正常
    • httpd -t => 语法正确

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接