DT Blog

クレスコDTのエンジニアが
IT基礎知識から最新トレンドまで、技術ノウハウを発信

catch-img

Red Hat 8.7でApacheをソースからインストールする方法

テクノロジーサービス2部の松下と申します。
今回は、過去に対応したApacheをソースからインストールする方法について記載します。
Linuxサーバーであれば、同様の流れで他のソフトウェアをインストールすることもできるため、Apache以外の製品をインストールする際にもご参考にしていただければ幸いです。


■あわせて読まれている資料:
対応事例やソフトウェアテクノロジーサービス一覧を掲載!
ソフトウェアテクノロジーサービス

  ソフトウェアテクノロジー資料ダウンロード|株式会社クレスコ・デジタルテクノロジーズ 最先端のデジタル技術の豊富な知見に基づき最も効果的なソリューションを提供します。 クレスコ・デジタルテクノロジーズは、大手電機メーカー様との提携に基づく製造業のノウハウを背景に、2015年4月よりPLM事業を開始。2015年6月には、PLMパッケージであるAras Innovatorを提供している米国Aras社とシステムインテグレーションパートナー契約を締結し、数多くのAras Innovator案件に対応しています。 株式会社クレスコ・デジタルテクノロジーズ


目次[非表示]

  1. 1.Linuxでのソフトウェアインストール方法
    1. 1.1.パッケージ管理ツールによるインストール
    2. 1.2.RPMコマンドによるインストール
    3. 1.3.ソースからのインストール
  2. 2.ソースからのApacheインストール実行方法
    1. 2.1.事前準備
    2. 2.2.インストール実行
  3. 3.インストール実行後の確認項目
  4. 4.ソースからインストールした際のアンインストール方法
  5. 5.まとめ
  6. 6.引用元


Linuxでのソフトウェアインストール方法

LinuxOSにソフトウェアをインストールする際には、大きく分けて3通りの方法が存在します。

  • パッケージ管理ツールのインストールコマンドを用いる
  • RPMパッケージを使用して、インストールする
  • ソフトウェア毎にソースからインストールする

 一般的には、依存関係などをインストール時に解消してくれる「パッケージ管理ツール」を用いて、ソフトウェアをインストールすることが多いかと思います。
 
本章では、それぞれの方法についてのメリット・デメリットをご説明いたします。

パッケージ管理ツールによるインストール

特定のコマンドを実行することで、イメージメディアに同梱されているリポジトリもしくはインターネット上からソフトウェアをインストールする方法です。
 
Red Hat系のOSでは「yum」もしくは「dnf」といったコマンドになります。
 
この方法のメリットは、ソフトウェア間の依存関係や競合関係を自動的に解消してくれることです。

  • 依存関係のイメージ:インストール対象のソフトウェアが動作するために必要な部品
  • 競合関係のイメージ:別々のソフトウェアが同じものを更新すること

 Linuxでソフトウェアをインストールする際は、事前準備や動作環境の整備が必要となります。
 
通常ソフトウェアをインストールする際には、たくさんのモジュールが必要となります。
しかし、これらを一つずつ手動で確認するのは手間がかかるうえ、バージョンの違いによって動作しないこともあります。
 
また、すでにインストールされているソフトウェアのモジュールを誤って上書きしてしまうリスクもあるため、すべてを手動で対処することは困難です。
 
そこで役立つのがパッケージ管理ツールです。パッケージ管理ツールを使用すると、インストールするソフトウェアに必要なものがそろっているか確認してくれます。
 
■注意点
パッケージ管理ツールはコマンド一行で、不足しているソフトウェアの確認、インストール動作を実行してしまうため、更新してほしくないソフトウェアをバージョンアップしてしまうリスクもあります。
 
このようなリスクを防ぐためには、事前検証やテスト用サーバーでの動作確認を行うことが重要です。

RPMコマンドによるインストール

RPMコマンドを実行することで、個別にソフトウェアをインストールする方法です。
この方法では、パッケージ管理ツールと同様に、イメージメディアに同梱されているリポジトリもしくはインターネット上からソフトウェアをインストールできます。
 
パッケージ管理ツールと比較して、コマンド実行時に想定していないソフトウェアがインストールされないことが明確なメリットとして挙げられます。
 
■注意点
RPMコマンドはパッケージ管理ツールと異なり、依存関係・競合関係の確認・解消を自動で行いません。
そのため、コマンド実行後に必要なソフトウェアが不足している旨のエラーが表示されインストールに失敗する可能性があります。また、ソフトウェアが競合することで元々入っていたソフトウェアの動作に問題が生じる可能性もあるため、利用する際には注意が必要です。

ソースからのインストール

これまでの方法と異なり、ソフトウェアの提供元からインストールに必要なファイルをダウンロードしてインストールする方法です。
 
Apacheでは、サイトから圧縮されたソースファイルをダウンロードして、インストールしたいOSでファイルを解凍・展開した後、configure、make、make installといったコマンドを実行することでインストールが完了します。

