PHP调用不起来Python脚本

薄洪涛6年前Linux1080

前几天做了个自动处理文件的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

相关文章

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

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

Cannot establish FTP connection to an SFTP server.

Cannot establish FTP connection to an SFTP server.

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

mac免密登陆到阿里服务器

生成本地密钥ssh-keygen -t rsa   2. 拷贝 /Users/boht/.ssh/id_rsa.pub 内容到服务器的 /r...

实现SVN自动化部署

实现SVN自动化部署

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

linux免密登陆

linux免密登陆

最近有些累,所以今天的教程就水一篇;所谓免密登陆,就是说我有一台服务器,不想让人家知道具体的ip或者用户名密码,只让使用者从跳板机登陆,通过ssh xxx@ip  这种来登陆;1、 首先跳板...

搭建SSH反向隧道

搭建SSH反向隧道

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

发表评论    

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