Learning Blog

預定調和

在 Apache 安裝上 Wsgi 執行 Django

| Comments

apache 上面可以藉由安裝 mod_wsgi 執行 python 的程式碼,這邊記錄一下在 Centos 上面的安裝過程。

Apache 和 python 一開始就安裝在機器上面了,然後 django 和 web.py 則是透過 pip 或是 easy_install 安裝,以為很簡單卻卡在安裝 mod_wsgi 上面。

原本是透過 mod_wsgi 的原始碼編譯,但是出現下面的錯誤:

apxs:Error: Command failed with rc=65536

原因在官網的 Installation Issues 有提到是因為 python 和 apache 的版本不合,一個為 32 位元一個為 64 位元就會 出現這種錯誤,只能重新編譯。

後來試著用 yum install mod_wsgi 成功安裝但是在 apache 的 error log 出現 ImportError: No module named web , 在 web.py 的官網建議加入檔案路徑加入環境變數,不過還是失敗。

最後發現是 python 版本的問題,機器上面安裝兩種 python 的版本 2.6 和 2.7, yum 透過 2.6 編譯 mod_wsgi 與程式使用的 2.7 不同而導致這個問題,最後下載 python 原始碼重新編譯才行。

下載 python 的原始碼並且在 configure 加上 –enable-shared 編譯安裝,安裝後執行 python 遇到下面的錯誤,找不到 lib 的路徑。

python: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory

使用 ldconfig 指定 lib 位置後重新編譯安裝 mode_wsgi 就建立好環境了。

Comments