Apache2.4 ソースインストール

パッケージ(yum)で入れればOKな世代(?)ですが、既にソースで動いているシステムを触らなければいけないこともあります。
ソースインストールはやったことがないな~ということで、今回はApache(httpd-2.4.23)のソースインストールをやっていきます。

なお、トライアル&エラーで回り道をしながらインストールします。
回り道をせず一発でインストールしたい場合は最下段「エラー無しでやる方法」をご覧下さい。

まずはソースファイルをダウンロード→解凍します。

インストール先を/usr/local/apache2としてconfigureスクリプトを実行します。

すると下記のように「APRが無い」というエラーが発生しました。

Apacheに先んじてAPRをインストールします。
ソースファイルをダウンロード→解凍→configure。

すると今度はCコンパイラが無いと言われます。

今回はあくまで「Apacheの」ソースインストールなので、細かい部分はyumでやってしまいます。
Cコンパイラ(gcc)をインストールしましょう。

再度APRをconfigureしてみましょう。
configureが正常終了したらコンパイル(make)→インストール(make install)。

これでAPRはインストールできたはずなので、再度Apacheをconfigureしてみます。

次はARR-utilが無いというエラーが表示されました。

APR-utilをダウンロード→解凍→configureします。

configureに際して、次は下記のようなエラーメッセージが表示されました。

–withaprオプションでARPのあるディレクトリを指定してくれとのことなので、その通りにconfigureします。
configureが正常終了したらコンパイル(make)→インストール(make install)。

これでARP-utilも入ったはずなので再々度Apacheをconfigureしてみます。

今度はPCREが足りないと言われてしまいました。

PCREをダウンロード→解凍→configure→コンパイル(make)→インストール(make install)。

PCREのインストールされている場所を指定して再々々度Apacheをconfigureしてみます。

コンパイル(make)の時点で下記エラーが発生しました。

下記サイトによると、どうやらPCREはバージョン8までしかダメだそう。

Re: Install Apache 2.4.20 on Solaris 10 — Error “ld: fatal: file ab.o: wrong ELF class: ELFCLASS32”

名残惜しいですがpcre2-10は消します。

代わりにバージョン8の最新版(pcre-8.39)をインストールしてみる。

configureで下記エラーが発生しました。

C++コンパイラ(gcc-c++)が無いと言われたのでインストールします。

再度PCREをconfigureします。
正常終了したらコンパイル(make)→インストール(make install)。

どうやらPCRE(8.39)が正常にインストールできたようです。

ここまで回り道をしていると本来の目的を忘れそうになりますが…。
PCREのインストールされている場所(変わりました)を指定して再々々々度Apacheをconfigureしてみます。
正常終了したらコンパイル(make)→インストール(make install)。

どうやら、ようやくApacheがインストールされたようです。

Apache起動スクリプトをコピーで作成します。

また、Apache起動・停止時にファイルが無い等と言われてしまうので起動スクリプトを編集しておきます。

パッケージインストールのようにapacheユーザでhttpdプロセスを実行したい場合:
confファイルへの記載と、apacheユーザの追加(※)を行います。
※GID/UIDもパッケージインストール時と合わせています。

ではApacheを起動して、

ブラウザでアクセスしてみましょう。

下記のように It works! と表示されます。

it_woks

Webサーバ機能が使えるようになったということで、これにてひと段落。

最後に自動起動設定も加えて、完了!

■エラー無しでやる方法

・APRインストール

・APR-utilインストール

・PCREインストール

・Apacheインストール

・Apache:起動スクリプト、設定ファイル調整

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.