PHP调用不起来Python脚本

薄洪涛6年前Linux1257

前几天做了个自动处理文件的python脚本,目前python脚本需要手动把文件放到特定文件夹下,自动去读取处理;但是老大觉得不方便,让我写了个文件上传页面,然后调用python的脚本,导出处理后的文件;

于是我就开始了,上传功能用php实现的,开始想的是,用php的exec直接调用问题应该不大;

很快,上传页面分分钟就写好了,服务器上python环境也配置好了,问题出现了,我用php传递参数(上传文件的在服务器上的保存路径)调用python脚本,发现没反应!!

然后我想了多种情况,python没权限?php-fpm的执行用户没权限?服务器没配置python变量?然后手动执行了下命令  “python xx.py  路径” 发现可以执行;

奇了怪了,折磨了3天(其实就是每天来到后花一个小时调,调不出来就处理其他的事情),第四天请教了老大,老大让我写个shell,用php调用shell

#!/bin/bash

/usr/local/bin/python3/bin/python3 /xxx/xxx/combine.py /xxxx/xxxx4e6c56ecde44ada121adb80cbe58134b.csv /home/xxx/xxx146c04fef96cf9d0186bd49a8c6eb335.csv > /tmp/p.log

结果发现能产生p.log文件,但是没有内容

#!/bin/bash

/usr/local/bin/python3/bin/python3 /xxx/xxx/combine.py /xxxx/xxxx4e6c56ecde44ada121adb80cbe58134b.csv /home/xxx/xxx146c04fef96cf9d0186bd49a8c6eb335.csv > /tmp/p.log 2>&1

于是老大又让加了个2>&1,哇,p.log出现错误信息了;

到此终于调通了,其实就是我的python脚本中有一些print输出了中文,然后php的exec中要求是ascci编码,不支持中文,所以就出现编码错误了;

总结下,其实如果能早点调试出错误信息的话不会耽误那么久的,还是自己对linux了解的太少;太菜了!!

标签: linux

相关文章

搭建SSH反向隧道

搭建SSH反向隧道

公司的数据库是通过端口转发来连接的,即需要ssh登录跳板机,然后通过隧道-端口转发,将数据库映射到跳板机(或者电脑本地)的某个端口,程序连接本地的端口就可以实现连接远程对的数据库;这种连接方式相比VP...

阿里云服务器更改默认ssh端口

我们通常服务器默认的ssh端口是22,但是使用默认端口是不安全的,所以我们需要更改ssh端口1.修改ssh配置文件vi /etc/ssh/sshd_config找到 #Port 22 ,然后...

实现SVN自动化部署

实现SVN自动化部署

当我们修改程序并通过SVN上传到服务器后,我们想立马刷新页面看到更改之后的效果,这时候就要用到SVN自动化部署了,所谓的自动化部署,就是当SVN提交后自动更新文件到项目目录现在我们从头来部署一遍,看到...

Cannot establish FTP connection to an SFTP server.

Cannot establish FTP connection to an SFTP server.

今天想上传个JDK,惊奇的发现,FileZilla连接不上,出现如下错误;很明显,我用FTP协议与一台使用了SFTP的服务器建立连接肯定是不行的,所以要改变协议;解决方法如下:打开File-Site...

php脚本以守护进程的方式运行

写了一个聊天室,需要手动执行php start.php start命令去启动workerman的握手程序,但是退出xshell后,进程会被杀掉,因为之前用过node的forever,感觉php应该也有...

centos放开防火墙443端口

查看是否开启443 firewall-cmd --zone=public --query-port=443/tcp开启firewall-cmd --zone=p...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。