?
?
一、yum方式安裝:
1、yum install httpd
輸入y后繼續(xù)。
?
2、看到一下類似的返回,說明安裝成功
?
3、由于linux Redhat默認將httpd作為系統服務,可以根據實際需要將httpd加入開機啟動。
單獨查看某一服務是否開機啟動的命令 :chkconfig --list 服務名
單獨開啟某一服務的命令 ;chkconfig 服務名 on
單獨關閉某一服務的命令;chkconfig 服務名 off
查看某一服務的狀態(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
?
設置好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的性能
本文摘自 :https://blog.51cto.com/b