php - 使用 PHP 在 Linux 服务器上运行 C++ 可执行文件

标签 php c++ linux

我的托管服务器上有一个 C++ 二进制文件(由 Arvixe FYI 托管)。我的网站上有一个需要 3 个输入的表格。我采用这 3 个输入并使用 PHP 将它们放入一个文件中。我试图从 PHP 中调用我的 C++ 应用程序。该应用程序采用 2 个参数,第一个是包含输入的文件,第二个是我希望输出到的文件。

当我使用终端运行时,该应用程序在我的 Mac 上运行良好,但当我将它放在托管服务器上时它没有运行。

这是我脚本中的 PHP 代码:

$user =  JFactory::getUser();
$time_date = date("m-d-Y").time();
$file1 = "model1_".$user->id."_".$time_date."_input.txt";
$file2 = "model1_".$user->id."_".$time_date."_output.txt";
$path1 = "/home/hhansen/public_html/ads/".$file1;
$path2 = "/home/hhansen/public_html/ads/".$file2;

$file_handle = fopen($path1,'w'); 

$content  =  trim($_POST['form']['Input 1'])."\r\n";
$content .= trim($_POST['form']['Input 2'])."\r\n";
$content .= trim($_POST['form']['Input 3'])."\r\n";

fwrite($file_handle,$content);
fclose($file_handle);

$output = exec("/home/hhansen/public_html/ads/./model1 $path1 $path2",$retval);

有人可以解释一下吗?正在直接创建输入文件。我确实对服务器内的应用程序具有执行权限。我不确定可执行文件是否根本没有运行,或者它是否只是因为权限问题或其他原因而没有生成输出。

  • 这是我的语法吗?
  • 我是否使用了错误的功能?
  • 我应该在 PHP 中使用什么来向终端发送命令并执行它?

最佳答案

大多数商业共享主机在安全模式下运行 PHP,这不允许 exec() 或至少将其限制在特殊目录中。检查一个简单的可执行文件。

关于php - 使用 PHP 在 Linux 服务器上运行 C++ 可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8556011/

相关文章:

php - Android - 将 JSONArray 发送到 php

php - 丢弃数组元素并对剩余元素求和

c++ - 用于广告牌的 D3DXSPRITE 的 3d 替代方案

linux - Ubuntu 16.04 apt-get - 无法解析 'proxy_server'

php - 拉维尔 5.3 : Migrate step by step

php - 与mysql数据库中的其他数据分开保存的链接

C++ stdio::rename();同步?

c++ - 如何让 wstring_convert::to_bytes 抛出 range_error 异常?

linux - 如何将交叉编译的cups安装到目标板?

python - 当 python 指向 python3 时,谷歌云 sdk 不工作