sudo_exec returns 没有
sudo_exec returns nothing
我尝试用 shell_exec
ping www.google.de
并将结果存储到一个变量中,但我没有从 shell_exec
返回任何结果。
<?php
$ping = 'sudo ping -c 4 ';
$url = 'www.google.de';
$command = $ping . $url;
$ping_result = shell_exec($command);
$datei = fopen("/var/www/myProject/result_ping","w") or die ("Could not open file!");
sleep(10);
if ($datei == false)
{
$ping_result = "Cannot open file!";
}
else
{
fwrite ($datei , $ping_result);
fclose ($datei);
}
echo $command; //Output: sudo ping -c 4 www.google.de
echo $ping_result; //Output: nothing
?>
文件result_ping
拥有所有权限(chmod 777)。
也许网络服务器不允许执行 ping
?
将 2>&1
添加到您的命令中,以确保您不会收到 shell_exec 会被过滤掉的错误消息:
$command = $ping . $url . ' 2>&1';
如果出现错误,shell_exec
将 return NULL。通过该修改,您可以将任何错误消息重定向到正常输出,从而强制 shell_exec 显示您通常会在控制台会话中收到的每条消息。
我尝试用 shell_exec
ping www.google.de
并将结果存储到一个变量中,但我没有从 shell_exec
返回任何结果。
<?php
$ping = 'sudo ping -c 4 ';
$url = 'www.google.de';
$command = $ping . $url;
$ping_result = shell_exec($command);
$datei = fopen("/var/www/myProject/result_ping","w") or die ("Could not open file!");
sleep(10);
if ($datei == false)
{
$ping_result = "Cannot open file!";
}
else
{
fwrite ($datei , $ping_result);
fclose ($datei);
}
echo $command; //Output: sudo ping -c 4 www.google.de
echo $ping_result; //Output: nothing
?>
文件result_ping
拥有所有权限(chmod 777)。
也许网络服务器不允许执行 ping
?
将 2>&1
添加到您的命令中,以确保您不会收到 shell_exec 会被过滤掉的错误消息:
$command = $ping . $url . ' 2>&1';
如果出现错误,shell_exec
将 return NULL。通过该修改,您可以将任何错误消息重定向到正常输出,从而强制 shell_exec 显示您通常会在控制台会话中收到的每条消息。