我的机器上安装了apache 2.4.12和php 5.5.21。我正在尝试使用php exec()来执行java jar文件。当我将php程序放在apache htdocs之外的文件夹中时,它会打开并执行jar文件而不会出现问题。当我从apache(在htdocs)文件夹中运行相同的程序时,没有执行任何操作,并且Web浏览器只是处于加载阶段(浏览器挂断,最终只会超时)。我想我已经看到了每一个例子,无法确定问题所在。这肯定是一个权限问题;我只需要指出正确的方向。
Echo shell_exec(" whoami");给了我" ntauthority / system。当我去服务并将apache登录更改为管理员时,没有任何反应。我在尝试执行时已经读取并执行了jar文件的权限。
答案 0 :(得分:0)
如果这是共享主机,您可能需要与您的托管服务提供商联系。
如果您有权访问Apache中的httpd.conf
,请编辑文件CTRL + F,并确保将safe_mode
值设置为Off
。如果您在文件中的任何位置都没有看到safe_mode
设置,请添加以下行:
php_admin_flag safe_mode Off
确保“O”大写! (Source)
如果不是问题,请确保disabled_functions
文件中的php.ini
不包含exec
。
如果 不是问题,请尝试查看您的php.ini
是否包含safe_mode
变量。如果没有,请添加以下行:
safe_mode = Off
同样,如果文件包含safe_mode
变量,请将其设置为Off
!
答案 1 :(得分:0)
我通过命令提示符将apache作为服务安装,并且jar文件没有启动。当我卸载apache作为服务,并手动运行" httpd.exe"。 jar文件出现并执行。我只能在那台机器上执行它们,我仍然有问题试图在客户端机器上执行它们。我已经走了使用java webstart的路线,它似乎更容易部署和使用。谢谢