手動でNginxのバージョンを切り替える方法 (original) (raw)

以前、Nginxをインストールしたとき手動でコンパイルして、複数のバージョンを切り替えられるようにしていた。

Nginxの本で紹介されていた方法で便利だと思った。

ハイパフォーマンスHTTPサーバ 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の最新バージョン

nginx.org

2024年11月20日(水)時点では、1.26.2がStable versionの最新版でした。

…ここまで調べて、なんか面倒くさくなってきたので、続きはまた明日にしたいと思います。