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

如何在AWS EC2上部署可调用Python后端的PHP脚本(Windows环境操作问询)

前置准备:创建符合要求的EC2实例
  • 登录AWS控制台进入EC2面板,选择启动实例
  • 操作系统推荐选择Ubuntu Server,对新手更友好,环境兼容性强
  • 实例类型选择符合免费 tier 要求的t2.micro即可满足测试需求
  • 密钥对创建后务必保存好.pem格式的私钥文件,Windows本地如果用PuTTY连接需要提前将.pem转换为.ppk格式
  • 安全组配置放开22端口(SSH远程连接)、80端口(HTTP访问),测试阶段来源可临时设为0.0.0.0/0,生产环境再收紧到指定IP
  • 存储默认30G足够普通测试使用,确认配置后启动实例即可
本地Windows连接EC2实例
  • 打开Windows Terminal或者PuTTY,用SSH命令连接,Ubuntu实例默认用户名是ubuntu,命令为:
    ssh -i "你本地保存的密钥文件路径.pem" ubuntu@你的EC2实例公网IP
  • 首次连接提示确认指纹时输入yes即可完成连接
安装运行环境(Web服务+PHP+Python)
  1. 先更新系统包索引
    sudo apt update && sudo apt upgrade -y
  2. 安装Apache2作为Web服务器
    sudo apt install apache2 -y
  3. 安装PHP及适配Apache的扩展
    sudo apt install php libapache2-mod-php php-cli -y
  4. 确认Python环境,Ubuntu默认已预装Python3,执行以下命令验证版本,无返回则手动安装
    验证命令:python3 --version
    手动安装命令:sudo apt install python3 python3-pip -y
  5. 测试基础环境是否正常:新建PHP信息文件
    执行命令:sudo nano /var/www/html/info.php
    文件内写入内容:<?php phpinfo(); ?>
    保存退出后,浏览器访问http://你的EC2公网IP/info.php,能正常显示PHP信息页即为配置成功
配置PHP调用Python的权限
  • 先修改PHP配置文件放开系统命令执行限制,PHP版本以8.1为例,路径对应调整即可
    执行命令:sudo nano /etc/php/8.1/apache2/php.ini
    找到disable_functions配置项,删掉列表里的exec、shell_exec、system你需要用到的执行函数,保存退出
  • 重启Apache让配置生效:sudo systemctl restart apache2
  • 给Web运行目录授权,Apache默认运行用户为www-data,执行命令:
    sudo chown -R www-data:www-data /var/www/html/
测试PHP调用Python功能
  1. 新建测试用Python脚本:sudo nano /var/www/html/test.py
    写入测试内容:
    print("Hello from Python!")
    
    保存退出后给脚本加执行权限:sudo chmod +x /var/www/html/test.py
  2. 新建调用Python的PHP脚本:sudo nano /var/www/html/run.php
    写入测试内容,注意所有路径用绝对路径,避免环境变量问题:
    <?php
    // 先执行`which python3`拿到你实例里的Python3绝对路径,Ubuntu默认是/usr/bin/python3
    $pythonPath = '/usr/bin/python3';
    $scriptPath = '/var/www/html/test.py';
    // 2>&1会把错误信息也合并到输出里,方便排查问题
    $output = shell_exec("$pythonPath $scriptPath 2>&1");
    echo "Python脚本执行结果:<br>";
    echo $output;
    ?>
    
  3. 浏览器访问http://你的EC2公网IP/run.php,正常输出Hello from Python!即为配置完成

补充说明

  • 安全提示:生产环境不要随意放开命令执行函数,严格校验所有用户输入避免命令注入漏洞,Web目录权限不要设置为777,遵循最小权限原则
  • 如果需要Python脚本在后端异步执行,不想让PHP等待返回,可以在命令末尾加后台运行标记:shell_exec("$pythonPath $scriptPath > /dev/null 2>&1 &")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 21:18:02