手動でNginxのバージョンを切り替える方法 (original) (raw)
以前、Nginxをインストールしたとき手動でコンパイルして、複数のバージョンを切り替えられるようにしていた。
Nginxの本で紹介されていた方法で便利だと思った。
もう一度復習しておきたい。
ちょっと今手元に本がないので、ChatGPTにやり方を聞いてみた。
ChatGPTに質問
質問
UbuntuにNginxをインストールするとき、手動でNginxのバージョンを切り替えられるようにしておきたいです。
複数のバージョンのNginxをインストールして、手動でバージョンを切り替えられるようにするためには、どうしたらいいですか?
回答
Ubuntuで複数のバージョンのNginxをインストールし、手動でバージョンを切り替えられるようにする手順は以下の通りです。
---
### **1. 必要なパッケージをインストール**
まず、ビルドやNginxの管理に必要なパッケージをインストールします。
```bash
sudo apt update
sudo apt install -y build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev wget
```
---
### **2. ソースコードから異なるバージョンのNginxをインストール**
公式サイトから必要なバージョンのNginxソースコードを取得し、それぞれ異なるディレクトリにインストールします。
#### 例: Nginx 1.22.0と1.24.0をインストール
1. Nginxのソースコードをダウンロードします。
```bash
cd /usr/local/src
wget http://nginx.org/download/nginx-1.22.0.tar.gz
wget http://nginx.org/download/nginx-1.24.0.tar.gz
```
2. 各バージョンをビルドしてインストールします。
```bash
# Nginx 1.22.0
tar -xzf nginx-1.22.0.tar.gz
cd nginx-1.22.0
./configure --prefix=/usr/local/nginx-1.22.0 --with-http_ssl_module
make
sudo make install
# Nginx 1.24.0
cd /usr/local/src
tar -xzf nginx-1.24.0.tar.gz
cd nginx-1.24.0
./configure --prefix=/usr/local/nginx-1.24.0 --with-http_ssl_module
make
sudo make install
```
---
### **3. シンボリックリンクでバージョンを切り替えられるようにする**
インストールされた各バージョンを切り替えるために、`/usr/local/nginx`にシンボリックリンクを作成します。
```bash
# 初期設定として1.22.0を有効にする
sudo ln -sf /usr/local/nginx-1.22.0 /usr/local/nginx
```
Nginxのバージョンを切り替えたい場合は、リンクを更新します。
```bash
# 1.24.0に切り替える
sudo ln -sf /usr/local/nginx-1.24.0 /usr/local/nginx
```
---
### **4. PATHの設定**
シンボリックリンクを`PATH`に追加して、どのバージョンが有効か簡単に確認できるようにします。
1. `/etc/profile.d/nginx.sh`を作成または編集します。
```bash
echo 'export PATH=/usr/local/nginx/sbin:$PATH' | sudo tee /etc/profile.d/nginx.sh
```
2. 設定を有効にします。
```bash
source /etc/profile.d/nginx.sh
```
---
### **5. 動作確認**
現在のNginxバージョンを確認します。
```bash
nginx -v
```
---
### **6. バージョンの切り替え**
シンボリックリンクを更新し、Nginxを再起動します。
```bash
# バージョンを切り替える(例: 1.24.0)
sudo ln -sf /usr/local/nginx-1.24.0 /usr/local/nginx
# 再起動
sudo /usr/local/nginx/sbin/nginx -s stop
sudo /usr/local/nginx/sbin/nginx
```
再び`nginx -v`でバージョンが切り替わったことを確認します。
Nginxの最新バージョン
2024年11月20日(水)時点では、1.26.2がStable versionの最新版でした。
…ここまで調べて、なんか面倒くさくなってきたので、続きはまた明日にしたいと思います。