CentOS6.7 64bitにApache2.4.16をRPMからインストール

CentOS6.7 64bitにApache2.4.16をRPMからインストール

CentOS6.7の64bit版にApache2.4.16をRPMからインストールする方法を以下に示します。

※CentOS7 64bitをご使用の場合は、当サイトのCentOS7 64bitにApache2.4をRPMからインストールのページをご覧ください。

CentOS6.7の標準リポジトリからインストールできるApacheのバージョンは2.2.15のため、RPMはApacheの公式サイトからダウンロードしたソースを元に作成していきます。

依存関係にあるパッケージで、CentOS6.7の標準リポジトリからインストールできるものについては、特別なものでない限り省略しています。

以下の各コマンドで、プロンプトが「#」で開始しているものはrootユーザーでの実行、「$」で開始しているものは一般ユーザーでの実行となります。

ここでRPMの作成に使用しているrpmbuildコマンドについては、当サイトのCentOS6 64bit rpmbuildコマンドによるRPMの作成のページもご覧ください。

APR1.5.2のインストール

Apache2.4.16のRPMを作成するには、依存関係となるapr-develのバージョン1.4.0以上が必要となります。

CentOS6.7の標準リポジトリからインストールできるapr-develのバージョンは1.3.9のため、APRの公式サイトからAPR1.5.2のソースをダウンロードしてRPMを作成し、インストールを行います。

APR1.5.2のソースをダウンロード

以下のコマンドを実行して、APR1.5.2のソースのダウンロードを行います。

※ダウンロード元のURLは、APRの公式サイトから遷移できるアーカイブページにリンクがあります。

(新しいバージョンがリリースされた際にリンク切れにならないよう、ダウンロードページではなく、アーカイブページを使用するようにしています。)

$ wget http://archive.apache.org/dist/apr/apr-1.5.2.tar.bz2

APR1.5.2のRPMを作成

以下のコマンドを実行して、APR1.5.2のRPMの作成を行います。

$ rpmbuild -tb --clean apr-1.5.2.tar.bz2

以下のRPMが作成されます。

  • apr-1.5.2-1.x86_64.rpm
  • apr-devel-1.5.2-1.x86_64.rpm
  • apr-debuginfo-1.5.2-1.x86_64.rpm

APR1.5.2のインストール

以下のコマンドを実行して、APR1.5.2のインストールを行います。

apr-develをインストールするにはaprが必要となるため、一緒にインストールを行います。

# rpm -Uvh apr-1.5.2-1.x86_64.rpm apr-devel-1.5.2-1.x86_64.rpm

freetds-develのインストール

次に示すAPR-util1.5.4のRPMを作成するには、依存関係となるfreetds-develが必要となります。

CentOS6.7の標準リポジトリにはfreetds-develが存在しないため、ここではEPELのリポジトリからインストールを行います。

以下のコマンドを実行して、freetds-develのインストールを行います。

※EPELのリポジトリの使用方法については、当サイトのCentOS6 64bitのyumリポジトリにEPELを追加のページをご覧ください。

# yum --enablerepo=epel install freetds-devel

APR-util1.5.4のインストール

Apache2.4.16のRPMを作成するには、依存関係となるapr-util-develのバージョン1.4.0以上が必要となります。

CentOS6.7の標準リポジトリからインストールできるapr-util-develのバージョンは1.3.9のため、APRの公式サイトからAPR-util1.5.4のソースをダウンロードしてRPMを作成し、インストールを行います。

APR-util1.5.4のソースをダウンロード

以下のコマンドを実行して、APR-util1.5.4のソースのダウンロードを行います。

※ダウンロード元のURLは、APRの公式サイトから遷移できるアーカイブページにリンクがあります。

(新しいバージョンがリリースされた際にリンク切れにならないよう、ダウンロードページではなく、アーカイブページを使用するようにしています。)

$ wget http://archive.apache.org/dist/apr/apr-util-1.5.4.tar.bz2

APR-util1.5.4のRPMを作成

以下のコマンドを実行して、APR-util1.5.4のRPMの作成を行います。

$ rpmbuild -tb --clean apr-util-1.5.4.tar.bz2

以下のRPMが作成されます。

  • apr-util-1.5.4-1.x86_64.rpm
  • apr-util-devel-1.5.4-1.x86_64.rpm
  • apr-util-dbm-1.5.4-1.x86_64.rpm
  • apr-util-pgsql-1.5.4-1.x86_64.rpm
  • apr-util-mysql-1.5.4-1.x86_64.rpm
  • apr-util-sqlite-1.5.4-1.x86_64.rpm
  • apr-util-freetds-1.5.4-1.x86_64.rpm
  • apr-util-odbc-1.5.4-1.x86_64.rpm
  • apr-util-ldap-1.5.4-1.x86_64.rpm
  • apr-util-openssl-1.5.4-1.x86_64.rpm
  • apr-util-nss-1.5.4-1.x86_64.rpm
  • apr-util-debuginfo-1.5.4-1.x86_64.rpm

