読者です 読者をやめる 読者になる 読者になる

波打際のブログさん

主に、プログラミング備忘録など。

CentOS6.4にApacheをコンパイルしてインストールする

はじめに

CentOS6.4にApacheソースコードをコンパイルしてインストールする方法を備忘録として残しておきます。

使用するソフトウェアのバージョン

  • CentOS6.4
  • Apache2.4.4

コンパイル環境構築

コンパイラ(gcc)のインストール

yumを使用して一括でインストールを行いました。

$ sudo yum install gcc*

openssl-develのインストール

開発用コードを等含むopenssl-develのインストールをyumから行います。
apachesslをモジュールを使用しない場合は不要です。

$ sudo yum install openssl-devel

必須ファイルの準備

ソースコード本体と、破損・改変チェック用のMD5チェックサムをダウンロードします。

ダウンロード

apache本体

Welcome! - The Apache HTTP Server Project

$ wget http://mirrors.go-part.com/apache//httpd/httpd-2.4.4.tar.gz
$ wget http://www.apache.org/dist/httpd/httpd-2.4.4.tar.gz.md5
apr及びapr-util

Welcome! - The Apache Portable Runtime Project

$ wget http://ftp.kddilabs.jp/infosystems/apache//apr/apr-1.4.8.tar.gz
$ wget http://ftp.kddilabs.jp/infosystems/apache//apr/apr-util-1.5.2.tar.gz
$ wget http://www.apache.org/dist/apr/apr-1.4.8.tar.gz.md5
$ wget http://www.apache.org/dist/apr/apr-util-1.5.2.tar.gz.md5
pcre

PCRE - Perl Compatible Regular Expressions

$ wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.33.tar.gz

破損チェック

pcre以外のアーカイブにはMD5チェックサムが用意されているので、ダウンロード後に破損チェクを行います。

$ md5sum -c *.md5

コマンド実行後、 完了 と表示されたファイルは正常にダウンロードできています。

コンパイル

依存関係があるため、pcre → apr → apr-util → apache の順番でコンパイル&インストールを行います。

解凍

ダウンロードしてきたフォルダをtarコマンドで全て解凍します。

tar -zxvf httpd-2.4.4.tar.gz
tar -zxvf apr-1.4.8.tar.gz
tar -zxvf apr-util-1.5.2.tar.gz
tar -zxvf pcre-8.33.tar.gz

pcre

pcreはconfigureで設定せずに、そのままコンパイルとインストールをします。

$ cd pcre-8.33
$ ./configure
$ make
$ make install

apr

aprもそのまま、コンパイルとインストール。

$ cd apr-1.4.8
$ ./configure
$ make
$ make install

apr-util

apr-utilは、先程インストールしたaprのパスを指定し、コンパイルとインストールを行います。

$ cd apr-1.4.8
$ ./configure –with-apr=/usr/local/apr
$ make
$ make install

apache

apacheはapr、apr-utilのパスを指定し、モジュールの設定をおこなってインストールを行いました。

$ cd apr-1.4.8
$ ./configure -enable-mods-shared="all ssl proxy" -with-apr=/usr/local/apr -with-apr-util=/usr/local/apr
$ make
$ make install

enable-mods-shared="all ssl proxy" というオプションを指定して、明示する必要がない全てのモジュールを有効にしています。また、明示が必要なモジュールとしてsslとproxyを指定しました。

このあたりは、利用する環境に合わせた設定になると思います。