gpt4 book ai didi

php - 从 PHP 调用 Mono

转载 作者:可可西里 更新时间:2023-10-31 23:34:11 25 4
gpt4 key购买 nike

有点复杂。 :-) 我有一个用 PHP 编写的网站,需要调用一个用 .NET 编写的、在 Mono 下运行的外部程序。它调用程序:

/path/mono /path/executable arguments...

像往常一样(我也尝试将其放入 bash 脚本并从 PHP 调用脚本本身)。

据我所知,一切都已按要求设置。 Mono 本身运行一切正常,可执行(或脚本)具有可执行权限,所有者一切正常。如果我从服务器 (Debian Lenny) 上的命令行发出上面的命令行(或调用提到的脚本),也可以确定正确的设置,一切正常,我的可执行文件执行无误。

但是,如果 PHP 调用相同的方法(使用 exec()、system() 或任何其他变体),我立即从 Mono 获得退出代码 6 并且我的可执行文件根本没有运行(为了测试它,我使用一个“Hello World”可执行文件,它只发出一条输出行并返回 0)。编译时没有任何额外的依赖,只是一个真正的“Hello Word”。可以肯定的是,这个程序不会返回退出代码 6,它一定来自 Mono,但我在任何地方都找不到它的文档。

我可以从 PHP 调用任何其他东西,所以它不是安全模式或任何类似的限制,可以阻止我从 PHP 执行外部程序。

感谢任何想法...

最佳答案

尝试从命令行执行单声道,但用户运行网络服务器(www-data 或 apache)。

ej.

#su apache
$/path/to/mono /path/to/program.exe

我在使用 exec 时遇到的常见问题是不同的环境变量(看看 apache 使用的是 bash 还是 sh)、apache 用户/组的权限等。

关于php - 从 PHP 调用 Mono,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7192793/

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