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
试下,有问题在找我。