xampp上的php exec函数在windows中工作,但在linux上不工作 几个月前,我在Windows上的VisualStudio中制作了这个C++代码。我从代码中生成了.exe文件,一切正常。现在我尝试在Linux上做同样的事情,这样我就可以把可执行文件放到LinuxWeb服务器上。如果从控制台调用,我的linux可执行文件可以工作。但我不能在浏览器上运行可执行文件。 这对我在xampp windows上的工作非常有用: <?php $imagename = $_GET['imagename']; exec('inpainting.exe' .$imagename); echo "<img src=\"./images/img-uploads/ob_img$imagename.jpg\" />"; ?>

xampp上的php exec函数在windows中工作,但在linux上不工作 几个月前,我在Windows上的VisualStudio中制作了这个C++代码。我从代码中生成了.exe文件,一切正常。现在我尝试在Linux上做同样的事情,这样我就可以把可执行文件放到LinuxWeb服务器上。如果从控制台调用,我的linux可执行文件可以工作。但我不能在浏览器上运行可执行文件。 这对我在xampp windows上的工作非常有用: <?php $imagename = $_GET['imagename']; exec('inpainting.exe' .$imagename); echo "<img src=\"./images/img-uploads/ob_img$imagename.jpg\" />"; ?>,php,linux,image-processing,xampp,exec,Php,Linux,Image Processing,Xampp,Exec,如何在xampp linux上运行它?我为linux创建了一个新的执行文件,该文件的名称正在修复\u linux您缺少空间: exec('inpainting.exe'.$imagename); ^-- here 这意味着给定一个查询字符串say kittens.jpg,您将执行: inpainting.exekittens.jpg ^^---note lack of space 它几乎绝对保证不会产生这样的文件或命令错误

如何在xampp linux上运行它?我为linux创建了一个新的执行文件,该文件的名称正在修复\u linux

您缺少空间:

exec('inpainting.exe'.$imagename);  
                    ^-- here
这意味着给定一个查询字符串say kittens.jpg,您将执行:

inpainting.exekittens.jpg
             ^^---note lack of space
它几乎绝对保证不会产生这样的文件或命令错误


请注意我上面的评论。你绝对是在乞求用这段代码摧毁你的服务器,或者至少远程销毁pwn3d。不要在可公开访问的服务器上运行此代码。或者更好的办法是,将代码取出并烧掉。

使用exec是个坏主意。您确定权限+所有者是正确的吗?为什么inpainting.exe会在linux上运行?:-享受当有人完全破坏你的服务器时的感觉http://example.com&imagename= ; rm-rf/。您确实需要停止使用此代码,首先学习安全编码实践。@David SkyMesh:不仅如此,inpainting.exeSomeImageName.jpg还需要存在并在Linux上运行……嗯,inpainting.exe即使没有丢失的空间也不太可能在Linux服务器上工作。假设OP正在正确构建Linux可执行文件,linux二进制文件没有理由不能被称为something.exe。unix/linux不关心文件的扩展名是什么,只要文件设置了适当的执行位。@Marc B.-不要讨厌它。是的,我是初学者!怎么了?多留一点空间不是解决办法。我几天前就试过了。