pythonapache日誌
① apache+python配置,配了一早上都沒配好,快瘋了
哦。怎麼說呢。新版本的apache可以輕松用WSGI方式使用python。別用mod_python,那個技術有些老。配置當真的難辦。我以前也是費了很大力氣配置。
用WSGI或者是FASTCGI結合 nginx,這個應該是更簡單。比apache2還要簡單。
強烈建議你用wsgi,最少也要用fastcgi。這樣更容易,更易維護開發,學起來也容易。
mod_python以前是以效率最快而出名的。不過因為上手難,配置不方便。所以現在基本上不用它了。
你找一個微框架很容易就弄出一個hello來。
比如最近我用parse??忘記全稱了。結合bottle.py輕松就弄了一個小網站。然後再用apche2的proxy方式連接過來。可以多進程負載均衡。沒有什麼壓力。性能還過得去。
② 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出錯日誌查找原因】
③ python代碼沒錯但運行不出來
python代碼沒錯但運行不出來是什麼原因呢?不知道的小夥伴來看看今天的分享吧!1、python代碼沒錯但運行不出來的原因:
某項目中使用python腳本方式將日誌文件中的數據持續的轉換格式輸出到另一文件中以供其他日誌分析應用使用。但是當後台運行採取重定向方式輸出到某一文件時,發現並沒有內容輸出,命令如下:
pythonxxx.py>xxx.log&
測試發現,當前台直接輸出到終端時正常,使用後台運行重定向的方式輸出到文件中時無法輸出。
2、解決辦法:
發現是在程序運行時,輸出有緩存,只有當程序運行結束或者緩沖區滿後才會輸出。因為程序是一致在運行的所以不可能等待程序結束在輸出。並且要求是有實時性的所以等緩沖區滿輸出的方式也不可取。
所以採用在python運行時加上-u參數,如:
python-uxxx.py>xxx.log&
-u參數的意義是不使用緩沖的方式輸入輸出
詳細如下:
Forcestdin,.Onsystemswhereitmatters,alsoputstdin,stdoutandstderrinbinarymode.(),readlines()andfile-objectiterators("forlineinsys.stdin」).Toworkaroundthis,youwillwanttouse"sys.stdin.readline()」insidea"while1:」loop.
補充知識:python中運行代碼時沒有報錯但是也沒有輸出而且還有exitcode0的結束標志
如下所示:
f=open("passwd.txt",'r')
print(f.read(4))
f.close()
這是想要執行的代碼
passwd.txt中的內容
ntp:x:38:38::/etc/ntp:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
saslauth:x:498:76:Saslauthser:/var/empty/saslauth:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
pulse:x:497:496:PulseAudioSystemDaemon:/var/run/pulse:/sbin/nologin
但是輸出的結果是
Processfinishedwithexitcode0
後來排查發現原來是解釋器的問題
我之前使用的解釋器是pycharm提供的虛擬解釋器
#####如何查看解釋器
點file?C>newprojects
如果選擇的是2就是使用了pycharm提供的虛擬解釋器,又因為passwd.txt文件不是在虛擬環境中的所以就沒有輸出。
點擊3然後選擇你已經下載好的解釋器即可。
以上就是今天的分享了,希望可以幫助到大家。
④ 我安裝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。
⑤ python和apache沖突嗎
python的一門編程語言,apache是一個開源的web伺服器,雖然apache通過mod可以支持python,但是跟python不是一類東西,所以不會有沖突。
如果解決了您的問題請採納!
如果未解決請繼續追問!
⑥ 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
試下,有問題在找我。