當(dāng)前位置:首頁 > IT技術(shù) > Web編程 > 正文

httpd安裝和配置(cgi、wsgi)
2021-09-17 11:47:25

?

?

一、yum方式安裝:

1、yum install httpd

輸入y后繼續(xù)。

?

2、看到一下類似的返回,說明安裝成功

?

3、由于linux Redhat默認(rèn)將httpd作為系統(tǒng)服務(wù),可以根據(jù)實(shí)際需要將httpd加入開機(jī)啟動。

單獨(dú)查看某一服務(wù)是否開機(jī)啟動的命令 :chkconfig --list 服務(wù)名

單獨(dú)開啟某一服務(wù)的命令 ;chkconfig 服務(wù)名 on

單獨(dú)關(guān)閉某一服務(wù)的命令;chkconfig 服務(wù)名 off

查看某一服務(wù)的狀態(tài):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

?

設(shè)置好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擴(kuò)展名:(去掉注釋)

AddHandler cgi-script .cgi .py

?

2、配置httpd支持web.py

a、安裝python

b、安裝web.py

c、測試web.py是否成功安裝,并且可以訪問。

code.py內(nèi)容如下所示:

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 &

看到以下結(jié)果測試通過:

?

d、配置httpd支持web.py

?

您可以使用您自己的項(xiàng)目名稱替換’appname’。

您可以使用您自己的文件名稱替換’code.py’。

/var/www/webpy-app 為包含您的code.py的文件夾目錄路徑。

/var/www/webpy-app/code.py 是您的python文件的完整路徑。

?

安裝mod_wsgi: yum install mod_wsgi(系統(tǒng)默認(rèn)會關(guān)聯(lián)python2.6)

確認(rèn)mod_wsgi.so 是否位于這個目錄/usr/lib64/httpd/modules/

?

vim /etc/httpd/conf/httpd.conf

在httpd.conf中配置Apache 加載 mod_wsgi模塊和您的項(xiàng)目,在配置文件最后面加入如下腳本:

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’ 來驗(yàn)證它是否可用。

?

?

#注意:經(jīng)過測試,code.py無法導(dǎo)入當(dāng)前目錄的其他模塊,可以臨時放到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 性能: 有關(guān)mod_wsgi的性能

本文摘自 :https://blog.51cto.com/b

開通會員,享受整站包年服務(wù)立即開通 >