Syntax Error.

[Sy] Amazon Linux に yum を使って Apache(httpd) 2.4 をインストールする方法

2016/10/12 (更新: 2016/10/15)

Amazon Linux(EC2インスタンス)で Apache(httpd) を普通に yum でインストールすると、2016年10月時点では 2.2系がインストールされますが、 2.4系を使いたい場合も簡単にインストールできるのでその手順についてです。

環境

  • サーバ:AWS EC2インスタンス (t2.nano)
  • OS:Amazon Linux (AMI release 2016.09)
⇒ [Sy] Amazon Linux のバージョンを確認する方法 | Syntax Error.

※この記事では、Apache(httpd) のことを httpd と表記します。

間違えて 2.2系をインストールしちゃった場合の対処

その前に、もし間違えて 2.2系をインストールしちゃった場合(もしくは初めから古めのバージョンがインストールされていた場合)は、一度アンインストールしておきます。

※まだ httpd のインストールをしていない場合は、この部分は飛ばしてください!!

すでにインストールされている httpd のバージョンを調べたいときは、以下のようにするとわかります。

$ httpd -version
Server version: Apache/2.2.31 (Unix)
Server built:   Jul 19 2016 00:11:31

ではアンインストールを実行します。

$ sudo yum remove -y httpd

アンインストールが完了したら、whichコマンドを使ってPATHが通っているディレクトリのどこにも httpd が見つからないことを確認します。

$ which httpd
/usr/bin/which: no httpd in (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/ec2-user/.local/bin:/home/ec2-user/bin)

no httpd とあるように、どこにも httpd が見つからなかったようなので、これでアンインストールは無事終わりです。

が、ここで注意すべきことがあります!

順番が前後しますが、httpdだけをアンインストールした状態で、2.4系のパッケージ(httpd24)をインストールしようとすると、以下のようなエラーがおきます。

(httpd2.4系をインストールしようとすると・・・)
$ sudo yum install -y httpd24
・
・
・
---> パッケージ httpd24-tools.x86_64 0:2.4.23-1.66.amzn1 を インストール
--> 衝突を処理しています: httpd24-tools-2.4.23-1.66.amzn1.x86_64 は httpd-tools < 2.4.23 と衝突しています
--> 依存性解決を終了しました。
エラー: httpd24-tools conflicts with httpd-tools-2.2.31-1.8.amzn1.x86_64
 問題を回避するために --skip-broken を用いることができます。
 これらを試行できます: rpm -Va --nofiles --nodigest

httpd-toolsという依存関係のあるパッケージが残っていて、2.2系と2.4系のhttpd-toolsが衝突(コンフリクト)を起こしてしまってエラーになっているということですね。

ですので、httpd-toolsもアンインストールしておく必要があります。

$ sudo yum remove -y httpd-tools

これでOKです。次へ進みましょう。

2.4系をインストール

それでは httpd 2.4系をインストールしていきます。ただ、最初に書いたとおり、普通にsudo yum install -y httpdとしてしまうと、2.2系がインストールされてしまいます。

そこで、httpd24という文字で yum のパッケージを検索してみましょう。

$ yum list | grep httpd24
httpd24.x86_64                          2.4.23-1.66.amzn1              amzn-main
httpd24-devel.x86_64                    2.4.23-1.66.amzn1              amzn-main
httpd24-manual.noarch                   2.4.23-1.66.amzn1              amzn-main
httpd24-tools.x86_64                    2.4.23-1.66.amzn1              amzn-main

httpd24.x86_64というパッケージがあるのがわかります。これが httpd 2.4系のパッケージです。

ということで、httpd24のインストールを実行します。

$ sudo yum install -y httpd24
・
・
・
インストール:
  httpd24.x86_64 0:2.4.23-1.66.amzn1

依存性関連をインストールしました:
  httpd24-tools.x86_64 0:2.4.23-1.66.amzn1

完了しました!

先程問題になったhttpd-toolsの2.4系のパッケージも合わせてインストールしてくれてるのがわかります。

最後にバージョンを確認してみます。

$ httpd -version
Server version: Apache/2.4.23 (Amazon)
Server built:   Jul 29 2016 21:42:17

無事インストール完了です!

起動確認

最後に起動を確認して終わります。

$ sudo service httpd start
Starting httpd:                                            [  OK  ]

http://[サーバのIPアドレス]にアクセスし、Apacheのデフォルトページが表示されればOKです!

関連記事