Thursday, August 20, 2020

CentOS7にApache (httpd)の最新版2.4.43をインストールする(IUSリポジトリURLが変わってて若干はまった話)

 こんにちは。おおたにです。


今回はCentOS7にApache HTTP Server (httpd)の最新版をインストールする方法を備忘代わりに書いておこうと思います。

CentOS7向けのhttpdについては、CentOSのBaseリポジトリで公開されているバージョンが2.4.6と古いため、IUSリポジトリからインストールすることが一般的です。

最記事執筆時点ではIUSリポジトリで公開されているバージョンが2.4.43、Apache公式の最新版は2.4.46です。IUSリポジトリで公開されているよりも新しいバージョンが欲しい場合はソースコードからビルドする必要があります。

インストールされている古いhttpdの削除

2.4.6等の古いhttpdがインストールされている場合はアンインストールしましょう。

まず、起動しているhttpdを停止し、systemdへのサービス登録を解除します。

systemctl stop httpd
systemctl disable httpd.service

次に、httpdをアンインストールします。

yum remove httpd
yum remove httpd-tools

yumリポジトリの追加

必要なソフトウェアを入手するために、yumリポジトリEPELとIUSを追加します。

yum -y install epel-release
vi /etc/yum.repos.d/epel.repo
  ([epel]のenabledを0に変更する)
yum -y install https://repo.ius.io/ius-release-el7.rpm
vi /etc/yum.repos.d/ius.repo
  ([ius]のenabledを0に変更する)

これらのリポジトリをデフォルトで無効にしておくためにenabled=0に変更しています。なお、記事によってはIUSのURLがhttps://centos7.iuscommunity.org/ius-release.rpmとなっていますが、これは古いURLなので追加しようとするとエラーが出て失敗します(比較的最近リポジトリURLが変わったようです)。

依存ライブラリとhttpdのインストール

では必要なソフトウェアをインストールしてきましょう。

yum -y install centos-logos.noarch mailcap openldap-devel expat-devel libdb-devel openssl perl
yum --enablerepo=epel -y install nghttp2 brotli
yum --disablerepo=base,extras,updates --enablerepo=ius -y install httpd httpd-devel mod_ssl

以上で必要なソフトウェアがインストールされました。依存ライブラリが足りないよと言われた場合は適宜インストールしてください。

サービス登録と動作確認

最後にsystemdへのサービス登録を行いhttpdを起動します。

systemctl enable httpd.service
systemctl start httpd

start実行時にエラーが出ず、ブラウザでアクセスして It works! と表示されればインストール成功です!yumでインストールした時の設定ファイルのありかは以下のとおりですので参考にしてください。

  • /etc/httpd/conf/httpd.conf : httpd設定
  • /etc/httpd/conf.d/ssl.conf : httpd設定
  • /etc/logrotate.d/httpd : ログローテーション設定

No comments: