今天我需要在同事访问我的PHP页面的时候执行一段python脚本,于是我的代码是这样写的:

1 <?php

2 function my_workjob(){

3 $this->makeLog('ok run workjob');

4 if($this->is_internal()){

5 $cmd = '/usr/bin/python /data/script/abc/run.py';

6 $out = system($cmd);

7 echo 'run';

8 echo $out;

9 }else{

10 echo 'hehe';

11 }

12 }

但是实际运行效果除了run 什么都没有。我猜想是用户没有权限,于是相关的目录+x,但是还是不行。接着尝试命令如下:

su -c "/usr/bin/python /data/script/abc/run.py" www

命令行中也无任何输出。因此我怀疑是php解析器所在的用户的问题,接着执行如下命令:

cat /etc/passwd

得到如下效果:

www:x:30:8:WWW daemon apache:/var/lib/www:/bin/false

大家可以看到最后是/bin/false,也就是说www用户是没有shell的,因此也就执行不了命令,那么接下来就是给它shell环境,执行如下命令:

usermod -s /bin/bash www

这样之后一切正常了。最后说一句php中还是最好不要调用系统命令。。。

linux php没有bin,php - 执行Linux命令没有报错但也没有输出相关推荐

  1. 解决:Dockerfile 中执行 tar 命令始终报错:tar: /xx/xx: Cannot stat: No such file or directory tar: Exiting with

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. docker 执行 build , dockerfile 中有一行命令: RUN tar -z ...

  2. 执行docker命令,报错Segmentation fault

    执行任何docker命令,都会报错Segmentation fault.之前使用docker的时候并没有出现过类似的错误.在经过排查后,发现可用内存仅为110M,猜测是内存不够用了,所以执行了清理内存 ...

  3. Linux操作Oracle(13)——java执行sql查询语句 报错 “无法绑定由多个部分组成的标识符“ 解决方案

    目录 问题描述: 问题分析 1.sql语句写的有问题 2.java项目 没有及时清理 问题解决

  4. Linux执行tar解压报错tar: Error is not recoverable: exiting now

    Linux操作系统下,下载完成xx.tar.gz文件然后执行tar -zxvf xx.tar.gz,执行出现如下错误: 3.4.10/src/java/test/org/apache/zookeepe ...

  5. linux执行.sh文件时,报错:XXX.sh: Permission denied(没有权限)

    linux执行.sh文件时,报错:XXX.sh: Permission denied(没有权限) 解决方法:修改对该文件的权限 例如报错: bash: ./zkServer.sh: Permissio ...

  6. Linux环境搭建 - update https://apt.repos.intel.com 报错

    Linux环境搭建 - update https://apt.repos.intel.com 报错 问题说明 解决方案 问题说明 执行 sudo apt-get update 之后, 出现 https ...

  7. linux系统读取excel文件是否存在,小弟我用poi读excel,在window下没有有关问题,但把程序放到linux上时,读取客户端的excel文件报错,不...

    我用poi读excel,在window下没有问题,但把程序放到linux上时,读取客户端的excel文件报错,不知道如何解决 我用poi读excel,在window下没有问题,但把程序放到linux上 ...

  8. Superset执行「superset db upgrade」命令的报错记录

    Superset执行「superset db upgrade」命令的报错记录 文章目录 Superset执行「superset db upgrade」命令的报错记录 零.写在前面 一.「superse ...

  9. centos使用yum命令安装报错 File /usr/bin/yum, line 30 except KeyboardInterrupt, e:

    原因 centos7使用yum命令安装报错如下: File "/usr/bin/yum", line 30except KeyboardInterrupt, e:^ SyntaxE ...

最新文章

  1. python操作excel-Python对Excel(*.xls)的操作
  2. 暑期周总结四(2018.7.30-2018.8.5)
  3. window mysql proxy_window下mysql-proxy简单使用
  4. Linux安装包deb和rpm格式,deb格式和rpm格式是什么?_网站服务器运行维护
  5. geoserver加载mysql_GeoServer+MySQL的配置过程
  6. GNU make manual 翻译(四十三)
  7. JVM自动内存管理机制——Java内存区域(下)
  8. 关于jsp页面转换成excel格式下载遇到问题及解决
  9. 使用图形窗口连接(navicat)
  10. 二分答案——进击的奶牛(洛谷 P1824)
  11. Excel 数据批量生成SQL语句
  12. 程序中,序列化与反序列化
  13. Python:Lasso方法、GM预测模型、神经网络预测模型之财政收入影响因素分析及预测...
  14. Java学习笔记(完结)
  15. sqlserver行列转换,动态行转换
  16. VUE实现市、区二级联动
  17. Linux命令c++filt
  18. Python和MD5网站挂马检测程序
  19. logo设计-中文设计
  20. Android Jetpack架构篇:Room

热门文章

  1. liunx centos 如何添加一个新的网卡
  2. 送你几款数据可视化大屏项目,科技感爆棚!!
  3. 别乱用,这样打日志定位 Bug 又快又准!
  4. 设计模式是什么鬼(单例)
  5. 交互式地图_张晟推出学校资源交互式地图工具
  6. Psych112R Cognitive Robotics Midterm Laboratory
  7. 关于jquery跨域请求方法
  8. 用border做三角形
  9. Esfog_UnityShader教程_UnityShader语法实例浅析
  10. 【转】Web实现音频、视频通信