如何在Windows 10/11离线部署Rails应用并设置开机自启
适用于Windows 10的Rails离线部署方案
方案一:用NSSM将Rails服务注册为Windows系统服务
NSSM(Non-Sucking Service Manager)是轻量的Windows服务管理工具,完全离线可用,能把任意脚本/程序包装成系统服务,实现开机自启。
步骤:
- 提前在有网环境下载NSSM的压缩包(对应Windows版本),复制到目标Windows 10机器的任意目录(比如
C:\nssm),把该目录添加到系统环境变量PATH里。 - 在目标机器上确保已安装对应版本的Ruby和Rails依赖:
- 提前下载Ruby离线安装包(对应Windows版本),在目标机离线安装。
- 将开发环境中Rails项目的
vendor/bundle目录(如果用了bundle install --path vendor/bundle)复制到目标机的项目根目录,或者提前下载所有gem的离线包,在目标机执行gem install --local *.gem完成依赖安装。
- 打开命令提示符(管理员权限),切换到Rails项目根目录,执行命令:
nssm install RailsAppService - 在弹出的NSSM配置窗口中:
- Path:选择Ruby的
ruby.exe路径(比如C:\Ruby32-x64\bin\ruby.exe) - Arguments:填写
bin/rails server -b 0.0.0.0 -p 3000(允许本地所有IP访问,端口可自定义) - Working Directory:选择Rails项目的根目录路径
- Path:选择Ruby的
- 切换到Log On标签页,选择
Local System account并勾选Allow service to interact with desktop(可选,方便排查日志) - 点击
Install service完成注册,之后可以通过以下命令管理服务:# 启动服务 nssm start RailsAppService # 停止服务 nssm stop RailsAppService # 修改配置 nssm edit RailsAppService - 重启机器后,服务会自动启动,直接在浏览器访问
http://localhost:3000即可打开应用。
方案二:Apache + Passenger离线部署
Passenger支持在Windows上部署Rails应用,搭配Apache可以实现稳定的Web服务,且支持离线安装。
步骤:
- 提前下载以下离线安装包:
- Apache的Windows离线安装包(比如ApacheHaus版本)
- Passenger的Windows离线gem包(在有网环境执行
gem fetch passenger获取) - 对应版本的Ruby离线安装包
- 在目标机离线安装Ruby,然后执行
gem install --local passenger-xxx.gem安装Passenger。 - 安装Apache,将Apache的
bin目录添加到系统环境变量PATH。 - 打开命令提示符(管理员权限),执行
passenger-install-apache2-module,按照提示完成模块安装(过程中如果需要依赖,提前下载对应离线包提供)。 - 修改Apache的配置文件
httpd.conf,添加Passenger相关配置:LoadModule passenger_module "C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/passenger-6.0.18/buildout/apache2/mod_passenger.so" PassengerRoot "C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/passenger-6.0.18" PassengerDefaultRuby "C:/Ruby32-x64/bin/ruby.exe" # 配置Rails应用站点 <VirtualHost *:80> ServerName localhost DocumentRoot "C:/RailsApp/public" <Directory "C:/RailsApp/public"> AllowOverride all Options -MultiViews Require all granted </Directory> </VirtualHost> - 将Apache注册为Windows服务(通常安装包会自动完成,若未完成可执行
httpd -k install),设置服务为自动启动。 - 启动Apache服务,浏览器访问
http://localhost即可访问应用。
方案三:将Rails应用打包为独立可执行文件
用Ruby Packer将Rails应用、Ruby解释器和所有依赖打包成单个可执行文件,目标机无需安装Ruby环境,再设置开机自启。
步骤:
- 在开发环境(有网)安装Ruby Packer:
gem install ruby-packer - 进入Rails项目根目录,执行打包命令:
ruby-packer -o rails_app.exe bin/rails server -b 0.0.0.0 -p 3000 - 打包完成后,将生成的
rails_app.exe复制到目标Windows机器的任意目录。 - 设置开机自启:
- 按下
Win + R,输入shell:startup打开开机启动文件夹。 - 创建一个快捷方式,指向
rails_app.exe,并在快捷方式属性的目标末尾添加--daemon(让程序后台运行)。
- 按下
- 重启机器后,应用会自动后台启动,访问
http://localhost:3000即可使用。
内容的提问来源于stack exchange,提问作者Sediqullah
相关产品推荐
相关产品推荐

