Railsサーバーを実行する際、
今までは PowerShell を起動していました。
本番環境では、 サービス化するのが良いでしょう。
サービス化しない場合は、
サーバーOS を再起動する度に起動し直す必要があります。
起動用バッチファイルを作ってスタートアップに登録するでも構わないのですが、
そうすると、Railsサーバーを再起動するのが面倒になります。
Railsサーバーを起動する前段階で設定が必要なので、
まずはバッチファイルを作ります。
下記は一例です。必要に合わせて変えてください。
ファイル名は rails_start_book_mgmt.bat としておきます。
@echo off
set RUBYDIR=C:\Ruby34-x64
set GEM_HOME=%RUBYDIR%\lib\ruby\gems\3.4.0
set GEM_PATH=%RUBYDIR%\lib\ruby\gems\3.4.0
set PATH=%RUBYDIR%\bin;%PATH%
REM
REM proxy 必要なら設定
REM set HTTP_PROXY=http://username:password@proxy.my_domain.com:8080
REM set HTTPS_PROXY=http://username:password@proxy.my_domain.com:8080
REM
REM Railsアプリのルートに移動。自環境に合わせて設定
cd /d C:\railsProjects\book_mgmt
REM
REM サブフォルダ設定
set RAILS_RELATIVE_URL_ROOT=/book_mgmt
REM
REM Railsサーバー起動
ruby bin/rails s -e production
以下の手順で、サービス化します。
nssm 2.24-101-g897c7ad をダウンロードします。installer が起動したら、Application タブで以下の通りに入力
Path: → rails_start_book_mgmt.bat を Full Path で。
Startup directory: → Railsアプリのルートフォルダ。
Arguments: → ブランクのままでOK
Service name: → お好みで。本章では rails_start_book_mgmt とします。
e.g.
Path: C:\railsProjects\rails_start_book_mgmt.bat
Startup directory: C:\railsProjects\book_mgmt
Arguments:
Service name: rails_start_book_mgmt
登録したサービスを起動します。
WEBアプリを実行してみます。
ブラウザで http://localhost:3000/book_mgmt/ を開いて、
動作すれば OK です。
Railsアプリのコードを変更したら、
ruby bin/rails assets:precompile RAILS_ENV=production
した後、
サービス rails_start_book_mgmt の再起動が必要です。
途中で nssm の設定を変えたくなったら、
ファイル名を指定して実行 → regedit
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\rails_start_book_mgmt\Parameters
で AppDirectory、Application、AppParameters を編集してください。