执行 shell 命令 :
<?php //亲测 header("Content-type:text/html;charset=utf-8"); //header("Content-type:text/html;charset=utf-8"); //$message=shell_exec(("ipconfig"); //$message=system("ipconfig"); //$message=exec("ipconfig"); //$message=passthru("ipconfig"); echo "<pre>"; echo "运行结果:".$message."<br/>"; echo "<pre>"; ?>
<?php $message=shell_exec("sudo /usr/local/nginx/sbin/nginx -t 2>&1"); echo "运行结果:".$message."<br/>"; ?>
以上代码直接在PHP中执行SHELL语句。
如果有返回值,其中的 2>&1 是必须的 它负责重定向输出strerr 转到strout 输出。
否则返回结果会为空。
php下执行shell命令可以用system、exec之类的,但是每个单独的system命令都是分别调用shell的,每次的环境都要重新初始化。
因此,如果用php执行多条命令连续的操作,则不能通过多条system实现功能。
本文提供以下二种方法,供大家参考。
1,用php生成shell文件并执行它,完事后删除
<?php file_put_contents('tmp.sh',"cd /usr/local echo 'string' ls $callback"); system('tmp.sh'); ?>
多条命令,直接换行即可。
2,多条命令直接写在一条语句中,如下:
system("cd {$path1};if [ ! -d {$path2} ];then \n { mkdir -p {$path2} \n chmod -R 777 {$path2} \n } \n fi;find -name '{$etaskid}-{$sid}*' -print | while read na
执行 shell 脚本(亲测) :
<?php exec("make.sh"); ?>
make.sh 文件
shell脚本 #!/bin/bash #set -x mkdir aaaaaaaaaaaaa
http://www.jb51.net/article/1716.htm
http://www.jb51.net/article/54015.htm
http://www.jb51.net/article/29745.htm
http://www.jb51.net/article/57118.htm
http://blog.csdn.net/lxwxiao/article/details/8513355
http://www.cnblogs.com/microtiger/p/6251129.html
http://blog.csdn.net/hk_5788/article/details/48581783
https://wenku.baidu.com/view/9982af210740be1e650e9aa2.html
http://blog.csdn.net/rogershy/article/details/11662491