はじめに
私は普段、VSCodeのRemote SSH機能を使ってサーバーに接続し、Djangoアプリの開発・運用を行っています。
ただ、SSH接続のたびに以下の作業を毎回手動で行うのがとても面倒でした。
- プロジェクトディレクトリへ移動(cdコマンド)
- 仮想環境の有効化(source venv/bin/activate)
- 環境変数の設定(exportコマンド)
そこで、.bashrcファイルを使うことでSSH接続時に自動で行われるようにしてみました。
動作環境- OS:Ubuntu(VPS)
- 接続方法:VSCode Remote SSH
- アプリ:Django
- サーバー構成:Gunicorn + Nginx
目次
1. .bashrcとは何か
.bashrcとは、ターミナル(bash)が起動したときに自動で実行される設定ファイルです。
つまり、SSHで接続した直後に実行したいコマンドを書いておけば、毎回手動で入力する必要がなくなります。
今回のようなケースでは、
- ディレクトリ移動
- 仮想環境の有効化
- 環境変数の設定
をまとめて自動化できるのが大きなメリットです。
2. .bashrcの場所と開き方
.bashrcは、ユーザーのホームディレクトリにあります。
パスは以下の通りです。
/home/ユーザー名/.bashrc
以下のコマンドで開くことができます。
nano ~/.bashrc
基本操作は以下。
- 保存:Ctrl + O → Enter
- 終了:Ctrl + X
ファイルの一番下に追記する形で設定を書いていきます。
3. 自動実行の設定方法
以下が今回の設定コードです。
プロジェクト名や仮想環境名は環境によって異なるため、適宜読み替えてください。
# === プロジェクト自動設定 ===
if [ -d "$HOME/プロジェクトディレクトリ名" ]; then
cd "$HOME/プロジェクトディレクトリ名"
if [ -f "仮想環境名/bin/activate" ]; then
source 仮想環境名/bin/activate
fi
export DJANGO_SETTINGS_MODULE=設定ファイルパス
fi
それぞれの意味
- if [ -d "..."]
ディレクトリが存在するか確認しています。存在しない場合のエラー防止。 - cd
プロジェクトのルートディレクトリへ移動。 - if [ -f "...activate" ]
仮想環境が存在するか確認。 - source~
仮想環境を有効化。 - export~
環境変数の設定。Djangoでは設定ファイルを指定するために必要。
この設定により、SSH接続した瞬間に開発環境が整った状態になります。
4. 反映と動作確認
設定を書いただけではすぐには反映されません。
以下のいずれかを行ってください。
- SSHを再接続する
- 以下のコマンドを実行する
source ~/.bashrc
その後、正しく動作しているか確認します。
pwd
→ プロジェクトディレクトリになっているか確認
which python
→ 仮想環境のPythonが使われているか確認
echo $DJANGO_SETTINGS_MODULE
→ 環境変数が設定されているか確認
すべて正しければ、今後はSSH接続するだけで開発環境が自動で整います。
5. おわりに
今回紹介した.bashrcの設定を使うことで、毎回の面倒な初期コマンド入力を省略できるようになります。