環境
今回、インストールを行った環境は、以下の通りです。
- OS:CentOS 6.7
インストールするものは、以下です。
ソースファイルのダウンロード
httpd のソースファイルをwgetで取得してきます。 また、インストールする前提として、apr(Apache Portable Runtime) と PCRE(Perl Compatible Regular Expressions) が必要となりますので、こちらのソースファイルもwgetで取得しておきます。
今回は、「/usr/local/src」ディレクトリにソースファイルを保存しておきます。
[bash]# cd /usr/local/src
wget http://ftp.tsukuba.wide.ad.jp/software/apache/apr/apr-1.5.2.tar.gz
wget http://ftp.yz.yamagata-u.ac.jp/pub/network/apache/apr/apr-util-1.5.4.tar.gz
wget http://downloads.sourceforge.net/project/pcre/pcre/8.39/pcre-8.39.tar.gz
wget http://ftp.tsukuba.wide.ad.jp/software/apache/httpd/httpd-2.2.31.tar.gz
[/bash]
インストール
ソースファイルをダウンロードしたら、展開・インストールしましょう。 依存関係がありますので、以下の順序で進めます。
apr のインストール
[bash]# tar zxvf apr-1.5.2.tar.gz
cd apr-1.5.2
./configure --prefix=/usr/local/apr-1.5.2
make
make test
make install
cd /usr/local
ln -s apr-1.5.2 apr[/bash]
「rm: cannot remove 'libtoolT': No such file or directory」
configure実行時に「rm: cannot remove 'libtoolT': No such file or directory」とエラーが表示されて止まってしまう場合は、configureファイルの内容を修正する必要があります。
configureファイルの30206行目を以下のように修正してください。
[bash] $RM "$cfgfile" ↓ $RM -f "$cfgfile" [/bash]
configureファイルを修正したら、改めてconfigureを実行してください。
apr-util のインストール
[bash]# cd /usr/local/src
tar zxvf apr-util-1.5.4.tar.gz
cd apr-util-1.5.4
./configure --prefix=/usr/local/apr-util-1.5.4 --with-apr=/usr/local/apr
make
make test
make install
cd /usr/local
ln -s apr-util-1.5.4 apr-util[/bash]
pcre のインストール
[bash]# cd /usr/local/src
tar zxvf pcre-8.39
cd pcre-8.39
./configure
make
make test
make install[/bash]
httpdのインストール
httpdのビルドには、いろいろなオプションがあります。 利用したい機能に必要なモジュールを指定していく必要があるのですが、モジュールの数は非常に多く個別に選択するとなると大変です。 全てビルドしてしまって、あとから不要なものを無効化することもできます。 全部ビルドのオプションは以下のページに記載があります。
http://httpd.apache.org/docs/2.2/ja/programs/configure.html Caveat: --enable-mods-shared=all does not actually build all modules. To build all modules then, one might use: ./configure \ --with-ldap \ --enable-mods-shared="all ssl ldap cache proxy authn_alias mem_cache file_cache authnz_ldap charset_lite dav_lock disk_cache"
今回は、all と ssl を指定することにしました。個人的には、それ以外は使わない気がしますので。 必要になったときに、ビルドしなおすことにします。
なお、システムのライブラリのインストール状況によりますが、以下のパッケージを入れておかないとconfigureでエラーになります。
[bash]# yum install zlib zlib-devel
yum install openssl openssl-devel[/bash]
では、インストールしましょう。
[bash]
cd /usr/local/src
tar zxvf httpd-2.2.31.tar.gz
cd httpd-2.2.31
./configure --prefix=/usr/local/apache-2.2.31 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-mods-shared="all ssl" --enable-so
make
make install
cd /usr/local
ln -s apache-2.2.31 apache2
[/bash]
インストール後の確認
モジュール関連の状態
インストールした直後の状態で、どんなモジュールがロードされるのか確認したところ、以下のような状態でした。
[bash]# /usr/local/apache2/bin/httpd -M Loaded Modules: core_module (static) mpm_prefork_module (static) http_module (static) so_module (static) authn_file_module (shared) authn_dbm_module (shared) authn_anon_module (shared) authn_dbd_module (shared) authn_default_module (shared) authz_host_module (shared) authz_groupfile_module (shared) authz_user_module (shared) authz_dbm_module (shared) authz_owner_module (shared) authz_default_module (shared) auth_basic_module (shared) auth_digest_module (shared) dbd_module (shared) dumpio_module (shared) reqtimeout_module (shared) ext_filter_module (shared) include_module (shared) filter_module (shared) substitute_module (shared) deflate_module (shared) log_config_module (shared) log_forensic_module (shared) logio_module (shared) env_module (shared) mime_magic_module (shared) cern_meta_module (shared) expires_module (shared) headers_module (shared) ident_module (shared) usertrack_module (shared) unique_id_module (shared) setenvif_module (shared) version_module (shared) ssl_module (shared) mime_module (shared) dav_module (shared) status_module (shared) autoindex_module (shared) asis_module (shared) info_module (shared) cgi_module (shared) dav_fs_module (shared) vhost_alias_module (shared) negotiation_module (shared) dir_module (shared) imagemap_module (shared) actions_module (shared) speling_module (shared) userdir_module (shared) alias_module (shared) rewrite_module (shared) Syntax OK[/bash]
モジュールもちゃんとビルドされていました。いい感じです。
[bash]
ls /usr/local/apache2/modules
httpd.exp mod_cern_meta.so mod_log_forensic.so mod_actions.so mod_cgi.so mod_logio.so mod_alias.so mod_dav.so mod_mime.so mod_asis.so mod_dav_fs.so mod_mime_magic.so mod_auth_basic.so mod_dbd.so mod_negotiation.so mod_auth_digest.so mod_deflate.so mod_reqtimeout.so mod_authn_anon.so mod_dir.so mod_rewrite.so mod_authn_dbd.so mod_dumpio.so mod_setenvif.so mod_authn_dbm.so mod_env.so mod_speling.so mod_authn_default.so mod_expires.so mod_ssl.so mod_authn_file.so mod_ext_filter.so mod_status.so mod_authz_dbm.so mod_filter.so mod_substitute.so mod_authz_default.so mod_headers.so mod_unique_id.so mod_authz_groupfile.so mod_ident.so mod_userdir.so mod_authz_host.so mod_imagemap.so mod_usertrack.so mod_authz_owner.so mod_include.so mod_version.so mod_authz_user.so mod_info.so mod_vhost_alias.so mod_autoindex.so mod_log_config.so [/bash]
では、続いて設定ファイル(httpd.conf)の作成を行います。