使用iframe嵌入(推荐简单方法)

  1. ​首先确保你的Gradio应用正在运行​​:
    • 在你的服务器上运行这个Python程序(确保端口7860是开放的)
    • 你可以使用nohuptmux让它在后台持续运行
  2. ​在WordPress中添加iframe代码​​:
    • 编辑你的”Chatbot”页面
    • 切换到HTML/代码编辑器
    • 添加以下代码:
<iframe 
  src="http://你的服务器IP:7860" 
  width="100%" 
  height="600px"
  style="border: none;"
></iframe>

要将你的Gradio聊天机器人集成到WordPress网站的”Chatbot”标签页中,你需要按照以下步骤操作:

方案一:使用iframe嵌入(推荐简单方法)

  1. ​首先确保你的Gradio应用正在运行​​:
    • 在你的服务器上运行这个Python程序(确保端口7860是开放的)
    • 你可以使用nohuptmux让它在后台持续运行
  2. ​在WordPress中添加iframe代码​​:
    • 编辑你的”Chatbot”页面
    • 切换到HTML/代码编辑器
    • 添加以下代码:
<iframe 
  src="http://你的服务器IP:7860" 
  width="100%" 
  height="600px"
  style="border: none;"
></iframe>

方案二:更高级的集成(需要更多配置)

如果你需要更紧密的集成,可以考虑:

  1. ​使用WordPress插件​​:
    • 安装”Embed Code”或”Custom HTML”插件
    • 将你的Gradio应用URL嵌入其中
  2. ​配置Nginx反向代理​​(更专业的方法):
    • 修改你的Nginx配置,将某个路径(如/chatbot)代理到localhost:7860
    • 这样你可以使用https://你的网站.com/chatbot访问

​​配置Nginx反向代理​​ 怎么实现?

​1. 确保Gradio应用正在运行

你的Gradio应用应该已经在后台运行(监听0.0.0.0:7860):

python your_app.py  # 或使用 nohup/python -m gunicorn 等保持长期运行

验证是否可访问:

curl http://localhost:7860

​2. 修改Nginx配置​

搬瓦工服务器通常预装Nginx。假设你的WordPress已通过Nginx运行(如使用LNMP环境):

​步骤​​:

  1. 找到WordPress的Nginx配置文件,通常在:/etc/nginx/sites-enabled/your_wordpress_site.conf或主配置文件:/etc/nginx/nginx.conf
  2. 编辑配置文件,在server { ... }块内添加反向代理规则:
server {
    listen 80;
    server_name yourdomain.com;  # 你的域名

    # WordPress原有配置(通常已存在)
    root /var/www/html/wordpress;
    index index.php;
    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    # 新增Gradio反向代理配置
    location /chatbot {
        proxy_pass http://127.0.0.1:7860;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        
        # 以下为WebSocket支持(如果Gradio需要)
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    # 其他原有配置(如PHP处理)
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
    }
}

​3. 测试并重载Nginx​

  1. 测试配置是否正确:sudo nginx -t如果显示successful,继续下一步。
  2. 重载Nginx使配置生效:sudo systemctl reload nginx

​4. 验证反向代理​

访问 http://yourdomain.com/chatbot,应该能看到Gradio界面。
或者可以换一种方式

路径重写(去除/chatbot前缀)​

如果希望Gradio直接响应根路径(而非/chatbot),修改location和Gradio的root_path

location / {
    proxy_pass http://127.0.0.1:7860;
    # 其他proxy_set_header...
}

同时在Gradio启动时指定路径:

demo.launch(server_name="0.0.0.0", server_port=7860, root_path="/chatbot")

长期运行各方案对比​

方法需要安装断线恢复日志管理开机自启适合场景
nohup需手动临时测试
tmux实时需要交互的长期运行
systemd完善生产环境服务
screen实时简单会话管理
pm2完善Node/Python混合环境

方法 1:使用 nohup(最简单)​

nohup python3 /opt/gradio_app/app.py > /var/log/app.log 2>&1 &
  • ​效果​​:程序会在后台运行,输出重定向到日志文件
  • ​管理命令​​:# 查看进程 ps aux | grep app.py # 终止进程 kill -9 $(pgrep -f app.py)

​方法 2:使用 tmux(推荐)​

# 安装tmux(如未安装)
sudo apt install tmux -y

# 创建新会话
tmux new -s gradio_app

# 在tmux会话中运行程序
python3 /opt/gradio_app/app.py

# 按 Ctrl+B 然后按 D 退出会话(程序继续运行)

# 重新连接会话
tmux attach -t gradio_app
  • ​优势​​:可随时查看/交互程序输出

​方法 3:系统服务(最稳定)​

​方法 4:使用 screen

# 安装screen
sudo apt install screen -y

# 创建新会话
screen -S gradio_app

# 运行程序
python3 /opt/gradio_app/app.py

# 按 Ctrl+A 然后按 D 退出会话

# 重新连接
screen -r gradio_app

​方法 5:进程管理工具(如 pm2)​

# 安装Node.js和pm2
sudo apt install nodejs npm -y
sudo npm install -g pm2

# 启动程序
pm2 start /opt/gradio_app/app.py --interpreter python3

# 常用命令
pm2 list              # 查看进程
pm2 logs              # 查看日志
pm2 save              # 保存进程列表
pm2 startup   

一些问题排查问题手段:

检查端口冲突​​:

sudo netstat -tulnp | grep 7860

sudo nginx -t # 测试配置语法

sudo systemctl reload nginx

# 查找占用7860端口的进程 sudo lsof -i :7860

# 杀死占用进程(根据上一步输出的PID) sudo kill -9 <PID>

nohup python your_script.py > gradio.log 2>&1 &

作者 littlepudding

奇瑞汽车,车载智能语音开发

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注