linux php 执行python,Linux(Ubuntu)下php使用exec调用python程序返回json数据

问题起因:解决乱码问题,及解决PHP调用python外部程序的权限问题

数据中带有中文,数据来自python读取微软数据库mssql2005 server的数据

操作注意事项主要有两点:

1.python返回的编码必须为utf-8

(1)    必须导入codecs模块,操作代码如下:

import codecs

# 重要,必须要加上才能转为utf-8

sys.stdout = codecs.getwriter('utf-8')(sys.stdout.detach())

(2) 这里使json格式返回,并非必要.

print(json.dumps(data,ensure_ascii=False))

这里的data是字典格式,方便转为合理的json格式。

820bbf7b13e8347ea0a2b00743106db3.png

2.php端在使用exec调用python外部程序时,必须使用$set_charset = 'export LANG=en_US.UTF-8;'加在调用的命令前面。如:

(1)//Linux版本

$cmd = "python  test.py  {$djdm}";

$set_charset = 'export LANG=en_US.UTF-8;';

exec($set_charset.$cmd,$res_data,$res_state);

(2)//Windown版本 不能使用$set_charset = 'export LANG=en_US.UTF-8;'加在调用的命令前面.

//Window版本

$cmd = "python ".PLUG_IN_DJBREAKS." {$djdm}";

exec($cmd,$res_data,$res_state)

;

998e6872c2c81e096e564672e29e9542.png

3.必须授权apache用户给php项目文件夹或在调用exec命令的php文件

授权方法:

(1)先查询apache的用户是哪了个

在apache的配置文件apache2.conf查找User 和 Group (User用户和Group用户组)是什么。

如这里查到User和Group都是www-data

4281bf8dd32e53520e54f7f0431a0c07.png

e17c5c08f973ba2a47e04061574619be.png

(2)进入etc目录并修改文件sudoers,增加用户和组www-data

在root下面增加www-data修改如下:

root    ALL=(ALL:ALL) ALL

www-data ALL=(ALL) NOPASSWD:ALL

注意sudoers是只读文件,使用超级管理员修改权限 sudo chmod 777 sudoers ,再修改 sudo vim sudoers.修改完收回权限。

d11b5fb89b9441bf767101a1e2edad7f.png

(3)使用ls -l查看php项目文件夹的用户和组是否为www-data.如果不是,则使用下面命令授权

chown -R www-data:www-data SPB_SYS

这里的SPB_SYS是项目目录.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/502849.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实时获取滚动条的高度_适用于星上快速处理的雷达高度计有效波高反演技术

卫星雷达高度计的主要观测参数之一为有效波高,数据产品中其数值的确定通过波形重跟踪来实现(Retracking),波形重跟踪的实现主要通过最大似然迭代完成,其主要的反演公示为W(t) PFS(t)*qs(t)*sr(t)。式中包括:高度计海面回波由平坦…

基于python的modbus协议编程_通往未来的网络可编程之路:Netconf协议与YANG Model

近年来,随着全球云计算领域的不断发展与业务的不断增长,促使网络技术也不断发展,SDN技术应运而生,从最初的基于Openflow的转发与控制分离的核心思想,人们不断的去扩展SDN的外延,目前,人们可以达…

php new static 效率,PHP中new static()与new self()的比较

今天在coding的时候,发现了 new static(),觉得实例化的地方不是应该是 new self()吗?查询了一下才知道两者的区别:1)在有子类集成的时候,两者的表现不一样2)php 5.2及以下的版本不支持 new static()的语法简单通俗的来说, self就是…

mfc color 亮度_双十一4K投影仪怎么选?小心别掉“亮度坑” - 电视

导读:  不少影音爱好者计划在双十一期间购入4K投影仪,组建家庭影院、升级视觉享受,却因为选购产品亮度不足,让期待落空,还耗费时间、精力。投影仪亮度不足,画面看起来像是蒙上一层纱,不清晰&a…

oracle归档模式备份恢复,oracle归档模式备份恢复

Oracle归档模式1Oracle归档模式设置1.1以系统管理员身份登录sqlplus /nologSQL>connect sys/oracle as sysdba;Connected.1.2检查当前数据库是否为归档模式SQL> archive log list;Database log mode No Archive ModeAutomatic archival DisabledArchive destination USE_…

dosbox edit.exe 如何使用_宅家30天,2万字节java高级工程师面试题解析,如何斩获阿里p7...

宅家里一个月,“闭关修炼”的你是不是正在为金三银四跳槽季发愁呢?小编今天说的这富含的15个互联网大厂Java高级工程师核心面试问题整理!内容包括:kafka面试题及解析18道ZooKeeper面试题及解析28道Linux 面试真题及解析45道MySQL面…

3三星闪存刷梅林_三星电子副会长李在镕造访西安

5月18日,陕西省委书记胡和平、省长刘国中在西安会见了三星电子副会长李在镕。Source:陕西日报胡和平表示,当前,陕西疫情防控取得阶段性重要成果,经济社会秩序加快恢复,包括三星在内的外资企业保持良好运行态…

stata中介效应的sobel检验_SPSS进行中介效应检验的实战操作与分析——杏花开生物医药统计...

中介变量( Mediator) 是一个重要的统计概念,如果自变量X通过某一变量M对因变量Y产生一定影响,则称M为X和Y的中介变量。研究中介作用的目的是在已知X和Y关系的基础上,探索产生这个关系的内部作用机制。在这个过程中可以把原有的关于同一现象的…

