準備在伺服器上安裝 mod_python + django,系統內容如下:
- Ubuntu 10.04
- python2.6.5
- django 1.4.0
- mod_python 3.3.1
- apache 2.2.14
問題一:
connobject.c: In function ‘_conn_read’:
connobject.c:142: error: request for member ‘next’ in something not a structure or union
apxs:Error: Command failed with rc=65536
.
make[1]: *** [mod_python.so] Error 1
make[1]: Leaving directory `/tmp/mod_python-3.3.1/src'
make: *** [do_dso] Error 2
DnsSlave:/tmp/mod_python-3.3.1# vim src/connobject.c
DnsSlave:/tmp/mod_python-3.3.1# make
make[1]: Entering directory `/tmp/mod_python-3.3.1/src'
解決方案:修改原始碼裡的 src/connobject.c檔案中
-!(b == APR_BRIGADE_SENTINEL(b) ||
//replcae
+!(b == APR_BRIGADE_SENTINEL(bb) ||
問題二:
ln: creating symbolic link XXXXXX : Operation not supported
出現這類問題,主要是由於在編譯的時候,要用ln去建立一些軟連結,而這些檔案是從Windows中,通過VMWare虛擬機器共用進Linux的,而雖然此種操作在Linux系統中很常見,但Windows不支援,所以,編譯會報錯。
解決辦法:在VMWare下的Linux中,建立Samba服務,然後新建立新samba使用者和檔案夾,然後在windows中就可以訪問到該檔案夾了。然後把在Linux中,從共用目錄拷貝到你所要共用的samba目錄中,這樣,也可以實現我們所要的檔案分享權限設定。此時在去編譯這些代碼的時候,由於是在Linux系統中的,所以就OK了。另一種方法是,將mod_python.**.tar.gz cp到系統上,如家目錄,然後再執行安裝操作也能解決且方便。
問題三:
/usr/bin/install -c -d /usr/local/apache/modules
/usr/bin/install -c src/mod_python.so /usr/local/apache/modules
/usr/bin/install: stat‘src/mod_python.so’失敗: 沒有那個檔案或目錄
解決辦法:連結最新的libtool,
mv /usr/local/apache/build/libtool /usr/local/apache/build/libtool.old
ln -s /usr/bin/libtool /usr/local/apache/build/libtool