1. 程式人生 > >httpd安裝和配置(cgi、wsgi)

httpd安裝和配置(cgi、wsgi)

參考:http://webpy.org/cookbook/mod_wsgi-apache.zh-cn   一、yum方式安裝: 1、yum install httpd 輸入y後繼續。   2、看到一下類似的返回,說明安裝成功   3、由於linux Redhat預設將httpd作為系統服務,可以根據實際需要將httpd加入開機啟動。 單獨檢視某一服務是否開機啟動的命令 :chkconfig --list 服務名 單獨開啟某一服務的命令 ;chkconfig 服務名 on 單獨關閉某一服務的命令;chkconfig 服務名 off
檢視某一服務的狀態:service httpd status   二、離線安裝httpd wget http://mirror.bit.edu.cn/apache//httpd/httpd-2.4.33.tar.gz tar -zxvf httpd-2.4.33.tar.gz yum install pcre pcre-devel -y 以下省去幾百字。   三、httpd常用配置: 1、配置httpd支援cgi vim /etc/httpd/conf/httpd.conf   如果這一行被註釋,去掉註釋
LoadModule cgi_module modules/mod_cgi.so   設定好CGI目錄: ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"   配置如下: <Directory "/var/www/cgi-bin/"> AllowOverride None Options FollowSymLinks +ExecCGI Order allow,deny Allow from all </Directory>   新增CGI副檔名:(去掉註釋)
AddHandler cgi-script .cgi .py   2、配置httpd支援web.py a、安裝python b、安裝web.py c、測試web.py是否成功安裝,並且可以訪問 code.py內容如下所示: import web urls = ( '/', 'index' ) class index: def GET(self): return "Hello, world!" if __name__ == "__main__": app = web.application(urls, globals()) app.run()   測試web.py是否安裝成功。 python code.py 8080 & 看到以下結果測試通過:   d、配置httpd支援web.py   您可以使用您自己的專案名稱替換’appname’。 您可以使用您自己的檔名稱替換’code.py’。 /var/www/webpy-app 為包含您的code.py的資料夾目錄路徑。 /var/www/webpy-app/code.py 是您的python檔案的完整路徑。   安裝mod_wsgi: yum install mod_wsgi(系統預設會關聯python2.6) 確認mod_wsgi.so 是否位於這個目錄/usr/lib64/httpd/modules/   vim /etc/httpd/conf/httpd.conf 在httpd.conf中配置Apache 載入 mod_wsgi模組和您的專案,在配置檔案最後面加入如下指令碼: LoadModule wsgi_module modules/mod_wsgi.so   WSGIScriptAlias /appname /var/www/webpy-app/code.py/   Alias /appname/static /var/www/webpy-app/static/ AddType text/html .py   <Directory /var/www/webpy-app/> Order deny,allow Allow from all </Directory>   演示檔案code.py import web   urls = ( '/.*', 'hello', )   class hello: def GET(self): return "Hello, world."   application = web.application(urls, globals()).wsgifunc()   在您的瀏覽器位址列中輸入’ http://your_server_name/appname’ 來驗證它是否可用。     #注意:經過測試,code.py無法匯入當前目錄的其他模組,可以臨時放到python的site-packgs目錄下。   #注意: mod_wsgi + sessions   如果您需要在mod_wsgi中使用sessions,您可以改變您的程式碼如下:   app = web.application(urls, globals())   curdir = os.path.dirname(__file__) session = web.session.Session(app, web.session.DiskStore(curdir + '/' + 'sessions'),)   application = app.wsgifunc()   #mod_wsgi 效能: 有關mod_wsgi的效能,請參考mod_wsgi的維基頁: http://code.google.com/p/modwsgi/wiki/PerformanceEstimates