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