第一步、先切换到ROOT权限
linux系统下切换到root用户的方法是:
1、执行【sudo passwd root】命令;
2、设置root用户的密码;
3、执行【su root】命令,这样就可以自由地切换到root用户了。
第二步、给www-data权限赋予sudo权限
chmod u+w /etc/sudoers
vim /etc/sudoers
root ALL=(ALL:ALL) ALL
www-data ALL=(ALL) NOPASSWD:ALL
chmod u-w /etc/sudoers
第三步、编写php程序
注意exec中python需要写完整路径,执行的py程序也要完整路径
<form action="" method="post">
请输入a:<input type="number" name="a" value="请输入a"><br> 请输入b:
<input type="number" name="b" value="请输入b">
<button type="submit">计算</button>
</form>
<?php
$aa = $_POST["a"];
$bb = $_POST["b"];
//$set_charset = 'export LANG=en_US.UTF-8;';
$val = $set_charset."sudo /home/neuroweave/anaconda3/bin/python /var/www/test.py $aa $bb";
//$val = "sudo /home/neuroweave/anaconda3/bin/python -V 2>&1";
//$val = "whoami";
var_dump($val);
$cmd = shell_exec($val);
echo "a与b的和是: $cmd";
?>
第四步、编写python脚本
import sys
a, b = sys.argv[1], sys.argv[2] # 接收位置参数
print(int(a)+int(b))