当我从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,所以这不会是问题。
答案 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