在linux上调用php exec函数
Posted
技术标签:
【中文标题】在linux上调用php exec函数【英文标题】:Call php exec function on linux 【发布时间】:2012-12-14 08:01:52 【问题描述】:几个月前,我在 Windows 上制作了小型 c++ 控制台应用程序。我需要在浏览器上运行 exe 文件。我使用 exec php 函数,一切正常。现在我尝试在 Linux 上做同样的事情,以便我可以将可执行文件放在 Linux Web 服务器上。当从控制台调用时,我的 linux 可执行文件(修复)工作。但我无法通过 exec 函数运行可执行文件。
xampp windows: - 这行得通,我得到了我的结果。
<?php
$imagename = $_GET['imagename'];
exec('inpainting.exe' .$imagename);
echo "<img src=\"./images/img-uploads/ob_img$imagename.jpg\" />";
?>
但是如何在 xampp linux 上运行它呢?我试试这个,结果是空白屏幕。
<?php
$imagename = $_GET['imagename'];
exec('inpainting' .$imagename);
echo "<img src=\"./images/img-uploads/ob_img$imagename.jpg\"/>";
?>
我尝试了更多的东西,但没有任何反应。有人说 exec 是坏事,如果有人有其他更好的解决方案 - 请与我分享。有任何想法吗?天呐
我允许对工作文件夹的所有权限。我在 Ubuntu 12.4 上运行 xampp 1.7.3a
【问题讨论】:
您是否尝试过在 exec 中使用可执行文件的完整路径? 你需要在程序和文件名之间留一个空格,@Michael 说的可能也有帮助。 Linux 无法运行 Windows 的可执行文件。此外,那里还有一个巨大的安全漏洞。 它可能是该软件的 linux 版本... @RyanNaddy “几个月前,我在 Windows 上制作了小型 c++ 控制台应用程序。”听起来他可能已经上传了二进制文件.... 【参考方案1】:这可能会有所帮助,我添加了第二个参数然后进行了转储,它应该显示已运行命令的所有输出。
<?php
$imagename = $_GET['imagename'];
exec('inpainting ' .$imagename, $opt);
var_dump($opt);
echo "<img src=\"./images/img-uploads/ob_img$imagename.jpg\"/>";
【讨论】:
我尝试过,但我得到的不是图像:array(0)
@Rile 我看到你已经接受了这个作为答案。我面临着类似的问题。您能解释一下您是如何解决问题的吗?
我没有解决我的问题 :( 抱歉以上是关于在linux上调用php exec函数的主要内容,如果未能解决你的问题,请参考以下文章
php-fpm linux环境使用exec函数调用ffmpeg,报错ffmpeg: command not found的解决方法