configure                   → 設定
make                           → コンパイル
make install              → インストール
 
この方法を選択するメリットは、バージョン選定からソフトウェアが動作するまでのすべてを手動で行えることです。
 
導入時の処理も作業者が実施するため、インストールディレクトリや動作環境などの細かな設定を盛り込むことができます。
(例えば、パッケージ管理ツールを使用した場合、HTTPSに関するモジュールが一緒に導入されますが、ソースからインストールする場合は明示的に指定する必要があります。)
 
■注意点
RPMコマンドと同様に、インストール対象のソフトウェアの依存関係・競合関係の調査に加え、ソフトウェアのバージョンも選ぶ必要があるため、提供元からファイルをダウンロードする際に脆弱性の調査や仕様の確認も必要になります。
 
ソースからのインストールを行う方法では、事前に十分な調査が必要ですが、要件や目的次第では有効な選択肢となります。


ソースからのApacheインストール実行方法

本章では、RHEL 8.7にて、Apache2.4.58をソースからインストールする方法を記載いたします。
 
ソースファイルからApacheをインストールする方法は大きく分けて下記のような流れとなります。 

  • 事前準備
  • パッケージ確認
  • インストール実行
  • 確認 

事前準備

事前準備として、ソースファイルをダウンロードします。
ダウンロードは下記サイトから実施可能です。
Welcome! - The Apache HTTP Server Project
 
インターネットに接続可能な端末で圧縮ファイルをダウンロードしたら、インストール先のサーバーにファイルを搬送します。また、サーバーがインターネットに直接接続されている場合は、ダウンロードコマンドを実行もしくはリンク先にブラウザで接続しても構いません。
 
なお、Apacheは下記のファイルが必要になるため、下記3点をダウンロードしてください。

  • APR
  • APR-util
  • Apache-httpd 

Apacheのインストール作業を実施する前に、Apacheに必要なソフトウェアなどがインストールされているか、確認します。
パッケージが不足している場合、Apacheのインストール時にエラーが発生し、処理が完了しません。

Apacheのインストールを実行する際に必要なものは、下記になります。
・50MBのディスクスペース
Apacheのインストール処理中に一時的に必要な容量になります。

・ANSI-Cコンパイラとビルドシステム
Linuxサーバーを用意した段階で、すでに利用可能な場合も多いですが、不足している場合には、
インストールコマンドとして記載する各コマンドが実行できなくなります。

・時刻が正確なこと
HTTPプロトコルの要素は日時の時刻で表現されているため、正確な時刻に合わせることが
必要となります。

・Perl5
ソースファイルとして提供されているファイルの中にPerlで記述されているスクリプトが存在しています。
該当のスクリプトを動作させるためにPerl5が必要となりますが、Apacheのインストール作業自体には影響はありません。
 
上記の事前準備は、OSのバージョンやインストールされているパッケージ群に関わらず必要となります。
元々導入されているhttpdサービスなどをyumコマンドなどでアンインストールした場合は、上記以外にも前提パッケージが不足している可能性もあるため、以降で記載するインストール実行時のエラーメッセージなどをよく確認してください。

事前準備は以上となります。
※Apache tomcatを使用する場合やHTTPSとして動作させる際には、その他の前提条件がありますが、本稿では割愛いたします。

インストール実行

インストールを実施する際、複数のコマンドを実行する必要があります。
本稿では、基本的なコマンドを中心に記載いたします。
 
また、ここでは事前ダウンロードした3種類のファイルをそれぞれインストールする流れでインストールを実施いたします。
 
・APRのインストール
「APR」のソースファイルを配置したディレクトリまで移動して、「./configure」コマンドを実行します。
 
この際、「--enable-layout=RedHat」のようにすることで、どのディレクトリにインストールされるか設定することが可能です。
もし、インストールディレクトリを指定しない場合は、「/usr/local/apache2」にファイル等が展開されます。
 
また、「APR」のインストールディレクトリと同じディレクトリパスに「APR-util」「Apache」をインストールする必要があるため、上記のオプションを指定して「APR」をインストールする際は、同じオプションを使用して、「APR-util」「Apache」もインストールします。
 
「./configure」コマンドが成功した後は、「make」コマンドを実行します。
「make」コマンドを実行することで、「./configure」コマンドでビルドされたMakefile等を使用して、インストールに必要なモジュール等がビルドされます。
 
当該コマンドにて、エラーが発生した場合、コマンド実行時に「Perl」等が不足している可能性があるため、エラーメッセージやソースファイルのエラー発生個所から、不足しているモジュールを特定して、インストールする必要があります。
 
「make」コマンドが成功した後は、「make install」を実行して、Apacheをインストールします。
 
  例) ./configure –enable-layout=RedHat
      make
      make install
 
・APR-Utilのインストール
ここまで完了したら、「APR-Util」のインストールになります。
基本的な流れは「APRのインストール」と同じです。
ただし、「./configure」を実行する際に「APR」のインストール先を指定する必要があるため、
「--with-apr=/usr」のようにディレクトリパスを指定します。
 
