apache與python
⑴ 怎麼讓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服務就可以了。
⑵ 如何讓apache支持python
話說apache不能啟動原因非常多,建議用排除法,如果什麼肯定是wsgi.so文件有問題,試下for python2.6看看。我記得第一次配置apache的時候,error文件報mole wsgi錯誤,但後來發現其實是靜態文件路徑寫錯了。
⑶ 如何在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網站上說的。
轉載僅供參考,版權屬於原作者。祝你愉快,滿意請採納哦
⑷ 我安裝python +apache 時 apache 的錯誤日誌提示這個 瀏覽器訪問的時候直接就顯示代碼了,求解釋
你用的是mod_python,可能是版本太老了。它檢查到版本不對。
如果使用最新版本的mod_python也許沒有這個問題。
另外就是通過它的檢測,這個不難。通常檢測是通過幾個辦法:
1.注冊表。這個地方我不太記得了。似乎有1-2個值是標志python版本的。你搜索一下看。
最笨的辦法是搜索python的class里的注冊值。找到python,看看它後面的版本號以及執行路徑。如果不對。你將2.5.4改成2.5就OK
2.python執行文件本身報告出來的版本。這個有些難,如果搞不定可以通過一個批處理過濾一下。
3.python的安裝目錄名不對。(可能性不大)
不過老實說mod_python已經過時了,現在一般都是用wsgi的。連fastcgi都用得少了。就是wsgi。
⑸ 如何配置apache+python+flask
1.mod_wsgi是最新的2.通常我們並不直接使用mod_wsgi,而是用基於wsgi標準的其他pythonweb框架開發。比如在Flask框架,webpy框架的中文文檔部分可以看到關於Apache與mod_wsgi的配置方法。
⑹ 如何讓Apache像支持Php那樣支持Python
第一步:先下載安裝mod_python-3.3.1.win32-py2.5-Apache2.2.exe這個apache的模塊選擇apache的安裝目錄,會在moles中生成mod_python.so這個文件
第二步:修改apache下的http.conf文件加入
LoadMole python_mole moles/mod_python.so
<Directory E:\WampServer\www\python>
AddHandler mod_python .py
PythonHandler test
PythonDebug On
</Directory>
test.py
from mod_python import apache
def handler(req):
req.content_type = 'text/plain'
req.write("Hello World!")
return apache.OK
如果輸出hello world 就成功了
⑺ apache+python配置,配了一早上都沒配好,快瘋了
哦。怎麼說呢。新版本的apache可以輕松用WSGI方式使用python。別用mod_python,那個技術有些老。配置當真的難辦。我以前也是費了很大力氣配置。
用WSGI或者是FASTCGI結合 nginx,這個應該是更簡單。比apache2還要簡單。
強烈建議你用wsgi,最少也要用fastcgi。這樣更容易,更易維護開發,學起來也容易。
mod_python以前是以效率最快而出名的。不過因為上手難,配置不方便。所以現在基本上不用它了。
你找一個微框架很容易就弄出一個hello來。
比如最近我用parse??忘記全稱了。結合bottle.py輕松就弄了一個小網站。然後再用apche2的proxy方式連接過來。可以多進程負載均衡。沒有什麼壓力。性能還過得去。
⑻ Apache python 有的包無法調用
是不是調用了DLL的?可能是你引用的包寫得有問題,載入DLL的路徑不對,所以Apache調用就不行了。
你直接雙擊你的py文件,工作路徑是py文件所在文件夾,而用Apache調用的話,工作路徑就是Apache的工作路徑,如果你調用的包對本地DLL的調用是按相對路徑來的,就會找不到DLL。
比如我在調用和py文件相同路徑的dll時,這樣才不受工作路徑影響
myFunc=CDLL(os.path.join(os.path.dirname(__file__),"myfunc.so"))
⑼ 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出錯日誌查找原因】
⑽ 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
試下,有問題在找我。