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

时间:2011-12-19 00:32:03

标签: 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中使用什么来向终端发送命令并执行它?

1 个答案:

答案 0 :(得分:0)

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