oracle复制一个表的结构图,Oracle复制表结构

Oracle复制表结构如下&#xff0c;表a是数据库中已经存在的表&#xff0c;b是准备根据表a进行复制创建的表&#xff1a;1、只复制表结构的sqlcreate table b as select * from a where 1<>12、即复制表结构又复制表中数据的sqlcreate table b as select * from a3、复制表…

鼠标图标怎么自定义_酷鱼魔鼠——给鼠标添加酷炫的特效

酷鱼魔鼠是由酷鱼软件开发的一款非常有趣的鼠标特效软件。软件可以在你移动或者点击鼠标的时候&#xff0c;展示非常酷炫华丽的鼠标移动轨迹和点击特效。软件提供了非常多的鼠标动作特效&#xff0c;可以自定义设置鼠标移动、按下、双击、单机、点击桌面图标时的特效效果。并且…

uml+oopc嵌入式c语言开发精讲_嵌入式开发中更接近底层的汇编与C语言

分享本文&#xff0c;介绍下更接近硬件底层的C语言与汇编&#xff0c;解释 CPU 如何执行代码。高级语言与低级语言学习编程其实就是学习与计算机交流的语言。因为计算机不理解人类语言&#xff0c;通过编译器把人类写的代码转成二进制代码&#xff0c;才能在机器上运行。掌握了…

oracle循环异常跳过,oracle异常处理00103 loop异常继续循环 异常处理选点

loop循环希望异常处理后继续&#xff0c;异常处理选点很重要。CREATE OR REPLACE PROCEDURE P_G_ZTE_CELL_SUM41(V_BEGIN IN VARCHAR,V_END IN VARCHAR) ASV_EXIST INT;V_TIME_BEGIN DATE : TO_DATE(V_BEGIN, YYYY-MM-DD HH24);V_TIME_END DATE : TO_DATE(V_END, YYYY…

delphi xe http 收不到反馈消息_好消息!浦东这个小区3幢多层住宅都要加装电梯啦→...

原标题&#xff1a;好消息&#xff01;浦东这个小区3幢多层住宅都要加装电梯啦→好消息&#xff01;东明路街道这个小区要加装电梯&#xff0c;还是3个&#xff01;规划设计方案公示中快和小布一起看看吧&#xff01;▽环林东路879弄加装电梯项目建设单位&#xff1a;上海市浦东…

php调用美图接口,网易美图 API 接口调用与请求方法详细教程

原标题&#xff1a;网易美图 API 接口调用与请求方法详细教程网易美图 API 接口在网上已经很多且大都封装成了 API 供别人调用。支持前台跨域请求&#xff0c;以POST方式提交图片即可。网易美图 API 接口会随机更新一张美图&#xff0c;你可以选择调用本站的接口&#xff0c;也…

nlp 财务提取_RPA,智慧财务时代的“珍妮纺织机”来了?

智慧财务020社群与知识分享&#xff5c;上方蓝字星标置顶订阅&#xff5c;转载商务合作请添加首财君微信&#xff1a;cfo_tian昨日重磅《百亿存款谜局2》新戏码下的资管拷问一文秒懂财务机器人(RPA)的拐点和跳点。文 | 首财君【原创】出品 | 首席财务官(ID&#xff1a;cfoworld…

python定时任务apschedule_APScheduler(python 定时任务框架)最简单使用教程

有时候需要部署一些很简单的python定时任务&#xff0c;使用APScheduler是很好的选择。只需要简单的设置几个参数&#xff0c;就可以实现定时、定分甚至秒来跑。第一步&#xff1a;用pip安装APSchedulerpip install apscheduler第二步&#xff1a;导入并设置参数from apschedul…

安装oracle配置监听出错,安装失败,无法建立监听?

本帖最后由 tomfish88 于 2013-12-5 13:23 编辑原来的监听如何删除呢&#xff0c;我把注册表的也删除了&#xff0c;还是安装不成功&#xff0c;QQ截图20131203114715.png (70.13 KB, 下载次数: 2)2013-12-5 13:21 上传QQ截图20131205132007.png (8.28 KB, 下载次数: 1)2013-12…

python中content的用法_学python吗,教你5个python现学现用的有趣用法

在我们使用python的过程中也会遇到一些有意思的用法&#xff0c;这里找到了一些总结有趣的话不多说&#xff0c;接着看下去吧&#xff01;&#xff01;&#xff01;&#xff01;python高薪就业(视频、学习路线、免费获取)​shimo.imfor-else用法循环正常结束则执行else语句。一…

数据量大的sql怎么做优化_搜索引擎关键词优化怎么做

搜索引擎关键词优化怎么做新媒体营销的兴起&#xff0c;而且是方兴未艾&#xff0c;因此与客户建立起良好关系&#xff0c;保持良好的口碑关系&#xff0c;让客户信任你&#xff0c;公司适合增值服务&#xff1a;或者利润多&#xff0c;同时能在业务管理、销售管理、人事管理等…

vba显示正在加载_简单、易用的VBA过程积木代码

分享成果&#xff0c;随喜真能量&#xff08;这是我视频教程的开场白&#xff09;。大家好&#xff0c;今天继续和大家分享VBA编程中常用的简单“积木”过程代码第76-80讲&#xff0c;内容是&#xff1a;保存当前工作簿的副本到其它位置备份&#xff1b;不显示警告框&#xff1…