一.安裝apache(httpd-2.2.25.tar.gz )
到 http://httpd.apache.org 下載下傳最新的apache源碼,解壓後進入目錄:
我想把apache安裝到/usr/lcoal/apache下,是以執行如下指令
執行:
./configure --prefix=/usr/lcoal/apache --enable-track-vars --enable-cgi --enable-modules=all --enable-mods-shared=all --enable-file-cache --enable-disk-cache --enable-cache --enable-mem-cache --enable-dumpio --enable-logio --enable-mime-magic --enable-headers --enable-usertrack --enable-version --enable-ssl --enable-http --enable-rewrite --enable-proxy --enable-proxy-connect --enable-proxy-http --enable-proxy-ftp --enable-proxy-ajp --enable-proxy-balancer --enable-so
執行:
make && make install
這樣apache就裝好了
二.安裝python(python2.6)
三.安裝mod_python(mod_python3.3.1)
mod_python (http://www.djangoproject.com/r/mod_python/)是一個在Apache中嵌入Python的Apache插件,它在伺服器啟動時将Python代碼加載到記憶體中。
到www.modpython.org下載下傳源碼包,解壓後進入目錄:
[root@htuidc mod_python-3.3.1]# ./configure --with-apxs=/usr/local/apache/bin/apxs --with-python=/usr/bin/python
如果出現了如下錯誤:
configure: error: Can not link to python
解決辦法:
[root@htuidc bin]# yum install python-devel
[root@htuidc mod_python-3.3.1]# make
如果在編譯的過程中出現了如下錯誤:
connobject.c:142: error: request for member ?.ext?.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 `/usr/local/src/mod_python-3.3.1/src'
make: *** [do_dso] Error 2
需要修改/mod_python-3.3.1/src/connobject.c這個檔案,将其中的“!(b == APR_BRIGADE_SENTINEL(b) ”
修改為 “!(b == APR_BRIGADE_SENTINEL(bb)”
[root@htuidc mod_python-3.3.1]# make install
然後檢查apache的modules目錄是否存在mod_python.so庫,如果不存在,拷貝/usr/local/src/mod_python-3.3.1/src/mod_python.so到apache的modules目錄。
并在httpd.conf中加入:
LoadModule python_module modules/mod_python.so
四、建立python網站
1)在httpd.conf中加入
<Directory "/var/www/pyweb/py">
AllowOverride FileInfo
AddHandler mod_python .py
PythonHandler index
PythonDebug On
Order allow,deny
Allow from all
</Directory>
同時在
<IfModule alias_module>
</IfModule>
加入
ScriptAlias /py/ "/home/dantezhu/apache/py/"
然後重新開機apache
2)在apache目錄下建立一個py目錄,在裡面建立一個檔案index.py,内容如下:
from mod_python import apache
def handler(req):
req.write("Hello World!")
return apache.OK
(注意:PythonHandler index ,這裡的名字index決定必須用index.py來測試)