Apache 2.4无法在Yosemite上加载mod_wsgi.so

时间:2014-12-05 00:30:30

标签: python apache mod-wsgi

问题

使用OS X Yosemite和Python 2.7,我试图遵循一个简单的hello world in 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

我尝试了什么

首先,我将文件放在/usr/libexec/apache2/与其他mod_*文件中。其次,我尝试关注Graham Dumpleton's answer并验证以下步骤:

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]位。

this SO answer

>>> 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 个答案:

答案 0 :(得分: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 =>语法OK