からbashスクリプトを実行しています。 私のbashスクリプト:は、私はCMDからLinuxマシン上で(bashスクリプト)を実行すると、私は出力として<strong>オンライン</strong>を取得するが、私は他のマシンのブラウザからリモートで実行したとき、私は出力として<strong>オフライン</strong>を取得するPHP
#!/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のを実行しているラズベリーパイ2上のWebサーバーをホスティングしています。 私はプロキシサーバーを使ってインターネットに接続していますが、これはapt.confとexport http_proxyで正しく設定されているので、問題はありません。
は、コマンドラインから実行するPHPスクリプトの仕事をしていますか? – jedifans
はい、コマンドラインからphpを実行すると、出力としてオンラインになります。 @jedifans – Utsav
wgetの "-q"引数を削除し、 "-v"に置き換えます。 wgetの内容を参照してください。 SElinux、Apparmor、または同様のウォッチドッグがApache2サーバープロセスからwgetを実行できないことが非常にうかがいます。 – Technaton