php - 执行Linux命令没有报错但也没有输出
今天我需要在同事访问我的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中还是最好不要调用系统命令。。。
php - 执行Linux命令没有报错但也没有输出的更多相关文章
- CentOS 下 安装 nginx 执行配置命令 ./configure 报错
CentOS 下 安装 nginx 执行配置命令 ./configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx 时提示以下错误: checkin ...
- zabbix在执行docker命令是报错
系统环境 ubuntu 14.04 x64 安装了zabbix,去监控docker的状态,安装zabbix见我的另外一篇文章 错误如下 WARNING: Error loading config f ...
- Linux命令行报错 bash: cannot create temp file for here-document: No space left on device
今天Linux服务器出问题了,使用"tab"补全命令时,提示 bash: cannot create temp file for here-document: No space l ...
- 在邮箱服务器上执行Powershell命令Get-MessageTrackingLog 报错
开启对应的服务即可. 中文环境: 英文环境:
- PHP 代码内执行Linux命令
还是那个问题,就是那个php填写pdf表单,因为副武器的原因,改用命令执行了,哎,一个问题好多知识点啊,先来说说PHP执行linux命令,其实挺简单的,但是呢,后面说说我遇到的问题 1.PHP执行命令 ...
- Linux更改密码报错:密码未通过字典检查 - 过于简单化/系统化
Linux更改密码报错:密码未通过字典检查 - 过于简单化/系统化 方案一:直接忽略 很容易认为这儿是一个错误,其实可以直接忽略,重新输入密码 [root@localhost ~]# passwd 更 ...
- 再见Xshell、Xftp!Python执行Linux命令、上传下载远程文件
相信大家应该都接触过Linux操作系统(Ubuntu.Centos等),那么在使用的Linux操作系统需要使用一些远程ssh工具,尤其是公网服务器. 常用的ssh工具主要有:Xshell.MobaXt ...
- Linux QtCreator 编译报错:No rule to make target '.../***' needed by '***.o'.stop
Linux QtCreator 编译报错:No rule to make target 'mainwindow.cpp' needed by 'mainwindow.o'.stop [1]解决方案 ...
- 【jvm】linux 调用 jmap 报错Permission denied
linux 调用 jmap 报错Permission denied 解决方案: 分别对java安装目录,java的bin目录以及jmap命令设置权限 chmod jdk1..0_79 chmod b ...
随机推荐
- c# 中定时器的用法
来源于:http://blog.sina.com.cn/s/blog_62c501440100fog1.html System.Threading.Timer 是一个非常常用的定时器类,关于这个类的使 ...
- Create My MySQL configuration by Percona
本文地址:http://www.cnblogs.com/yhLinux/p/4013065.html https://tools.percona.com/ Percona是一款在线自动生成MySQL配 ...
- 模板短信接口调用java,pythoy版(一) 网易云信
说明 短信服务平台有很多,我只是个人需求,首次使用,算是测试用的,故选个网易(大公司). 稳定性:我只测试了15条短信... 不过前3条短信5分钟左右的延时,后面就比较快.... 我只是需要发短信,等 ...
- codeforces 425D
题意:给定n<=100000个二维点,并且0<=x,y<=100000,求有多少个平行于坐标轴的正方形 思路:本来想hash的,但是感觉不好弄.. 后来感觉像是分块,最坏的情况就是那 ...
- Google Chrome: Make the Bookmarks Bar Display as Icons Only
By reducing your bookmarks to show only the icons, you can access more of them from the Bookmarks ba ...
- CSS的四种引入方式
1.使用link标签引入css文件: <head> <link rel="stylesheet" type="text/css" href=& ...
- http://www.cnbeta.com/articles/306769.htm
事实上,很少有方法可以帮你做到.有些人可能会想到试着把Vim打造成C语言IDE的,比如c.vim:也有把Vim集成到Eclipse里的Eclim .但是我想要告诉你的是一个更加通用的,只用插件实现的方 ...
- C#设计模式(20)——策略者模式(Stragety Pattern)
一.引言 前面主题介绍的状态模式是对某个对象状态的抽象,而本文要介绍的策略模式也就是对策略进行抽象,策略的意思就是方法,所以也就是对方法的抽象,下面具体分享下我对策略模式的理解. 二.策略者模式介绍 ...
- Shell 判断
1 shell 的$! ,$?, $$,$@ $n $1 the first parameter,$2 the second... $# The number of co ...
- [WinAPI] API 13 [遍历指定目录 打印文件和其他属性]
Windows API中,有一组专门的函数和结构,用于遍历目录,它们是FindFirstFile函数.FindNextFile函数和WIN32_FIND_DATA结构.使用FindFirstFile和 ...