从php运行bash脚本

时间:2016-08-20 21:05:03

标签: php linux bash

当我从cmd在linux机器上运行它(bash脚本)时,我得到在线作为输出但是当我从其他机器的浏览器远程运行它时,我得到离线< / strong>作为输出。 我的bash脚本:

#!/bin/bash
wget -q --tries=10 --timeout=10 --spider http://google.com
if [[ $? -eq 0 ]]; then
    echo "online"
else
    echo "offline"
fi

我的PHP脚本是:

<!DOCTYPE html>
<html><head><title>
This is the title
</title></head>
<body>
<?php
$output=shell_exec('/home/pi/checkonline.sh');
echo $output;
?>
</body></html>

注意:我在运行raspbian OS,php5,apache2的raspberry pi 2上托管Web服务器。 我使用 proxyserver 连接到互联网,我已经在apt.conf中成功配置了它,并导出了http_proxy,所以这不会是问题。

2 个答案:

答案 0 :(得分:0)

尝试使用wget的完整路径

WGET=/usr/bin/wget

WGET='which wget'&lt; - 使用反引号

答案 1 :(得分:0)

尝试将您的脚本放在与php脚本相同的文件夹中,并添加执行权限。至于我在网上工作和打印。 sudo chmod +x checkonline.sh

<!DOCTYPE html>
<html><head><title>
This is the title
</title></head>
<body>
<h1>output</h1>
<?php
$output=shell_exec('./checkonline.sh');
echo $output;
?>
</body></html>

#!/bin/bash
wget -q --tries=10 --timeout=10 --spider http://www.google.com
if [[ $? -eq 0 ]]; then
    echo "online"
else
    echo "offline"
fi