php - 通过php和bash执行服务命令

标签 php bash apache service centos

我想从 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/

相关文章:

php - 如何使用 Laravel Passport 在查询字符串而不是 header 中访问 token 来验证请求?

PHP - 在字符串中间添加字符(从末尾开始)

python - 从 bash 脚本向 python 解释器传递参数

BASH shell 用变量中的空格扩展参数

apache - 错误处理和搜索引擎

php - 如何使用 apache dns 服务器而不是 LAN 网络中的 IP 地址访问 xampp 下域名的本地网站?

php - 在如何处理数组操作以创建表方面需要帮助?

php - 从数据库检索特定数据/值 1 行 PHP

bash - Shell 脚本读取缺少最后一行

php - apache 中的 Drupal 项目设置没有响应且没有错误