CentOS7系 + Apache2.4最新版yumインストール
修正履歴
- 2021/04/07 iusリポジトリのURLが変更になっていたのに(やっと)気づいたので修正
はじめに
環境
- asianux7(※CentOS7.2相当)※ゲストOS、本番環境で試せないことを手軽に試すためにWinPCに試用版を導入
- Windows10 Professional ※ホストOS
- VirtualBox5.1.30
- Vagrant1.9.8
本記事の目的
CentOS7でApache2.4をインストールすると 2.4.6
という古いバージョンが入ります。
今回の記事は 2.4.6
から最新の 2.4.29
に入替えたときのメモです。
ググるとソースからインストールする系の情報が多くヒットしますが、yumで最新版を入れたかったので、そのときの手順を備忘録として投稿します。
PHPの入れ直しも発生したので一部PHPインストールについても記載します。(むしろPHPでてこずったのでそちらをメインにしようかとも思っていたのですがショボい話だったので端折ります)
参考URL
以下のサイトを参考に作業しました。
CentOS7にApache2.4最新版をyum installする(w3g.jp)
作業メモ
rootで作業しました。root以外の場合、適宜 sudo
を付けて作業します。
epelリポジトリ
HTTP/2用コアエンジン Nghttp2
インストール用です。
既にリポジトリがある場合はスキップ。
# yum -y install epel-release
ターゲットのソフトウェアをインストールするときだけepelを使用する様にデフォルトから外しておくことを推奨します。
# vi /etc/yum.repos.d/epel.repo
[epel]
(略)
enabled=0 ←※0にする
(略)
Remiリポジトリ
PHPインストール用です。既にリポジトリがある場合はスキップ。
メンテナンス等でたまにRemiリポジトリ公式サイトへ繋がらないときがあるようです。
その場合はタイミングをずらして試してみてください。
またはミラーサイトを利用します。
(参考URL)
yumでremiリポジトリが落ちたときの対応
# yum -y install "http://rpms.famillecollet.com/enterprise/remi-release-7.rpm"
iusリポジトリ
Apacheの最新版のインストール用です。
iusはCentOS/RedHad用の最新ソフトウェアのrpmを提供するプロジェクトです。
# yum install -y https://repo.ius.io/ius-release-el7.rpm
最新版のソフトウェアをインストールするときだけiusを使用する様にデフォルトから外しておくことを推奨します。
# vi /etc/yum.repos.d/ius.repo
[ius]
(略)
enabled=0 ←※0にする
(略)
HTTP/2コアエンジン、/etc/mime.types
# yum --enablerepo=epel -y install nghttp2
mime.typesはmailcapパッケージに含まれます。
# yum -y install mailcap
古いバージョンのhttpd、httpd-toolsを削除
yum update
を試してみたけどコンフリクト(バージョンの競合)が起きました。
なので、古いバージョンを削除してから新しいバージョンを入れます。
httpd.confなどの設定はなくなるので必要に応じてバックアップしておきます。
# systemctl stop httpd
# yum remove httpd
古いバージョンのhttpdを削除する際、道連れで削除されるパッケージがあるのでメモっておいて後でインストールし直します。
実はこの時PHPのパッケージが削除されていたのですが、 php -v
で確認したところ普通に動いたので無視していたら後で苦労することに・・・
古いバージョンのhttpd-toolsが残っていると新しいhttpdのインストールの際にコンフリクトが起きるのでこれも削除します。
# yum remove httpd-tools
Apache2.4最新版インストール
やっと本題のApache2.4最新版のインストールです。
既存のリポジトリを無効(--disablerepo)にして、iusリポジトリを有効(--enablerepo)にします。
# yum --disablerepo=base,extras,updates --enablerepo=ius -y install httpd
追加パッケージのインストール
必要に応じて追加のパッケージをインストールします。
httpd-develとmod_sslを入れました。
# yum -y install openldap-devel expat-devel
※http-develで必要
# yum --disablerepo=base,extras,updates --enablerepo=ius -y install httpd-devel mod_ssl
設定など
httpd.confへの設定については割愛します。
設定変更したら必ず httpd -t
でシンタックスのチェックをしましょう(これ重要)。
httpd起動、再起動、停止、自動起動設定
(起動)
# systemctl start httpd
(再起動)
# systemctl reload httpd
(停止)
# systemctl stop httpd
(自動起動設定※サーバ起動時に自動で起動する)
# systemctl enable httpd
PHP(再)インストール
phpのコンテンツが表示されずに「おかしいな。おかしいな。」と思っていましたが、古いバージョンのhttpdを削除したときにPHPも一緒に削除されていました。
php -v
でちゃんと動くので見落としがちですが、 rpm -qa | grep php
で確認するとパッケージがなくなっていることが確認できます。
Remiリポジトリから必要なバージョンを選んでPHPをインストールします。
remi-php72を有効にしてphp7.2.1をインストールしました。
# yum --enablerepo=remi-php72 -y install php
PHPのインストールにより、/etc/httpd/modules/にlibphp7.soが入り、/etc/httpd/conf.modules.d/15-php.confからLoadModuleしてくれます。
おわりに
やってみて古いパッケージを残しつつ、ソースからインストールの方がよほど楽なんじゃないかなとも思いました(笑)
公に(商用向けなど)Apacheを使っている場合はHTTP/2を使いたい等相当な理由がない限りバージョンアップは慎重に検討すべきと思います。
Author And Source
この問題について(CentOS7系 + Apache2.4最新版yumインストール), 我々は、より多くの情報をここで見つけました https://qiita.com/edward999th/items/d1542294c66e647c608c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .