apachepython版本
1. 怎麼配置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
2. 如何配置apache+python+flask
1.mod_wsgi是最新的2.通常我們並不直接使用mod_wsgi,而是用基於wsgi標準的其他pythonweb框架開發。比如在Flask框架,webpy框架的中文文檔部分可以看到關於Apache與mod_wsgi的配置方法。
3. 有沒有Python,Apache,mySQl的集成開發環境高手來~
這個是有的。下面這個站點也包括Windows + Apache + MySQL + PHP/Ruby/Python/Django, 有直接搭建好Django和Rails的一鍵安裝環境。
下載地址:http://bitnami.com/stacks
4. apache 配置 運行python無法import
看錯誤提示是應該是你的myfirst.py文件沒有放在系統路徑包含的地方
可以在apache中的加入myfirst.py所在的路徑
如
PythonPath "sys.path + ['myfirst.py所在目錄']"
再試試
5. 怎麼讓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服務就可以了。
6. 如何用python和web.py搭建一個網站
環境搭清皮建。
環境搭建比較繁瑣,記得當時也是滿世界找資料,所以我直接打包好了所有的文件(apache(已經放進去python-wscgi)+web.py+apache所需要的vs2010運行庫+python+網站文件),直接解壓放上去就能用。有需要同學讓我傳一個或者網盤發一把就行。
裝apache並配置python-wscgi,這個答鋒差比較慘,花了好多時間去搜索才搞定,主要是windows上的python-wscgi不好難找。
為了節省以後的開發時間,我把配置好的apache給打包了,反正也是綠色的,新建網站只需要在伺服器上配置開機啟動apache,並在apache的config裡面修改下自己網站路徑就行。
2.開發。
開發階段倒是沒什麼好說的,web.py官方有教程,不過這里我需要提幾點建議:
如果可以務必全站用utf-8編碼。
建立資料庫建議寫個生成腳本,比如createDataBase.py,有改動重新運行一遍,不要試用ide去建。
一.基本概念基盯
網際網路起源於美國國防部高級研究計劃管理局建立的阿帕網。網站(Website)開始是指在網際網路上根據一定的規則,使用HTML(標准通用標記語言下的一個應用)等工具製作的用於展示特定內容相關網頁的集合。
二.建設網站考慮因素
1、網站的客戶服務群體;
2、網站的內容方向和性質;
3、網站的功能描述和結構分析;
4、網站的用戶體驗;
5、網站的盈利方式;
6、網站的未來發展方向。
7. linux配置apache和python的環境,mod_python在安裝的報錯處理,在線等!!
編譯過程鍾可能出現以上錯誤
解決方案:
修改src/connobject.c第142行
把!(b == APR_BRIGADE_SENTINEL(b) || 改為!(b == APR_BRIGADE_SENTINEL(bb) ||
你碰到的應該是這個情況吧?
/usr/local/lib/python2.5/config/libpython2.5.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
apxs:Error: Command failed with rc=65536
解決方案:
一定要確認編譯Python的時候有沒有加上--enable-shared,如果沒有,加上重新編譯
此時行Python可能出現以錯誤
python: error while loading shared libraries: libpython2.7.so.1.0:
cannot open shared object file: No such file or
解決辦法:
新建下面文件
vim /etc/ld.so.conf.d/python2.7.conf
加入內容:
/usr/local/lib
保存退出後運行:
ldconfig
試下,有問題在找我。