修改配置
键入命令visudo,打开sudoers文件,编辑该文件注释掉Defaults requiretty一行,
并在root ALL=(ALL) ALL
末尾追加apache ALL=(ALL) NOPASSWD: ALL
然后重启PHP即可
1 2
| root ALL=(ALL) ALL apache ALL=(ALL) NOPASSWD: ALL
|
加权限
如有php调用脚本(如:shell),须得给脚本授权,如:chmod 755 restart.sh
visudo
遇到visudo:/etc/sudoers 忙,请稍后重试
这种问题,直接把visudo进程kill掉就好了
1 2 3 4 5 6
| [root@37wan ~]# ps aux | grep visudo root 7405 0.0 0.0 103212 1032 pts/0 S+ 03:22 0:00 visudo root 8390 0.0 0.0 103340 860 pts/1 S+ 03:29 0:00 grep visudo [root@37wan ~]# kill 7405 [root@37wan ~]# ps aux | grep visudo root 8416 0.0 0.0 103340 856 pts/1 S+ 03:29 0:00 grep visudo
|
代码分享
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <h3 align="middle">光明世纪</h3> <br /> <br /> <div align="middle"> <p>服务器当前时间</p> <?php date_default_timezone_set("Asia/Shanghai"); echo date("Y-m-d H:i",time()); ?> <br /> <p>回调时间需重启服务器</p> <p>修改完时间F5刷新,看时间是否已修改</p> <br /> <br /> <br /> <form action="" method="post"> Date: <input type="date" name="date" value="<?php echo date("Y-m-d",time()); ?>" /> <br /> Time: <input type="time" name="time" value="<?php echo date("H:i",time()); ?>"/> <br /> <input type="submit" name="sub1" value="更改时间" /> <input type="submit" name="sub2" value="重启android测试服" /> </form> <?php if(isset($_POST['sub1'])) { $date=$_POST["date"]; $time=$_POST["time"]; exec("(sudo /bin/date -s $date >/dev/null &)"); exec("(sleep 1;sudo /bin/date -s $time >/dev/null &)"); echo "时间修改 。。。【OK】";
} if(isset($_POST['sub2'])) { $output=shell_exec("(sudo /data/scripts/restart1.sh >/dev/null &)");
echo "测试服已经重启,请稍后登陆".$output; } if(isset($_POST['sub3'])) { $output=shell_exec("(sudo /data/scripts/restart2.sh >/dev/null &)");
echo "测试服已经重启,请稍后登陆".$output; }
?> </div>
</body> </html>
|