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

我的托pipe服务器上有一个C ++二进制文件(用Arvixe FYI托pipe)。 我在我的网站上有一个需要3个input的表单。 我把这3个input,并把它们放在一个文件使用PHP。 我想从PHP内部调用我的C ++应用程序。 应用程序需要2个参数,第一个是带有input的文件,第二个是需要输出的文件。

当我使用terminal运行时,该应用程序在我的Mac上正常工作,但是当我把它放在托pipe服务器上时,它没有运行。

这是我的脚本中的PHP代码:

$user = JFactory::getUser(); $time_date = date("mdY").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); 

有人可以摆脱一些光? input文件正在直接创build。 我对服务器上的应用程序具有执行权限。 我不知道如果可执行文件没有运行,或者由于权限问题或者其他原因没有生成输出。

  • 这是我的语法吗?
  • 我使用错误的function?
  • 我应该在PHP中使用什么命令发送到terminal并执行此操作?

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