PHP +python +Apache (在PHP 项目中 调用 python 接口)

在PHP 项目中 调用 python 接口:

安装Python36-32.exe;然后做如下的配置:

1.cd easy_install.exe 所在目录(C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\Scripts)
2.easy_install.exe pip   -- 安装pip 模块
3.cd 项目所在目录  --- 接口项目
4.通过pip安装依赖库: pip install -r requirements.txt   ---接口项目相关的依赖包
5.运行项目

6. 配置python 环境   ----解决 浏览器中 python 不是命令的问题
   httpd.conf  中
找到“Options Indexes FollowSymLinks ”这句,在后面加上”ExecCGI “。(那个”Indexes “最好也能去掉,因为如果不去掉的话,目录下面没有index.html这种文件,就会显示出目录列表下的所有文件,所以有安全漏洞问题。如果去掉Indexes,而且没有index.html文件的话,就会显示一个Forbidden页面) 
找到”AddHandler cgi-script .cgi “,在后面加上 .py。如果没有这句,可以自己添加 “AddHandler cgi-script .py” 
重新启动Apache即可


访问testpy.php  :

<?php
/**
 * Created by PhpStorm.
 * User: yl1295
 * Date: 2017-10-19
 * Time: 9:13
 */
$cmd="python -h";
$descriptorspec = array(
    0 => array("pipe", "r"),    // stdin
    1 => array("pipe", "w"),    // stdout
    2 => array("pipe", "w")     // stderr
);
$proc = proc_open($cmd, $descriptorspec, $pipes, null, null);
if (is_resource($proc)) {
    $stdout = stream_get_contents($pipes[1]);
    fclose($pipes[1]);
    $stderr = stream_get_contents($pipes[2]);
    fclose($pipes[2]);
    $status = proc_close($proc);  // 释放proc
} else {
    $stderr = "返回非资源文件";
    $status = -1;
}
$msg = array(
    'out' => $stdout,
    'info' => $stderr,
    'code' => $status
);

echo $msg["out"]."a\n";
echo $msg["info"]."b\n";
echo $msg["code"]."c\n";


能够正常显示如图即可!








  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值