1月 22, 2022

Apache HTTPDのソースコードからのコンパイルとインストール

ほとんどのLinuxディストリビューションは、メインリポジトリから特定のバージョンのApacheバイナリパッケージを提供しています。 欠点は、このバージョンは、多くの場合、次の配布のメジャーリリースまで更新されないことです。

新しいバージョンからのみ利用可能な機能を利用したり、カスタマイズされたバイナリをビルドしたりするには、ソースコードからApache HTTPDをコンパイル

このチュートリアルでは、RPMベース(Fedora,CentOS,…)およびDebベース(Debian,Ubuntu,…)LinuxディストリビューションでのApache HTTPDのコンパイルとインストール手順について説明します。 利用可能な最新バージョン(2.4.x)が使用される。

Apacheのソースコード

ディレクトリ/usr/local/src/は一般的にビルド関連の活動に使用されます(root権限が必要です)。 このチュートリアルでは、ビルドディレクトリとして使用されます。

Apache HTTPDのソースコードはhttp://httpd.apache.org/download.cgiからtarファイルとして入手できます。

以下は、ビルドディレクトリ内のソースコードをダウンロードして抽出する手順です(バージョン番号は必要に応じて変更することができます):

cd /usr/local/src/wget https://downloads.apache.org//httpd/httpd-2.4.43.tar.gztar -xzf httpd-2.4.43.tar.gzls -lcd httpd-2.4.43pwdls

ビルド依存関係のインストール

Apache HTTPDのコンパイルには、開発ツール(Cコンパイラ、リンカ、…)といくつかの追加ライブラリのインストールが必要です。

必要なライブラリは次のとおりです:

  • apr
  • apr-util
  • openssl
  • expat
  • prce

ほとんどのLinuxディストリビューションは、メインリポジトリからこれらのライブラリを提供しています。 システムに古いバージョンのライブラリが含まれている場合は、そのソースコードを個別にダウンロードしてコンパイルすることができます。 後のセクションでは、Apache HTTPDコンパイルプロセスの一環として、aprとapr-utilライブラリのソースコードをダウンロードしてビルドする方法を説明します。

RPMベース(Fedora、Centos、…)Linuxディストリビューションでは、以下のコマンドを使用してライブラリ開発パッケージをインストールできます:

yum group install developmentyum install openssl-devel expat-devel pcre-devel apr-devel apr-util-devel

Debベース(Debian、Ubuntu、…)のLinuxディストリビューションでは、ライブラリ開発パッケージは次のコマンドを使用してインストールできます:

apt install build-essential libssl-dev libexpat-dev libpcre2-dev libapr1-dev libaprutil1-dev

ビルド設定オプション

