httpd安裝和配置(cgi、wsgi)

參考:http://webpy.org/cookbook/mod_wsgi-apache.zh-cnhtml

 

1、yum方式安裝:python

一、yum install httpdlinux

輸入y後繼續。web

 

二、看到一下相似的返回,說明安裝成功apache

 

三、因爲linux Redhat默認將httpd做爲系統服務,能夠根據實際須要將httpd加入開機啓動。vim

單獨查看某一服務是否開機啓動的命令 :chkconfig --list 服務名瀏覽器

單獨開啓某一服務的命令 ;chkconfig 服務名 onsession

單獨關閉某一服務的命令;chkconfig 服務名 offapp

查看某一服務的狀態:service httpd statuside

 

2、離線安裝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

如下省去幾百字。

 

3、httpd經常使用配置:

一、配置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

 

二、配置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

相關文章
相關標籤/搜索