在Mac上让Apache运行Python
我刚买了一台新Mac,想让它运行Apache服务器,并使用mod_python、mod_wsgi和Django。我有一个测试文件test.py,里面的内容很简单:
#!/usr/bin/python
print "Content-type: text/html"
print
print "<html><head>"
print ""
print "</head><body>"
print "Test Page"
print "</body></html>"
我刚下载了Xcode 4,通过MacPorts安装了Apache、PHP5和mod_wsgi,按照这些网站上的步骤进行操作:
http://www.phpied.com/installing-php-and-apache-on-mac-osx-that-was-pretty-easy/ http://heisel.org/blog/2009/09/25/mod-wsgi-mac/但不知为何,mod_python无法正常工作,所以我从svn下载了最新的源代码,并执行了标准的命令:
./configure --with-apxs=/opt/local/apache2/bin/apxs
make
sudo make install
然后我在httpd.conf文件中配置了LoadModule,像这样:LoadModule blah modules/blah.so。
当我用下面的命令启动Apache时:
sudo /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper start
然后在浏览器中访问test.py,结果看到的却是整个文件的纯文本,这显然是不对的。我在httpd.conf中开启了Python调试,再次访问test.py时,出现了这样的提示:
MOD_PYTHON ERROR
ProcessId: 93626
Interpreter: 'dfelsmanmpx6.blah.blah'
ServerName: 'dfelsmanmpx6.blah.blah'
DocumentRoot: '/Users/me/folder/workspace/'
URI: '/test.py'
Location: None
Directory: '/'
Filename: '/Users/me/folder/workspace/test.py'
PathInfo: ''
Phase: 'PythonHandler'
Handler: 'text'
Traceback (most recent call last):
File "/Library/Python/2.6/site-packages/mod_python/importer.py", line 1537, in HandlerDispatch
default=default_handler, arg=req, silent=hlist.silent)
File "/Library/Python/2.6/site-packages/mod_python/importer.py", line 1202, in _process_target
module = import_module(module_name, path=path)
File "/Library/Python/2.6/site-packages/mod_python/importer.py", line 304, in import_module
return __import__(module_name, {}, {}, ['*'])
ImportError: No module named text
有没有人知道哪里出错了,或者知道在Mac上用Xcode 4怎么做的教程吗?(是的,我在研究中发现这很重要,因为Xcode 4去掉了一些架构支持,导致某些模块过时了)
1 个回答
0
正如@ignatio-vazquez-abrams提到的,mod_python已经不再被推荐使用了,但如果你还是想用它,可以看看Homebrew。安装好Homebrew后,你可以在终端里运行brew install mod_python
来安装它。安装完成后,你会看到一条提示,告诉你需要把编译好的mod添加到你的Apache配置中(同时也会有一个不推荐使用的警告)。