RPMのコンパイルオプションを指定してNginxを導入する

利用するパッケージをインストール

  • 以下コマンドでインストールする
yum install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel wget ncurses-devel perl-devel perl-ExtUtils-Embed GeoIP-devel libxslt-devel gd-devel rpm-build yum-utils

コンパイルを行うユーザを作成する

  • rpmbuild 実行用の「builder」ユーザを作成
useradd builder
  • sudo権限を付与する
usermod -G wheel builder
  • builderのパスワードを設定する
passwd builder
  • builderユーザに切り替える
su builder

Nginxのインストールを行う

  • NginxのSRPMSを取得する
cd ~/
curl -O http://nginx.org/packages/centos/7/SRPMS/nginx-1.12.0-1.el7.ngx.src.rpm
  • RPMパッケージのインストールの進行状況と詳細を出しながらインストールする
rpm -ivh nginx-1.12.0-1.el7.ngx.src.rpm
  • RPMを再構築
    • 拡張したい場合は 補足2 にやり方を書いています
rpmbuild -ba ~/rpmbuild/SPECS/nginx.spec
  • 再構築したRPMをインストール
sudo rpm -ivh ~/rpmbuild/RPMS/x86_64/nginx-1.12.0-1.el7.centos.ngx.x86_64.rpm
  • nginxのversionを確認してみる
    • nginx -v を実行し以下のようになっていれば成功です
nginx version: nginx/1.12.0
  • Nginxのインストールはここで終わりです

補足1: Nginxのversionを変更する

  • builder ユーザで操作することを前提に書いています
    • root ユーザの場合は su builderbuilder ユーザになってください
  • versionを上げたくなったり変更したくなった場合は以下コマンドで既存のnginxを止めてください
sudo systemctl restart nginx
  • nginxをアンインストールする
sudo yum remove nginx
  • あとはNginxのインストールを行うに適切なversionを指定して一連の作業を作業を行えばversionを変更できます
    • 以下コマンドでNignxの起動をお忘れなく
sudo systemctl start nginx

補足2: Nginxを拡張する

  • ./configureオプションが記述されているファイルは以下になります
    • ~/rpmbuild/SPECS/nginx.spec
  • vim ~/rpmbuild/SPECS/nginx.spec で編集できます
    • 追加したいものがあれば適切に追加してください
%build
./configure %{BASE_CONFIGURE_ARGS} \ このあとに追加
  • 追加する記述が完了したらRPMを再構築から再度行います
    • ※パッケージが入ってない場合エラーになります。
    • sudo yum install パッケージ名 で追加してRPMを再構築から再度行います