我需要编写一个执行java程序的php脚本。 .jar文件调用另一个.jar文件并在命令行上执行一些命令。
我在Ubuntu 14.04上使用XAMPP。所有必需的文件都在htdocs中。这个命令没有缺陷:
myusername@null:/opt/lampp/htdocs# java -jar program.jar arg1 arg2 arg3
首先我尝试用php执行上面的命令:
echo shell_exec(java -jar program.jar arg1 arg2 arg3)
不幸的是我遇到了一些错误,因为无法创建文件夹,并且program.jar无法执行后台命令。 htdocs文件夹具有drwxrwxrwx权限。 由于php由用户 deamon 执行,我建议它根本没有所有必要的权限。
在更改整个系统之前,我想从用户 myusername 执行命令。
echo shell_exec(sudo -u myusername java -jar program.jar arg1 arg2 arg3)
这种轻微修改只返回无输出。
奇怪的是,这个命令也不起作用(以root身份执行):
root@null:/opt/lampp/htdocs# sudo -u myusername java -jar program.jar arg1 arg2 arg3
问题: