使用PHP在Linux服务器上运行c++可执行文件
Run C++ Executable on Linux Server Using PHP
我在我的托管服务器上有一个c++二进制文件(与Arvixe托管,供参考)。我在我的网站上有一个表单,需要3个输入。我用PHP把这3个输入放到一个文件中。我试图从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'])."rn";
$content .= trim($_POST['form']['Input 2'])."rn";
$content .= trim($_POST['form']['Input 3'])."rn";
fwrite($file_handle,$content);
fclose($file_handle);
$output = exec("/home/hhansen/public_html/ads/./model1 $path1 $path2",$retval);
有谁能给点光照吗?正在直接创建输入文件。我对服务器内的应用程序有执行权限。我不确定是否可执行文件根本没有运行,或者由于权限问题或其他原因,它只是没有产生输出。
- 是我的语法吗?
- 我是否使用了错误的功能? 我应该在PHP中使用什么来发送命令到终端并执行这个?
大多数商业共享主机以安全模式运行PHP,这种模式不允许exec(),或者至少将其限制在特殊目录下。用一个简单的可执行文件检查。
相关文章:
- 运行同一解决方案的另一个项目的项目
- CMake-按正确顺序将项目与C运行时对象文件链接
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- 代码在main()中运行,但在函数中出现错误
- 我在c++代码中生成了一个运行时#3异常
- 如何在linux终端中同时编译和运行c++代码
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- 如何在运行中期切换GTK CSS style_context
- 如何在MS Visual Studio 2019中运行QT UI
- 如何通过cpp程序运行shell脚本
- IPC使用多个管道和分支进程来运行Python程序
- 删除指向指针的指针是运行时错误吗
- 如何用参数值调用函数(仅在运行时已知)
- 为什么即使使用-cudart-static进行编译,库用户仍然需要链接到cuda运行时
- 是否可以在编译时初始化数组,以便在运行时不会花费时间?
- c++中的指针和运行时错误
- 在C应用程序中运行C++(带有STL)函数
- 运行程序时出现问题
- 控制允许动态运行c++的并发操作数
- 无法获取菜单选择以运行函数.C++