apache设置阻止php exec()执行

时间:2015-02-10 05:21:39

标签: php apache executable-jar

我的机器上安装了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文件的权限。

2 个答案:

答案 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的路线,它似乎更容易部署和使用。谢谢