python配合php
最近开始学着用Python+Tornado+MongoDB写网站,兴起写了一个博客,觉得很有意思所以想挂在服务器上发布出去找大家一起玩。这个时候就遇到了问题。
服务器是windows系统,安装的是Apache,所以需要配置Apache,使Apache同时支持PHP和Python。
废话少说,提供有效方案一个,照做即可:
1. 修改 httpd.conf 文件
将下列几个Mole前的注释符 # 去掉
LoadMole proxy_mole moles/mod_proxy.so
LoadMole proxy_connect_mole moles/mod_proxy_connect.so
LoadMole proxy_ftp_mole moles/mod_proxy_ftp.so
LoadMole proxy_http_mole moles/mod_proxy_http.so
2. 配置 httpd-vhosts.conf 文件
<VirtualHost *:80>
ServerName http://b06.suosikeji.com #这是你要解析的网站地址
ServerAdmin [email protected]
ProxyRequests Off
< Proxy *>
Order deny,allow
Allow from all
< /Proxy>
proxypass / http://127.0.0.1:8002/ #这里是你的python站点的地址
proxypassreverse / http://127.0.0.1:8002/ #同上
</VirtualHost>
3. 重启 Apache
以上就是我的成功案例。
网上还查到一个方法是通过nginx配置反向代理,我试了一个多小时然后放弃了。之前没接触过nginx,所以出了问题也不知道该怎么解决。其中让我气得要吐血的一个问题是:
nginx文件夹始终为“只读”,怎么改也改不了……导致nginx.exe无法运行……
要是哪位朋友有解决方案,望不吝赐教。
关于反向代理的初步认识:
以我的网站为例,博客运行在服务器本地8002端口,即 http://127.0.0.1:8002。我要解析的域名为 http://b06.suosikeji.com。
由于服务器环境为Apache,所以外面无法直接访问服务器上未在Apache中配置的某个端口,所以需要进行反向代理的配置。
配置好反向代理之后,当用户访问 http://b06.suosikeji.com/add 页面时,服务器Apache收到请求,将其转换为 http://127.0.0.1:8002/add 交给Python处理,并将Python处理出的结果返回,这样用户就看到了正确的页面。
Ⅱ php调用python
py和php放在同一个目录下面
some.py
------------------------------------------
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import sys
def do_some(a):
return "dosome:%s" % a
if __name__ == '__main__':
a = sys.argv[1]
if a:
T = do_some(a)
print T
-------------------------------------------
t.php
<?php
$k = $_REQUEST['k'];
if (!empty($k))
{
$k = trim($k);
// $a = array();
// exec('python ./some.py '.$k, $a);
// echo $a[0];
passthru('python ./some.py '.$k);
}
然后浏览器里面输入
浏览器会返回dosome:test
被我注释掉的代码也可以用来替代passthru
里面的$a 用来捕获输出 不过束腰注意的是 这里的arry 他是按照每一行'
'当作一个元素
但是passthru 则是你python里的print的原样输出
Ⅲ php+python的组合是否合理
python比较好
Python的设计哲学是“优雅”、“明确”、“简单”。因此,Perl语言中“总是有多种方法来做同一件事”的理念在Python开发者中通常是难以忍受的。Python开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”。
Ⅳ 如何实现在PHP中调用Python并获取运行结果
Python的import包含文件功能就跟PHP的include类似,但更确切的说应该更像是PHP中的require,因为Python里的import只要目标不存在就报错程序无法往下执行。要包含目录里的文件,PHP中只需要给对路径就OK。Python中则不同,下面来看看这个例子。
Ⅳ 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出错日志查找原因】