WSL环境运行Rails项目提示Address already in use无法启动如何解决
问题解决方案
排查步骤
- 首先检查项目
config/puma.rb配置:Capistrano部署时通常会自动修改puma配置,确认是否存在以下异常配置:- 是否仅配置了unix套接字绑定(如
bind 'unix:///xxx/xxx.sock'),没有配置本地tcp端口绑定规则 - 是否配置了固定pid文件路径,项目之前异常退出留下了未清理的旧pid文件,导致puma误判进程已在运行
对应解决方法:删除残留的puma.pid文件,在开发环境配置块中添加bind 'tcp://127.0.0.1:3000'强制绑定本地3000端口。
- 是否仅配置了unix套接字绑定(如
- 检查当前终端的Rails环境变量:部署操作可能会临时设置
RAILS_ENV=production,执行echo $RAILS_ENV确认输出,如果返回production,执行unset RAILS_ENV切换回开发环境,或直接用rails s -e development指定开发环境启动。 - 换端口启动验证:执行
rails s -p 3001指定其他端口启动,如果可以正常运行,说明项目默认端口配置被修改,回到puma配置或config/environments/development.rb中调整默认端口即可。 - 重新安装全量依赖:部署Capistrano时如果执行过
bundle install --without development test类命令,会导致开发环境依赖缺失,执行bundle install重新安装全量依赖后再尝试启动。
内容的提问来源于stack exchange,提问作者sunsun
相关产品推荐
相关产品推荐