APR-util1.5.4のインストール

以下のコマンドを実行して、APR-util1.5.4のインストールを行います。

apr-util-develをインストールするにはapr-utilが必要となるため、一緒にインストールを行います。

# rpm -Uvh apr-util-1.5.4-1.x86_64.rpm apr-util-devel-1.5.4-1.x86_64.rpm

distcache-develのインストール

Apache2.4.16のRPMを作成するには、依存関係となるdistcache-develが必要となります。

CentOS6.7の標準リポジトリにはdistcache-develが存在しないため、ここではFedoraのdistcacheのSRPMをダウンロードしてRPMを作成し、インストールを行います。

distcacheのSRPMをダウンロード

以下のコマンドを実行して、distcacheのSRPMのダウンロードを行います。

※ダウンロード元のURLは、Fedoraのアーカイブページにリンクがあります。

$ wget https://archive.fedoraproject.org/pub/archive/fedora/linux/releases/18/Everything/source/SRPMS/d/distcache-1.4.5-23.src.rpm

distcacheのRPMを作成

以下のコマンドを実行して、distcacheのRPMの作成を行います。

$ rpmbuild --rebuild --clean distcache-1.4.5-23.src.rpm

以下のRPMが作成されます。

  • distcache-1.4.5-23.x86_64.rpm
  • distcache-devel-1.4.5-23.x86_64.rpm
  • distcache-debuginfo-1.4.5-23.x86_64.rpm

distcache-develのインストール

以下のコマンドを実行して、distcache-develのインストールを行います。

distcache-develをインストールするにはdistcacheが必要となるため、一緒にインストールを行います。

# rpm -Uvh distcache-1.4.5-23.x86_64.rpm distcache-devel-1.4.5-23.x86_64.rpm

mailcapのインストール

Apache2.4.16のインストールを行うには、依存関係となる/etc/mime.typesが必要となります。

/etc/mime.typesが含まれているパッケージは、以下のコマンドで確認できます。

# yum provides /etc/mime.types :(略) mailcap-2.1.31-2.el6.noarch : Helper application and MIME type associations for file types リポジトリー : base 一致 : ファイル名 : /etc/mime.types

この結果により/etc/mime.typesは、mailcapに含まれていることが分かります。

以下のコマンドを実行して、mailcapのインストールを行います。

# yum install mailcap

Apache2.4.16のインストール

Apacheの公式サイトからApache2.4.16のソースをダウンロードしてRPMを作成し、インストールを行います。

Apache2.4.16のソースをダウンロード

以下のコマンドを実行して、Apache2.4.16のソースのダウンロードを行います。

※ダウンロード元のURLは、Apacheの公式サイトから遷移できるアーカイブページにリンクがあります。

(新しいバージョンがリリースされた際にリンク切れにならないよう、ダウンロードページではなく、アーカイブページを使用するようにしています。)

$ wget http://archive.apache.org/dist/httpd/httpd-2.4.16.tar.bz2

Apache2.4.16のRPMを作成

以下のコマンドを実行して、Apache2.4.16のRPMの作成を行います。

$ rpmbuild -tb --clean httpd-2.4.16.tar.bz2

以下のRPMが作成されます。

  • httpd-2.4.16-1.x86_64.rpm
  • httpd-devel-2.4.16-1.x86_64.rpm
  • httpd-manual-2.4.16-1.x86_64.rpm
  • httpd-tools-2.4.16-1.x86_64.rpm
  • mod_authnz_ldap-2.4.16-1.x86_64.rpm
  • mod_lua-2.4.16-1.x86_64.rpm
  • mod_proxy_html-2.4.16-1.x86_64.rpm
  • mod_socache_dc-2.4.16-1.x86_64.rpm
  • mod_ssl-2.4.16-1.x86_64.rpm
  • httpd-debuginfo-2.4.16-1.x86_64.rpm

Apache2.4.16のインストール

以下のコマンドを実行して、Apache2.4.16のインストールを行います。

# rpm -Uvh httpd-2.4.16-1.x86_64.rpm

別途PHPのRPMを作成する場合等、httpd-develが必要となるときは、以下のコマンドを実行して、httpd-develのインストールを行います。

# rpm -Uvh httpd-devel-2.4.16-1.x86_64.rpm

インストール後の設定

Apacheのサービスを起動

以下のコマンドを実行して、Apacheのサービスを起動することができます。

# service httpd start

尚、サービス名は以下のコマンドで確認することができます。

