gpt4 book ai didi

java - 无法在 php osx 中执行 ("java -version")

转载 作者:行者123 更新时间:2023-12-02 04:31:03 25 4
gpt4 key购买 nike

osx yosomite 中的 PHP 无法成功执行以下代码。

<?php   
exec("java -version 2>&1", $output, $returnValue);
print_r($returnValue);
print_r($output);
?>

我得到的输出是

1Array ( [0] => No Java runtime present, requesting install. [1] => 2015-07-16 21:25:05.588 java[1434:49304] JLRequestRuntimeInstall: Error calling: CFMessagePortCreateRemote )

我可以从命令行成功运行它。我尝试更改 apache 用户,但没有帮助。

最佳答案

在 PHP 中,您无法访问 Java 等可执行文件的正常搜索路径;这就是为什么您可以在终端中运行它,但不能在 PHP 代码中运行。不将 shell $PATH 变量中的搜索路径导入到服务器端语言(例如 PHP)是一项安全功能。

尽管您可以将 PATH 变量导出到 exec 子 shell 中,但您可能不应该这样做。首选 java 可执行文件的完整路径。请记住,PHP 可用的环境变量(例如 PATH)将是 PHP 运行时的用户的环境变量——出于安全原因通常是受限制的用户。

如果您有兴趣使用环境变量方法,我建议您使用受限环境。根据您的特定设置,以下有关 SO(针对 Apache/PHP)的问题可能会给您一个起点: https://stackoverflow.com/questions/13568191/how-to-get-system-environment-variables-into-php-while-running-cli-apache2hand

关于java - 无法在 php osx 中执行 ("java -version"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31459107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com