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

Windows下无法启动Rails的Thin服务器:EventMachine C扩展加载失败

解决Windows下Thin服务器EventMachine C扩展加载失败问题

看起来你在Windows环境下配置Rails的Thin服务器时踩了EventMachine的坑——不管是启动thin s还是rails s都卡在C扩展加载失败上,甚至加了em/pure_ruby初始化文件也没效果,对吧?我之前也遇到过类似的情况,给你几个靠谱的解决步骤:

方案1:强制加载纯Ruby版EventMachine(快速生效)

错误提示里明确提到可以用纯Ruby反应器,但你放在initializer里的代码可能没被Thin的启动流程提前加载到。试试直接在启动命令里强制引入:

  • 临时启动:在命令行执行
    ruby -r em/pure_ruby -S thin start
    
  • 永久生效:可以在项目根目录创建start_thin.bat脚本,内容如下,以后双击就能启动:
    @echo off
    ruby -r em/pure_ruby -S thin start
    

方案2:重新编译适配本地Ruby的EventMachine扩展

有时候预编译的gem包和你的Ruby版本/Windows环境不兼容,试试手动编译适配版本:

  1. 先卸载所有已安装的EventMachine:
    gem uninstall eventmachine --all
    
  2. 安装RubyDevKit(如果没装的话):下载对应你Ruby 2.4.x版本的DevKit,解压后运行ruby dk.rb init和ruby dk.rb install完成配置。
  3. 强制编译安装EventMachine:
    gem install eventmachine --platform=ruby
    

方案3:降级EventMachine到兼容稳定版

EventMachine 1.2.7和Ruby 2.4.x在Windows上可能存在兼容性问题,试试降级到更稳定的1.2.3版本:

  1. 修改项目Gemfile,指定版本:
    gem 'eventmachine', '1.2.3'
    
  2. 执行bundle安装:
    bundle install
    
  3. 再尝试启动thin start或rails s。

方案4:临时切换回WEBrick(应急方案)

如果上面的方法暂时没效果,你可以先切换回Rails默认的WEBrick服务器,保证项目能正常运行:

rails s -b webrick

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:21:23