You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Planet Hoster免费主机上用PHP exec()运行.exe文件失败求助

解决思路
  • 核心差异:服务器操作系统
    Planet Hoster免费主机默认是Linux环境,.exe是Windows专属可执行文件格式,Linux无法直接运行——这就是本地可正常执行、部署后失效的根本原因。

  • 针对性替代方案

    • 若持有MartinS.exe的源码,重新编译为Linux兼容的二进制可执行文件(使用对应语言的编译工具生成),然后将代码中的MartinS.exe替换为编译后的文件名。
    • 若无源码,可尝试用Wine在Linux上模拟Windows环境运行.exe,但需确认Planet Hoster是否允许安装Wine(免费主机通常权限限制严格,建议先联系客服核实)。
  • 基础权限与路径检查

    • 确保Linux可执行文件拥有执行权限:通过FTP或SSH执行chmod +x 文件名为文件添加执行权限。
    • 命令中使用文件绝对路径,比如/home/你的用户名/public_html/MartinS,避免PHP因环境变量问题找不到目标文件。
  • 修复命令注入漏洞
    直接拼接$_GET参数到命令的写法存在严重安全风险,必须用escapeshellarg()转义每个参数,示例代码:

    $columns = escapeshellarg($_GET['columns']);
    $rows = escapeshellarg($_GET['rows']);
    $pixelArt = escapeshellarg($pixelArt);
    $command = './MartinS ' . $columns . ' ' . $rows . ' ' . $pixelArt;
    $output = exec($command);
    
  • 排查执行错误细节
    改用带返回码的exec调用,获取执行反馈:

    exec($command, $outputLines, $returnCode);
    // $returnCode不为0表示执行失败,$outputLines可查看输出/错误信息
    

    也可使用shell_exec()捕获完整的命令输出,帮助定位具体问题。

内容的提问来源于stack exchange,提问作者Evilink

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 02:52:06