有时web服务器脚本需要调用linux shell命令,可能还需要linux执行php脚本(http无状态)
1.php执行linux命令
<?php
$out=shell_exec('ls');
echo "<p>$out</p>"
?>
当然也可以将命令换成执行脚本./test.sh
应该注意的是,Ubuntu 默认脚本的是用自带dash执行,而非bash,执行能力较弱
<?php
$out=shell_exec('source /etc/profile');
echo "<p>$out</p>"
?>
输出
source: not found
解决办法
$out=shell_exec('#!/bin/bash;source /etc/profile');
也是不能正常执行 source等价于 . 注意”.“后面的空格
$out=shell_exec('#!/bin/bash;. /etc/profile');
能够正常执行
2.linux调用php脚本
首先确保机器安装了php,查看php版本
php -v
linux运行php
php 1.php