python配置apache
❶ apache+python配置,配了一早上都沒配好,快瘋了
哦。怎麼說呢。新版本的apache可以輕松用WSGI方式使用python。別用mod_python,那個技術有些老。配置當真的難辦。我以前也是費了很大力氣配置。
用WSGI或者是FASTCGI結合 nginx,這個應該是更簡單。比apache2還要簡單。
強烈建議你用wsgi,最少也要用fastcgi。這樣更容易,更易維護開發,學起來也容易。
mod_python以前是以效率最快而出名的。不過因為上手難,配置不方便。所以現在基本上不用它了。
你找一個微框架很容易就弄出一個hello來。
比如最近我用parse??忘記全稱了。結合bottle.py輕松就弄了一個小網站。然後再用apche2的proxy方式連接過來。可以多進程負載均衡。沒有什麼壓力。性能還過得去。
❷ 如何配置apache+python+flask
1.mod_wsgi是最新的2.通常我們並不直接使用mod_wsgi,而是用基於wsgi標準的其他pythonweb框架開發。比如在Flask框架,webpy框架的中文文檔部分可以看到關於Apache與mod_wsgi的配置方法。
❸ 請教一個關於linux下APACHE關於PYTHON的設置問題
二、linux下apache配置python
一.安裝apache
apache linux平台下載
Apache v2.4.3 for Unix下載
界面預覽
軟體大小:7.90MB
軟體類別:國外軟體 | web伺服器
軟體語言:英文
運行環境:Unix
軟體授權:免費版
更新時間:2012-8-22 9:52:17
相關鏈接:Home Page
python linux平台下載
Python v2.5.1 For Linux 下載
界面預覽
軟體大小:10.55MB
軟體類別:國產軟體 | 開發編程
軟體語言:簡體中文
運行環境:Linux
軟體授權:免費版
更新時間:2007-4-25 21:41:00
相關鏈接:Home Page
mod_python下載: http://archive.apache.org/dist/httpd/modpython/
解壓後進入目錄:例如把apache安裝到/home/wwwroot/apache下,執行如下命令:
./configure --prefix=/home/wwwroot/apache --enable-track-vars --enable-cgi --with-config-file-path=/opt/apache/conf --enable-moles=all --enable-mods-shared=all --enable-file-cache --enable-disk-cache --enable-cache --enable-mem-cache --enable-mpio --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
然後,打開httpd.conf進行apache相關配置
二.安裝python
$ tar –jxvf Python-2.5.2.tar.bz2
$ cd Python-2.5.2
$ ./configure
$ make
$ make install
我的python安裝目錄是 /usr/local/lib/python2.5.2/
三.安裝mod_python(請用root許可權執行)
解壓後進入目錄,執行如下命令(這個命令分別指定了apache和python的目錄):
./configure --with-apxs=/home/dantezhu/apache/bin/apxs --with-python=/usr/local/bin/python
執行:
make
會在/usr/local/lib/python2.6/site-packages/下生成一個mod_python目錄
同時在./src/.libs/下生成了一個mod_python.so,將這個so拷貝到apache的moles目錄,並在httpd.conf中加入
LoadMole python_mole moles/mod_python.so
四.測試
1)在httpd.conf中加入
<Directory "/home/dantezhu/apache/py">
AllowOverride FileInfo
AddHandler mod_python .py
PythonHandler index
PythonDebug On
Order allow,deny
Allow from all
</Directory>
同時在
<IfMole alias_mole>
</IfMole>
加入
ScriptAlias /py/ "/home/dantezhu/apache/py/"
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來測試)
❹ 怎麼讓apache2能運行Python
在Ubuntu中,採用 sudo apt-get install apache2 安裝apache服務後,是不會帶Apxs,需要安裝 apache2-dev。其命令是:sudo apt-get install apache2-dev
安裝完後查看安裝的路徑: whereis apxs2
如果在安裝Mod_pythond的make過程出現這樣到錯誤:fatal error: Python.h: No such file or directory,可以安裝python2.7-dev(裝的是V2.7)解決,命令為:sudo apt-get install python2.7-dev
Apxs的默認位置:usr/bin/apxs,但在ubuntu11版本中已經是usr/bin/apxs2
Mod_python模塊的安裝:
現在可以正式安裝Mod_python模塊了。
1.首先從Mod_pythod(http://modpython.org/)官網上下載文件,其文件名為:mod_python-3.3.1.tgz(我下的是3.3.1版本的)。然後,對這個文件進行解壓操作:tar -zxvf /home/cosmos/mod_python-3.3.1.tgz (其中的目錄可以自己放置)。
2.解壓後通過cd mod_python-3.3.1命令進入mod_python-3.3.1這個文件夾。
3.進行Apxs目錄配置, 命令為:./configure --with-apxs=/usr/bin/apxs2。
4.進行Python本地配置,命令為:./configure --with-python=/usr/bin/python2.7(自己裝的Python是2.7版本的)。
7.安裝完成後會在/usr/lib/apache2/moles/生成mod_python.so這個文件,需要把它載入到apache2的配置文件中。修改/etc/apache2/httpd.conf文件,增加這么一行內容:LoadMole python_mole /usr/lib/apache2/moles/mod_python.so。然後,再重啟apache服務就可以了。
❺ windows+python+apache配置錯誤
插句話,現在用apache跑python好像比較流行用mod_wsgi,藉助於flask等輕量級python web框架開發很簡單。
Apache已經在2010年放棄維護mod_python了,這意味著用mod_python不僅開發難度大(缺少最新資料)而且可能有安全問題。如果不是必須用的話是不是可以考慮換一下。
❻ apache 同時配置python 和php
配置apache+django+mod_wsgi環境
newliver 2011年03月18日 星期五 11:32 | 15102次瀏覽 | 4條評論
新公司還是用apache,有段時間沒看django官網,以為還是用mod_python,看了一下介紹,官方推薦使用mod_Wsgi,據說nginx本身就內置了此mole,說明它的性能還是不錯的~而且mod_python已不再更新,和apache使用時,經常出現錯誤信息~從而配置了一下此環境,以此記錄過程~個人覺得以後還是換成nginx+uwsgi才行,哈哈~
配置apache+django+mod_wsgi環境
作者:liuzemin
時間:2011-3-4
目錄
1 開發環境
2 前提
3 配置Apache
4 配置django項目wsgi文件
1 開發環境
lubuntu10.04
python2.6
django1.25
mod_wsgi3.x
apache2.x
2 前提
搭建好開發環境 python和django的安裝略過,相信大家都會的 以下是安裝apache及mod_wsgi模塊支持庫
sudo apt-get install apache2
sudo apt-get install libapache2-mod-python2.6
sudo apt-get install libapache2-mod-wsgi
3 配置Apache
進入apache安裝目錄
cd /etc/apache2/
sudo gvim httpd.conf
編輯apache目錄下面的httpd.conf文件,添加以下內容
#載入mod_wsgi模塊
LoadMole wsgi_mole moles/mod_wsgi.so
#配置wsgi腳本的本地項目位置
WSGIScriptAlias / /home/alex/work/app/wsgi_test/apache/django.wsgi
<VirtualHost *:9000>
ServerName 127.0.1.1
#ServerAlias www.xxx.com
#DocumentRoot /home/alex/work/app/wsgi_test
<Directory "/home/alex/work/app/wsgi_test">
Order Deny,Allow
Allow from all
</Directory>
</VirtualHost>
4 配置django項目wsgi文件
#新建項目wsgi_test
django-admin.py startproject wsgi_test
#新建目錄存放wsgi文件
mkdir apache
#編輯wsgi文件 gvim django.conf #添加以下內容
# -*- coding: utf-8 -*-
import os
import sys
import django.core.handlers.wsgi
os.environ['DJANGO_SETTINGS_MODULE'] = 'wsgi_test.settings'
app_apth = "/home/alex/work/app/"
sys.path.append(app_apth)
application = django.core.handlers.wsgi.WSGIHandler()
別忘記重啟一下apache
sudo /etc/init.d/apache2 restart
至此打開瀏覽器即可看到django熟悉的it worked界面
【如果出現配置相關錯誤,請查看對應的路徑是否配置正確;如果apache報內部錯誤,可以在系統日誌文件查看apache出錯日誌查找原因】
❼ 配置Apache,使apache同時支持PHP和python。
你apache用什麼方式運行django?
mod_wsgi?mod_python?
可定要配置VirtualHost
這里有個wsgi的方式,你可以參考下
http://www.zeuux.com/blog/content/3738/
❽ 如何在Apache下設置Python
關於Python,本人不想多說了,如果不知道什麼是Python,可以看《什麼是Python?》一文。Python可以開發CGI程序,那麼在Apache下應如何配置呢?本文只講述了如何以CGI方式配置Apache,使其支持Python程序。其它方式,如mod_python則不在討論范圍(其實是沒配成功:-)。我所使用的系統環境為Windows 98, Apache 1.3.19,Python 2.1版。
准備
首先檢查以下要求是否已經達到:
Apache已經安裝,並且可以正常使用
Python已經安裝,並且可以正常使用(在我的環境下,Python安裝目錄為d:\python21)
好,如果一切正常,下面就開始了。
配置
修改DocumentRoot
打開Apache安裝目錄下的conf子目錄的httpd.conf文件。可以修改DocumentRoot為"f:/phpsite"。當然你可以按需要改成其它值。
允許任意目錄執行CGI
這個設置是允許被設目錄及其子目錄下的CGI程序可以CGI方式運行。在Apache中,盡管你可能已經設置了CGI文件後綴,但是如果未設置允許CGI程序運行選項,則無法運行CGI程序。
設置f:/phpsite目錄屬性:
Options Indexes FollowSymLinks MultiViews ExecCGI
AllowOverride None
Order allow,deny
Allow from all
其實我並未重新設置新的目錄屬性,而是將DocumentRoot的目錄屬性(原來指向Apache安裝目錄下的htdocs目錄,我改成為f:/phpsite了)增加了ExecCGI一項。
只允許特別目錄執行CGI
也可以只允許特別目錄下可以執行CGI程序。與上一步可以同時執行,也可兩種任選其一。只要設置:
ScriptAlias /cgi-bin/ "f:/phpsite/cgi-bin/"
即可。
增加CGI文件名後綴
修改 AddHandler cgi-script 一句為 AddHandler cgi-script .cgi .py。即讓Apache知道.py的文件為CGI程序
好了,到此Apache就配置好了,先啟動Apache,然後進行測試。
測試
Python本身不象PHP,不是一種嵌入式腳本(這種腳本比較適合做Web後端程序),所以所有輸出要自已做。
1 #!d:/python21/python.exe
2 print "Content-type: text/html"
3 print
4 print "
hello,world!
"
第1行是讓腳本以CGI方式運行必需的(這里是我的環境,記得嗎?我前面說了Python是裝在d:/python21下的),告訴Apache如何找到此文件的解釋程序。
第2,3行是告訴瀏覽器輸出內容的MIME格式。這里為輸出HTML文本。
第4行,輸出"hello,world!"。其實不輸出HTML的標記頭瀏覽器也可以正常顯示,盡管它不是完整的HTML格式。
如果測試成功,則一切大功告成。如果不行,聽天由命吧(可以給我發信,咱們共同解決)。
後話
在SourceForge網站上,有一個名字mod_snake的項目。它同mod_python一樣提供了針對Apache的Python模塊化處理,但是mod_snake支持HTML文檔嵌入Python標記,有點象PHP。不過現在它只支持Linux,而沒有Windows下的版本。唉,我一定要轉到Linux下面去!使用CGI方式調用Python速度不是很快,而如果使用mod_python則速度可能要快幾十倍。這個不是我測出來的,是mod_python網站上說的。
轉載僅供參考,版權屬於原作者。祝你愉快,滿意請採納哦
❾ 怎麼配置Apache來運行Python編寫的cgi腳本
配置Apache web伺服器,讓其能運行CGI腳本
在這個教程里,我們假設Apache web伺服器已經安裝好,並已運行。這篇教程使用的Apache web伺服器(版本2.2.15,用於CentOS發行版6.5)運行在本地主機(127.0.0.1),並且監聽80埠,如下面的Apache指令指定一樣:
ServerName 127.0.0.1:80Listen 80
下面舉例中的HTML文件存放在web伺服器上的/var/www/html目錄下,並通過DocumentRoot指令指定(指定網頁文件所在目錄):
DocumentRoot "/var/www/html"
現在嘗試請求URL:http://localhost/page1.html
這將返回web伺服器中下面文件的內容:
/var/www/html/page1.html
為了啟用CGI腳本,我們必須指定CGI腳本在web伺服器上的位置,需要用到ScriptAlias指令:
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
以上指令表明CGI腳本保存在web伺服器的/var/www/cgi-bin目錄,請求URL里包含/cgi-bin/的將會搜索這個目錄下的CGI腳本。
我們必須還要明確CGI腳本在/var/www/cgi-bin目錄下有執行許可權,還要指定CGI腳本的文件擴展名。使用下面的指令:
<Directory "/var/www/cgi-bin"> Options +ExecCGI AddHandler cgi-script .py</Directory>
下面訪問URL:http://localhost/cgi-bin/myscript-1.py
這將會調用web伺服器中下面所示腳本:
/var/www/cgi-bin/myscript-1.py
創建一個CGI腳本
在創建一個Python CGI腳本之前,你需要確認你已經安裝了Python(這通常是默認安裝的,但是安裝版本可能會有所不同)。本篇教程使用的腳本是使用Python版本2.6.6編寫的。你可以通過下面任意一命令(-V和--version參數將顯示所安裝Python的版本號)檢查Python的版本。
$ python -V$ python --version
如果你的Python CGI腳本要用來處理用戶輸入的數據(從一個web輸入表單),那麼你將需要導入Python cgi模塊。這個模塊可以處理用戶通過web輸入表單輸入的數據。你可以在你的腳本中通過下面的語句導入該腳本:
import cgi
你也必須修改Python CGI腳本的執行許可權,以防止web伺服器不能調用。可以通過下面的命令增加執行許可權:
# chmod o+x myscript-1.py
Python CGI例子
涉及到Python CGI腳本的兩個方案將會在下面講述:
使用Python腳本創建一個網頁
讀取並顯示用戶輸入的數據,並且在網頁上顯示結果
注意:Python cgi模塊在方案2中是必需的,因為這涉及到用戶從web表單輸入數據。
例子1 :使用Python腳本創建一個網頁
對於這個方案,我們將通過創建包含一個單一提交按鈕的網頁/var/www/html/page1.html開始。
<html><h1>Test Page 1</h1><form name="input" action="/cgi-bin/myscript-1.py" method="get"><input type="submit" value="Submit"></form></html>
當"提交"按鈕被點擊,/var/www/cgi-bin/myscript-1.py腳本將被調用(通過action參數指定)。通過設置方法參數為"get"來指定一個"GET"請求,伺服器將會返回指定的網頁。/var/www/html/page1.html在瀏覽器中的顯示情況如下:
/var/www/cgi-bin/myscript-1.py的內容如下:
#!/usr/bin/pythonprint "Content-Type: text/html"print ""print "<html>"print "<h2>CGI Script Output</h2>"print "<p>This page was generated by a Python CGI script.</p>"print "</html>"
第一行聲明表示這是使用 /usr/bin/python命令運行的Python腳本。"Content-Type: text/html"列印語句是必需的,這是為了讓web伺服器知道接受自CGI腳本的輸出類型。其餘的語句用來輸出HTML格式的其餘網頁內容。
當"Submit"按鈕點擊,下面的網頁將返回:
這個例子的要點是你可以決定哪些信息可以被CGI腳本返回。這可能包括日誌文件的內容,當前登陸用戶的列表,或者今天的日期。在你處理時擁有所有python庫的可能性是無窮無盡的。
例子2:讀取並顯示用戶輸入的數據,並將結果顯示在網頁上
對於這個方案,我們將通過創建一個含有三個輸入域和一個提交按鈕的網頁/var/www/html/page2.html開始。
<html><h1>Test Page 2</h1><form name="input" action="/cgi-bin/myscript-2.py" method="get">First Name: <input type="text" name="firstName"><br>Last Name: <input type="text" name="lastName"><br>Position: <input type="text" name="position"><br><input type="submit" value="Submit"> </form></html>
當"Submit"按鈕點擊,/var/www/cgi-bin/myscript-2.py腳本將被執行(通過action參數指定)。/var/www//html/page2.html顯示在web瀏覽器中的圖片如下所示(注意,三個輸入域已經被填寫好了):
/var/www/cgi-bin/myscript-2.py的內容如下:
#!/usr/bin/pythonimport cgiform = cgi.FieldStorage()print "Content-Type: text/html"print ""print "<html>"print "<h2>CGI Script Output</h2>"print "<p>"print "The user entered data are:<br>"print "<b>First Name:</b> " + form["firstName"].value + "<br>"print "<b>Last Name:</b> " + form["lastName"].value + "<br>"print "<b>Position:</b> " + form["position"].value + "<br>"print "</p>"print "</html>"
正如前面提到,import cgi語句用來確保能夠處理用戶通過web輸入表單輸入的數據。web輸入表單被封裝在一個表單對象中,叫做cgi.FieldStorage對象。一旦開始輸出,"Content-Type: text/html"是必需的,因為web伺服器需要知道接受自CGI腳本的輸出格式。用戶輸入的數據在包含form["firstName"].value,form["lastName"].value,和 form["position"].value的語句中可以得到。那些中括弧中的名稱和/var/www/html/page2.html文本輸入域中定義的名稱參數一致。
當網頁上的"Submit"按鈕被點擊,下面的網頁將被返回。
這個例子的要點就是你可以很容易地讀取並顯示用戶在web表單上輸入的數據。除了以字元串的方式處理數據,你也可以用Python將用戶輸入的數據轉化為可用於數值計算的數字。
附上出處鏈接:https://linux.cn/article-4377-1.html