# rpm -ql httpd | grep init.d :(略) /etc/rc.d/init.d/httpd

Apacheのサービスを自動で起動させる

Apacheのサービスは、インストール時点では自動で起動するようになっていません。

自動起動設定の状態は、以下のコマンドで確認できます。

# chkconfig --list httpd httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off

自動起動する設定になっていない場合、以下のコマンドで自動で起動するように設定できます。

# chkconfig httpd on

自動で起動するように設定した後の状態は、以下のようになります。

# chkconfig --list httpd httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

自動起動しないようにしたい場合は、以下のコマンドを実行します。

# chkconfig httpd off

MPMの変更

ここで作成したRPMからインストールしたApache2.4.16では、デフォルトで使用されるMPMはeventになっています。

PHPを使用する場合等、使用するMPMをpreforkにしたい場合は、Apacheの設定ファイル「/etc/httpd/conf/httpd.conf」で、MPMのモジュールを読み込む設定を以下のように変更します。

LoadModule mpm_event_module lib64/httpd/modules/mod_mpm_event.so ↓変更 LoadModule mpm_prefork_module lib64/httpd/modules/mod_mpm_prefork.so

使用するMPMをworkerにしたい場合は、以下のように変更します。

LoadModule mpm_event_module lib64/httpd/modules/mod_mpm_event.so ↓変更 LoadModule mpm_worker_module lib64/httpd/modules/mod_mpm_worker.so

尚、これらのモジュールはhttpdに含まれており、モジュールのパスは以下のコマンドで確認することができます。

# rpm -ql httpd | grep mpm :(略) /usr/lib64/httpd/modules/mod_mpm_prefork.so /usr/lib64/httpd/modules/mod_mpm_worker.so :(略)

httpd.confで、「ServerRoot ‘/usr’」と設定されているため、「/usr」以下でのパス指定が行えるようになっています。

現在有効になっているMPMは、以下のコマンドで確認することができます。

# httpd -V :(略) Server MPM: event :(略)

HTTPレスポンスヘッダーに出力されるサーバー情報を制限

ApacheでSSL、PHPを使用している場合、デフォルトではHTTPレスポンスヘッダーにサーバー情報が、以下のように出力されます。

Server: Apache/2.4.16 (Unix) OpenSSL/1.0.1e-fips PHP/5.6.4

セキュリティも考慮して、出力されるサーバー情報を制限したい場合、Apacheの設定ファイル「/etc/httpd/conf/httpd.conf」に、以下の設定を行います。

ServerTokens Prod

これにより、HTTPレスポンスヘッダーに出力されるサーバー情報は、以下のようになります。

Server: Apache

Apacheへの外部からのアクセスを許可

HTTPでの外部からのアクセスは、iptablesによってデフォルトでは拒否されています。

iptablesによるHTTPでの外部アクセス許可の設定については、当サイトのCentOS6 64bit iptablesによるアクセス制御のページをご覧ください。

独自に作成したディレクトリを公開

ドキュメントルートの変更やエイリアスの使用で、独自に作成したディレクトリを公開したい場合に、chownやchmodを使用してアクセス権の設定を行ってもアクセスが拒否されてしまうときは、SELinuxによるアクセス制御が有効になっていることが原因の可能性があります。

SELinuxによるアクセス制御については、当サイトのCentOS6 64bit SELinuxによるアクセス制御のページをご覧ください。

Apacheから外部のデータベースへのアクセスを許可

PHPから外部のMySQLへ接続を行う際に、以下のようなエラーになってしまう場合、

(PHPからローカルのMySQLへの接続、mysqlコマンドを使用しての外部のMySQLへの接続は可能。)

SQLSTATE[HY000] [2002] Permission denied

SELinuxによるアクセス制御が有効になっていることが原因の可能性があります。

SELinuxによるApacheから外部のデータベースへのアクセス許可の設定については、当サイトのCentOS6 64bit SELinuxによるアクセス制御のページをご覧ください。

SSLを使用する場合

Apacheと送受信するデータは、SSLを使用して暗号化することができます。

※SSLの使用については、当サイトのCentOS6 64bit Apache2.4 SSLを使用のページをご覧ください。

SSI(Server Side Includes)を使用する場合

HTML内でヘッダー、サイドバー、フッター等の各ページで共通する部分を別ファイルで作成し、各ページのファイルから読み込めるようにする機能として、SSI(Server Side Includes)というものがあります。

また、Apache2.2と2.4では、SSIの構文に変更されているものもあります。

※SSI(Server Side Includes)の使用については、当サイトのCentOS6 64bit Apache2.4 Server Side Includesを使用のページをご覧ください。

Apache2.4.16のインストールについては、以上です。