【发布时间】:2016-08-31 06:10:51
【问题描述】:
当我使用以下代码加载页面时,我想重新启动 apache2:
exec('/etc/init.d/apache2 reload', $output, $return);
if(!$return) {
$result = "<script>console.log('can not restart apache2');</script>";
echo $result;
echo $output;
} else {
$result = "<script>console.log('restart apache2 successfuly');</script>";
echo $result;
}
在文件etc/sudoers 中添加以下行:
Cmnd_Alias RESTART_APACHE = /etc/service apache2 restart
www-data ALL=NOPASSWD: RESTART_APACHE
但结果返回can not restart apache2。
我做错了吗?
【问题讨论】:
-
试过
<?php echo shell_exec('service httpd restart &'); ?>? -
您的 sudoers 说允许重新启动,但您正在重新加载 exec()。就安全性而言,这是一个非常糟糕的主意,您为什么要这样做?为什么不坚持使用 SSH 访问,或者进程监视器之类的?