2012-02-11 126 views
0

我想在OSX 10.7.2 Lion上配置XAMPP 1.7.3以使用mod_wsgi 3.3。這是我正在做的:在OSX Lion上將mod_wsgi安裝到XAMPP上

  1. 安裝XAMPP for OSX 1.7.3和開發包。這一切都運行良好。
  2. 下載並提取http://modwsgi.googlecode.com/files/mod_wsgi-3.3.tar.gz
  3. ./configure
  4. make
  5. sudo make install
  6. 這會將編譯mod_wsgi.so文件到OSX阿帕奇,但我想它在XAMPP,所以我複製: sudo cp /usr/libexec/apache2/mod_wsgi.so /Applications/XAMPP/xamppfiles/modules/
  7. 將模塊添加到XAMPP httpd.conf LoadModule wsgi_module modules/mod_wsgi.so
  8. 啓動XAMPP Apache,我得到會在error_log通知如下:

    [notice] Apache/2.2.14 (Unix) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l mod_wsgi/3.3 Python/2.7.1 PHP/5.3.1 mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming normal operations

當我訪問http://localhost,我得到這個錯誤(通過瀏覽器):

`Error 324 (net::ERR_EMPTY_RESPONSE): The server closed the connection without sending any data.` 

這個錯誤打印到error_log中:

`[notice] child pid 22847 exit signal Bus error (10)` 

我不知道如何解決這個錯誤或我缺少的東西。任何見解都被讚賞!

UPDATE

我發現了一個博客here,討論使用Apache擴展模塊使用此命令:

./configure --with-apxs=/Applications/XAMPP/xamppfiles/bin/apxs --with-python=/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7

的配置看起來不錯,但我得到這個編譯器錯誤:

/Applications/XAMPP/xamppfiles/bin/apxs -c -I/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -DENABLE_DTRACE -DMACOSX -DNDEBUG -DNDEBUG -DENABLE_DTRACE -Wc,'-arch i386' -Wc,'-arch ppc' mod_wsgi.c -Wl,-F/System/Library/Frameworks -framework Python -u _PyMac_Error /System/Library/Frameworks/ -arch i386 -arch ppc -ldl -framework CoreFoundation 
Use of assignment to $[ is deprecated at /Applications/XAMPP/xamppfiles/bin/apxs line 86. 
/Applications/XAMPP/xamppfiles/build/libtool --silent --mode=compile gcc -prefer-pic -I/Applications/XAMPP/xamppfiles/include -L/Applications/XAMPP/xamppfiles/lib -mmacosx-version-min=10.4 -arch i386 -arch ppc -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -no-cpp-precomp -I/Applications/XAMPP/xamppfiles/include -I/Applications/XAMPP/xamppfiles/include -I/Applications/XAMPP/xamppfiles/include -I/Applications/XAMPP/xamppfiles/include -arch i386 -arch ppc -I/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -DENABLE_DTRACE -DMACOSX -DNDEBUG -DNDEBUG -DENABLE_DTRACE -c -o mod_wsgi.lo mod_wsgi.c && touch mod_wsgi.slo 
llvm-gcc-4.2: error trying to exec '/usr/bin/../llvm-gcc-4.2/bin/powerpc-apple-darwin11-llvm-gcc-4.2': execvp: No such file or directory 
lipo: can't figure out the architecture type of: /var/tmp//cco5iCcm.out 
apxs:Error: Command failed with rc=65536 

回答

1

您需要使用--with-apxs選項才能共享使其能夠使用XAMPP發行版中的apxs。如果它們不提供一個以便能夠編譯額外的Apache模塊,則不能使用XAMPP發行版。

換句話說,您需要針對您要使用的Apache編譯mod_wsgi,而不是一個不同的編譯器。

圍棋中的說明了解--with-APXS:

http://code.google.com/p/modwsgi/wiki/QuickInstallationGuide#Configuring_The_Source_Code

+0

謝謝格雷厄姆!我發現[this](http://www.mals.me/2011/10/running-django-with-xampp-on-os-x.html)給出了一個例子:'./configure --with -apxs =/Applications/XAMPP/xamppfiles/bin/apxs --with-python =/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7' ...但我得到一個編譯器錯誤。我會把文本放入一個編輯問題。 – 2012-02-12 00:34:55

+0

如果Python 2.7是系統範圍的默認Python,那麼您可能不需要--with-python。如果不是,那麼你可能會提到/usr/bin/python2.7。至於編譯錯誤,可能與/ Applications/XAMPP/xamppfiles/bin/apxs中的第一個錯誤有關。詢問XAMPP爲什麼他們的apxs失敗。 – 2012-02-12 02:41:47