Apache HTTPDのソースコードのダウンロードとビルド依存関係のインストール後、ビルド設定オプション(コンパイラオプション、インストー

Apache HTTPDはAutoconfビルドシステムを使用しているため、ビルド設定オプションを設定してMakefileファイルを生成するconfigureというスクリプトを提供します。

いくつかの調整が必要でない限り、デフォルトは保持される可能性があります。 デフォルトでは、ほとんどのモジュールをコンパイルし、インストールディレクトリを/usr/local/apache2/に設定します。

デフォルトを使用するには、configureスクリプトを引数なしで呼び出します:

cd /usr/local/src/httpd-2.4.43./configure

可能なすべてのオプションを一覧表示するには、–help引数を指定してスクリプトconfigureが呼び出されます:

cd /usr/local/src/httpd-2.4.43./configure --help

次のセクションでは、いくつかの便利なビルド構成オプションを示します。

インストールディレクトリ:–prefixオプション

インストールディレクトリがビルドディレクトリとは異なります。 コンパイルが成功し、make installコマンドが実行されると、結果のバイナリと設定ファイルが配置されます(インストールのセクションに示されています)。

–prefixオプションは、別のインストールパスを選択するために使用されます。 このオプションは、異なるバージョンのApacheをビルドしてインストールする必要がある場合に便利です。

次の例では、インストールディレクトリを/opt/apacheに設定する方法を示します-2.4.43/:

cd /usr/local/src/httpd-2.4.43./configure --prefix=/opt/apache-2.4.43/

モジュールを有効/無効にする方法: -enable–MODULE/-disable-MODULE

Apacheのモジュールのほとんどはデフォルトで動的ライブラリとしてビルドされています。 -Enable-MODULEオプションは、モジュールを有効にしたり、ビルドタイプを動的から静的に変更したりするために使用できます。 -Disable-MODULEオプションは、モジュールの構築を無効にするために使用されます。 MODULEは実際のモジュール名に置き換えられます。

次の例は、モジュールrewriteを静的ライブラリとしてビルドする方法を示しています:

cd /usr/local/src/httpd-2.4.43./configure --enable-rewrite=static

コンパイラオプション

必要に応じて、コンパイラオプションは環境変数として設定スクリプトに渡されます。

変数の概要を次の表に示します:

CC Cコンパイラコマンドを選択するために使用します。 デフォルトはcc(GNUコンパイラ)ですが、clangもオプションです
CFLAGS Cコンパイラフラグを渡すために使用されます
LDFLAGS リンカーフラグを渡すために使用されます
ライブラリをリンカに渡すために使用されるLIBS
CPPFLAGS (目的)C/C++プリプロセッサフラグを渡すために使用されます
CPP Cプリプロセッサパラメータを渡すために使用されます

次の例では、cコンパイラに最適化フラグを渡す方法を示します:

cd /usr/local/src/httpd-2.4.43export CFLAGS=-o2./configure

コンパイルとインストール

ビルド構成オプションを設定し、Makefileファイルを生成するconfigureスクリプトを実行した後、makeコマンドでコンパイルプロセ

次の例では、コンパイルプロセスを開始する方法を示します:

cd /usr/local/src/httpd-2.4.43./configuremake

コンパイルが成功した後、次のコマンドを使用してインストールディレクトリへのインストールを開始することができます:

make install

インストールでは、必要なすべてのバイナリと設定ファイルがインストールディレクトリ/usr/local/apache2に配置されます。 実行可能ファイルは/usr/local/apache2/bin/に配置されます。 設定ファイルは/usr/local/apache2/conf/にあります。

コンパイルされたモジュールを一覧表示する方法

コンパイルされたモジュールは、次のコマンドを使用して一覧表示できます:

/usr/local/apache2/bin/httpd -M

サービスの開始と停止

Apache HTTPDの新しいビルドは、コマンド/usr/local/apache2/bin/apachectlを使用して開始できます。サービスを開始するには

:サービスを停止するには

/usr/local/apache2/bin/apachectl start

:

/usr/local/apache2/bin/apachectl stop

ソースコードからのaprとapr-utilのビルド

Apache HTTPDのコンパイルに必要なライブラリは、Linuxディストリビューションのメインリポジトリからインストールされていますが、状況によっては、Apache HTTPDがこれらのリポジトリーから入手できないライブラリのより新しいバージョンを必要とする場合があります。 この場合、ライブラリのソースコードをApache HTTPDと一緒にダウンロードしてコンパイルすることもできます。

ライブラリaprとapr-utilは、Apacheが多くのオペレーティングシステム間での移植性を確保するために内部的な作業のために依存しているコアライブラリの2つです。

Apacheのソースコードにはsrclibというサブディレクトリが含まれています。 これは、システムライブラリを使用するのではなく、サーバーによって構築され使用されるライブラリを保持するために使用されます。

Apache HTTPDのコンパイルプロセスの一部としてaprライブラリとapr-utilライブラリのソースコードを統合するために、それらのソースコードをダウンロードし、サブディレクトリsrclib内に抽出します。

次の例では、aprとapr-utilの二つのライブラリのソースコードをダウンロードして抽出する方法を示します。 Tarファイルが抽出されると、バージョン番号を削除する必要があります。公式サイトhttps://apr.apache.org/download.cgiからダウンロードできます。

cd /usr/local/src/httpd-2.4.43/srclib/wget https://downloads.apache.org/apr/apr-1.7.0.tar.gztar -xzf apr-1.7.0.tar.gzmv apr-1.7.0 aprlswget https://downloads.apache.org/apr/apr-util-1.6.1.tar.gztar -xzf apr-util-1.6.1.tar.gzmv apr-util-1.6.1 apr-utillscd /usr/local/src/httpd-2.4.43./configuremakemake install

バージョン2からのアップグレード方法。xを2にする。y

ソースコードからインストールされたApache HTTPDの更新が可能です。 推奨される方法は、バージョンごとに個別のインストールディレクトリを使用し、古いバージョンから新しいディレクトリに構成サブディレクトリをコ

次の例では、/usr/local/apache-2.4.0にインストールされている既にインストールされているバージョン2.4.0を、/usr/local/apache-2.4.43にインストールされる新しいバージョン2.4.43に更新する方法を示しています。

新しいバージョンをダウンロード、コンパイル、インストールするには:

cd /usr/local/src/wget https://downloads.apache.org//httpd/httpd-2.4.43.tar.gztar -xzf httpd-2.4.43.tar.gzcd httpd-2.4.43./configure --prefix=/usr/local/apache-2.4.43makemake install

古いバージョンからサービスを停止する:

/usr/local/apache-2.4.0/bin/apachectl stop

古いバージョンのディレクトリから新しいバージョンのディレクトリに設定ディレクトリをコピーします:

rm -rf /usr/local/apache-2.4.43/conf/cp -rp /usr/local/apache-2.4.0/conf/ /usr/local/apache-2.4.43/

新しいバージョンからサービスを開始します:

/usr/local/apache-2.4.43/bin/apachectl start

コメントを残す

メールアドレスが公開されることはありません。