我想从html页面启动bash脚本。 该脚本应该修改文件并重新加载星号服务。 我正在使用PHP这样做。
我的php脚本:
<?php
$field1 = $_GET["P1"];
$field2 = $_GET["P2"];
$field3 = $_GET["P3"];
echo "$field1 $field2 $field3 ";
$output = shell_exec("/var/www/html/script.sh $field1 $field2 $field3");
echo "<pre>$output</pre>";
?>
我的bash脚本:
#!/bin/bash
num1=$1
num2=$2
num3=$3
for i in 1 2 3
do
temp="num$i"
if [ -z ${!temp} ]
then
:
else
echo "${!temp}" >> /etc/asterisk/file.conf
fi
done
sudo service asterisk reload
我尝试将apache添加到/ etc / sudoers,它不起作用,甚至没有ALL ALL = NOPASSWD:ALL规则。
我遇到了这个问题,无法让它正常工作。 脚本本身运行正常,只有重装部分无效。
有人可以告诉我该怎么做? (我用httpd运行CentOS 6.6)
答案 0 :(得分:0)
:www-data ALL = NOPASSWD:/var/www/html/script.sh
尝试:
exec ("/var/www/html/script.sh" .$field1 . $field2 . $field3, $output );
答案 1 :(得分:0)
要求在sudoers文件中设置tty,避免命令由apache执行。