我想从 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)
最佳答案
在/etc/sudoers: www-data ALL=NOPASSWD:/var/www/html/script.sh
尝试:
exec ("/var/www/html/script.sh" .$field1 . $field2 . $field3, $output );
http://php.net/manual/en/function.exec.php
关于php - 通过php和bash执行服务命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49096079/