その後、ARPのインストール時と同様に、「make」、「make install」を実行します。
 
  例) ./configure –with-apr=/usr –enable-layout=RedHat
      make
      make install
 
・httpdのインストール
「Apache-httpd」のインストールについても基本的な流れは変わりないですが、「./configure」実行時に指定する引数が多くなります。
 
指定が必要な項目は、「APR」、「APR-Util」のインストールディレクトリ、Apacheのインストール先です。それ以外にもモジュールを使用したい場合や、httpdの動作設定など、要件によってコマンド実行時に必要な項目が多くなります。
 
「make」、「make install」コマンドについては変わりないですが、エラーが出力された場合、前提パッケージが不足していることや、インストール時に自動的に実行されるコマンドが利用できないことが原因である可能性があります。
 
  例) ./configure –with-apr=/usr –with-apr-util=/usr –enable-layout=RedHat
      make
      make install


インストール実行後の確認項目

「./configure」コマンドを実行した際に指定したディレクトリパス配下にファイルが展開されていることを確認してください。
特に問題がなければ、ファイルが展開されているため、設定を実施します。
 
インストールが成功した後、下記2点の確認と設定が必要です。

  • systemctlについて
  • 「httpd.conf」について

 前者は「yum」コマンド等で過去に「httpd」が導入されている場合に、設定や情報が残っている可能性があるため、確認が必要となります。
特に「systemctl」コマンドを使用してhttpdサービスを起動・停止したい場合には、
設定ファイル「/etc/system/system/httpd.service」等を十分に確認する必要があります。
 
Systemctlと同様の理由により、「httpd.conf」についても確認が必要となります。
httpdサービスでは、該当ファイルを使用してhttpdの動作や設定内容を記述します。
 
インストール直後の「httpd.conf」に記載されているモジュールパスは、「./configure」コマンド実行時に指定したオプションによって変わります。
 
そのため、構築しようとしているサーバーの要件に合ったモジュールパスが記載されているか、確認してください。
なお、モジュールが存在していない場合は、「./configure」コマンドを実行した際に必要な設定が不足している可能性があるため、一度アンインストールしてから再インストールが必要になります。


ソースからインストールした際のアンインストール方法

ソースからインストールしたファイルは、製品によってはアンインストールコマンドが存在しないため、
アンインストールしたい場合にひと手間必要になります。
 
アンインストールの流れをコマンド実行例と併せて記載いたします。 

1.仮フォルダを作成します。
 
例) mkdir /tmp/uninstall

2.仮フォルダをインストールパスに指定し、ソフトウェアをソースからインストールします。
 例) make install DESTDIR=/tmp/uninstall

3.インストールしたファイルパスをテキストファイルに出力します。
 例) find /tmp/uninstall -type f -print > /tmp/apache-uninstall.txt

4.テキストファイルに出力されたファイルパスを置換します。
 例) sed -e "s//tmp/uninstall//g" /tmp/apache-uninstall.txt > /tmp/apache-uninstall_2.txt

 5.ファイル内に記述されている置換後のファイルパスを使用して、ファイルを削除します。
 例) cat /tmp/apache-uninstall_2.txt | xargs rm -f

上記の作業手順では、インストールディレクトリなどは残ります。
インストールディレクトリを削除する場合は、個別に削除コマンドを実行します。


まとめ

今回はApacheのソースインストールを紹介いたしましたが、同様の流れで別のソフトウェアもインストールすることが可能です。
Linuxを使用する上で、ソフトウェアのインストールプロセスを理解しておくことは、パッケージ管理ツールやRPMを使用してインストールする際にも役立ちます。
Linuxサーバーでソフトウェアをインストールする際には、ぜひ本稿を思い出していただけますと幸いです。


■サービス資料一覧はこちら↓

  資料ダウンロード一覧|株式会社クレスコ・デジタルテクノロジーズ クレスコ・デジタルテクノロジーズのサービスに関する資料の一覧ページです。 株式会社クレスコ・デジタルテクノロジーズ

​​​​​​​


引用元

The Apache HTTP Server Project
Welcome! - The Apache HTTP Server Project 
ソースファイルインストールしたものをアンインストール(make uninstall)するには

松下
松下
部署名:テクノロジーサービス2部

おすすめ資料はこちら

最先端のデジタル技術の豊富な知見に基づき最も効果的なソリューションを提供します。
クレスコ・デジタルテクノロジーズは、大手電機メーカー様との提携に基づく製造業のノウハウを背景に、2015年4月よりPLM事業を開始。2015年6月には、PLMパッケージであるAras Innovatorを提供している米国Aras社とシステムインテグレーションパートナー契約を締結し、数多くのAras Innovator案件に対応しています。

CONTACT

社内システムのお悩みを私たちだけで解決へと導きます

お役立ち資料は
こちらから

不明な点はお気軽に
お問い合わせください