インストール

環境

今回、インストールを行った環境は、以下の通りです。

インストールするものは、以下です。

  • httpd:2.2.31
  • apr:1.5.2
  • apr-util:1.5.4
  • pcre:8.37

 

ソースファイルのダウンロード

httpd のソースファイルをwgetで取得してきます。 また、インストールする前提として、apr(Apache Portable Runtime) と PCRE(Perl Compatible Regular Expressions) が必要となりますので、こちらのソースファイルもwgetで取得しておきます。

それぞれ、以下のURIから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]

 

インストール

ソースファイルをダウンロードしたら、展開・インストールしましょう。 依存関係がありますので、以下の順序で進めます。

  1. apr
  2. apr-util
  3. pcre ( これは httpd より前にインストールすればOKです)
  4. httpd

 

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)の作成を行います。

http://tech-wiki.pomme-verte.net/?p=17