我想重新启动mysql服务,点击按钮使用php。
到目前为止,我已经使用php开发了应用程序,我尝试了下面的内容并面对这个问题。
<?php
if ($_GET['run']) {
# This code will run if ?run=true is set.
var_dump(exec("sh rst.sh"));
exit;
}
?>
<!-- This link will add ?run=true to your URL, myfilename.php?run=true -->
<a href="?run=true">Click Me!</a>我得到的是:
string(55) "Restarting mysql (via systemctl): mysql.service failed!" rest.sh:
#!/bin/bash
/etc/init.d/mysql restart在从逗号行执行上述文件时,它要求输入密码。
任何帮助都将不胜感激。
谢谢
发布于 2018-04-20 12:44:57
从安全的角度来看,授予运行PHP/web服务器的用户重新启动任何服务的权限通常是一种床边想法,甚至不考虑管理所有系统守护进程或完全sudo的权限。
一旦收到警告,就必须确保运行PHP脚本的用户拥有运行重新启动命令的权限。如前所述,这个问题可能与PHP没有什么关系。从你到这里有几种方法:
sudo systemctl restart mysql调用命令。rst.sh文件,使其为root所有,只有root才能写,并在该文件上设置SUID位。通过这种方式,您可以不用sudo调用脚本,但是由于SUID位,脚本将作为root运行。第一感觉更安全更简单。
https://stackoverflow.com/questions/49941561
复制相似问题