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

Windows Server下XAMPP环境中PHP调用Python脚本失败求助

在Windows Server的XAMPP环境中PHP执行Python脚本的排查与解决
  • 先搞定Apache权限问题
    Windows下Apache默认用系统账户运行,大概率没有访问Python解释器或脚本文件的权限。修改服务登录账户试试:

    1. 按Win+R输入services.msc打开服务管理器
    2. 找到Apache服务(一般命名为Apache2.4)
    3. 右键选择属性→登录选项卡,切换到“此账户”,填写本地管理员账号和密码,重启服务
  • 绝对路径要写对,处理路径空格
    不要用相对路径,直接写全路径;如果路径包含空格,必须用引号包裹。换用exec函数,能获取错误输出和返回码,方便排查问题:

    // 先确认py.exe的真实路径,可能是C:\PythonXX\py.exe或者C:\Windows\py.exe
    $cmd = escapeshellcmd('"C:/Windows/py.exe" "C:/xampp/htdocs/python.py"');
    exec($cmd, $output, $return_code);
    print_r($output);
    echo "返回码:".$return_code;
    
    • 返回码127:说明找不到Python解释器,检查路径是否正确
    • 返回码1:说明脚本本身执行出错,先去命令行直接运行脚本排查问题
  • 先确保Python脚本能单独跑通
    打开CMD,直接执行C:/Windows/py.exe C:/xampp/htdocs/python.py,看是否能输出预期结果。如果命令行都跑失败,先修复脚本的语法错误、补充缺失的依赖包。

  • 检查PHP的安全限制
    打开XAMPP目录下的php.ini文件,检查两项配置:

    • disable_functions中如果包含shell_exec、exec、system,删掉这些函数名
    • 旧版PHP里safe_mode要设置为Off(新版PHP已移除该配置)
      修改完成后记得重启Apache服务。
  • 统一编码避免无输出或乱码
    在Python脚本开头添加编码声明,确保输出编码与PHP一致:

    # -*- coding: utf-8 -*-
    import sys
    sys.stdout.encoding = 'utf-8'
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 17:42:11