Apache の新しい安定版バージョン 2.4.1 がリリースされた。

Apache HTTP Server 2.4.1 Released

The Apache Software Foundation and the Apache HTTP Server Project are pleased to announce the GA release of version 2.4.1 of the Apache HTTP Server. This version of Apache HTTP Server is the first GA release of the new 2.4.x branch.

Apache HTTP Server Project
Forest Hill, MD – 21 February 2012 – The Apache Software Foundation (ASF), the all-volunteer developers, stewards, and incubators of nearly 150 Open Source projects and initiatives, today announced version 2.4 of the award-winning Apache HTTP Server. Celebrating its 17th anniversary with an all-time record of nearly 400 million Websites powered worldwide[1], the Apache HTTP Server has been the most popular Web server on the Internet since April 1996.

The Apache Software Foundation Celebrates the 17th Anniversary of the Apache HTTP Server with the release of v2.4 : The Apache Software Foundation Blog
Apache HTTP Server の新しい安定版である 2.4 系列の最初の GA リリース、2.4.1 がリリースされました。

(GA = General Availability あるいは General Acceptance)

・複数の MPM を動的に読み込み可能に
・OCSP (オンライン証明書状態プロトコル) のサポートの大幅な強化
・スクリプト言語 Lua を組み込むモジュール (mod_lua)
・動的なリバースプロキシの設定
・認証、認可の改良
・FastCGI プロキシ
・新しい Expression (式) のパーサ
・小さなデータオブジェクトをキャッシュする API の追加

Apache HTTP Server 2.4.1 がリリースされました — Apache JP

Apache 2.4 と APR 1.4 のインストール

Apache 2.3 からは Apache Portable Runtime (APR) 1.4 が必要らしい。
$ brew search しても見つからなかったので、APR 1.4 をソースコードからデフォルト設定でインストールする。


$ wget http://www.apache.org/dist/apr/apr-1.4.6.tar.gz
$ tar zxvf ./apr-1.4.6.tar.gz
$ cd apr-1.4.6
$ ./configure
$ make
$ sudo make install

APR 1.4 のインストール先は /usr/local/apr/ になる。

続いて、 Apache Portable Runtime Utility (APR-util) 1.4 のインストール。これも Apache をビルドするために必要なライブラリ。


$ wget http://www.apache.org/dist/apr/apr-util-1.4.1.tar.gz
$ tar zxvf ./apr-util-1.4.1.tar.gz 
$ cd apr-util-1.4.1
$ ./configure --with-apr=/usr/local/apr
$ make
$ sudo make install

APR-util 1.4 は APR 1.4 と同じく /usr/local/apr/ にインストールされる。

そして、 Apache 2.4 をインストール。
インストール可能な DSO モジュールを --enable-mods-shared=all オプションで全部入り。


$ wget http://www.apache.org/dist/httpd/httpd-2.4.1.tar.gz
$ tar zxvf ./httpd-2.4.1.tar.gz
$ cd ./httpd-2.4.1
$ ./configure --enable-mods-shared=all --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr
$ make

Apache 2.4 の起動。

設定ファイルを何もいじらなくても起動は可能。


$ sudo /usr/local/apache2/bin/apachectl start

これで無事に Apache HTTP Server が起動して、 http://localhost/ にアクセスすると "It works!" と表示される。

以下、蛇足的なあれこれ。

--enable-mods-shared のパラメータ

Apache 2.2 のときは most と all しか指定できなかったけど、 Apache 2.4 ではパラメータが増えてる。


$ ./configure --help
(中略)
--enable-modules=MODULE-LIST
  Space-separated list of modules to enable | "all" | "most" | "few" | "none" | "reallyall"
--enable-mods-shared=MODULE-LIST
  Space-separated list of shared modules to enable | "all" | "most" | "few" | "reallyall"
--enable-mods-static=MODULE-LIST
  Space-separated list of static modules to enable | "all" | "most" | "few" | "reallyall"

PCREが無くてエラー

./configure したときに PCRE がみつからなくてエラー発生。


$ ./configure --enable-mods-shared=all
 
checking for pcre-config... false
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/

brew で PCRE をインストールして解決。


$ brew search pcre
pcre	pcre++
 
$ brew install pcre
==> Downloading ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.20.
######################################################################## 100.0%
==> ./configure --prefix=/usr/local/Cellar/pcre/8.20 --enable-utf8 --enable-unic
==> make test
==> make install
/usr/local/Cellar/pcre/8.20: 126 files, 3.0M, built in 69 seconds

Ref. PCRE - Perl Compatible Regular Expressions

Apache Portable Runtime (APR) 1.4 が無くてエラー

make 時にエラー発生。


$ make
(中略)
Undefined symbols:
  "_apr_file_link", referenced from:
      _post_rotate in rotatelogs.o
ld: symbol(s) not found
collect2: ld returned 1 exit status

Apache Portable Runtime Utility (APR-util) 1.4 が無くてエラー

make 時にエラー発生。


$ make
(中略)
exports.c:1894: error: redefinition of 'ap_hack_apr_allocator_create'
exports.c:886: error: previous definition of 'ap_hack_apr_allocator_create' was here
(中略)
exports.c:2518: error: redefinition of 'ap_hack_apr_version_string'
exports.c:1850: error: previous definition of 'ap_hack_apr_version_string' was here
make[2]: *** [exports.lo] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all-recursive] Error 1

インストールした Apache 2.4.1 の諸情報


$ /usr/local/apache2/bin/httpd -V
Server version: Apache/2.4.1 (Unix)
Server built:   Feb 22 2012 12:51:37
Server's Module Magic Number: 20120211:0
Server loaded:  APR 1.4.6, APR-UTIL 1.4.1
Compiled using: APR 1.4.6, APR-UTIL 1.4.1
Architecture:   64-bit
Server MPM:     event
  threaded:     yes (fixed thread count)
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/usr/local/apache2"
 -D SUEXEC_BIN="/usr/local/apache2/bin/suexec"
 -D DEFAULT_PIDLOG="logs/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

インストールした DSO モジュール一覧


$ grep LoadModule /usr/local/apache2/conf/httpd.conf
# have to place corresponding `LoadModule' lines at this location so the
# LoadModule foo_module modules/mod_foo.so
LoadModule authn_file_module modules/mod_authn_file.so
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
#LoadModule authn_anon_module modules/mod_authn_anon.so
#LoadModule authn_dbd_module modules/mod_authn_dbd.so
#LoadModule authn_socache_module modules/mod_authn_socache.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_user_module modules/mod_authz_user.so
#LoadModule authz_dbm_module modules/mod_authz_dbm.so
#LoadModule authz_owner_module modules/mod_authz_owner.so
#LoadModule authz_dbd_module modules/mod_authz_dbd.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule auth_basic_module modules/mod_auth_basic.so
#LoadModule auth_form_module modules/mod_auth_form.so
#LoadModule auth_digest_module modules/mod_auth_digest.so
#LoadModule allowmethods_module modules/mod_allowmethods.so
#LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule cache_module modules/mod_cache.so
#LoadModule cache_disk_module modules/mod_cache_disk.so
#LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
#LoadModule socache_dbm_module modules/mod_socache_dbm.so
#LoadModule socache_memcache_module modules/mod_socache_memcache.so
#LoadModule watchdog_module modules/mod_watchdog.so
#LoadModule dbd_module modules/mod_dbd.so
#LoadModule dumpio_module modules/mod_dumpio.so
#LoadModule echo_module modules/mod_echo.so
#LoadModule buffer_module modules/mod_buffer.so
#LoadModule data_module modules/mod_data.so
#LoadModule ratelimit_module modules/mod_ratelimit.so
LoadModule reqtimeout_module modules/mod_reqtimeout.so
#LoadModule ext_filter_module modules/mod_ext_filter.so
#LoadModule request_module modules/mod_request.so
#LoadModule include_module modules/mod_include.so
LoadModule filter_module modules/mod_filter.so
#LoadModule reflector_module modules/mod_reflector.so
#LoadModule substitute_module modules/mod_substitute.so
#LoadModule sed_module modules/mod_sed.so
#LoadModule charset_lite_module modules/mod_charset_lite.so
#LoadModule deflate_module modules/mod_deflate.so
#LoadModule xml2enc_module modules/mod_xml2enc.so
#LoadModule proxy_html_module modules/mod_proxy_html.so
LoadModule mime_module modules/mod_mime.so
LoadModule log_config_module modules/mod_log_config.so
#LoadModule log_debug_module modules/mod_log_debug.so
#LoadModule log_forensic_module modules/mod_log_forensic.so
#LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
#LoadModule mime_magic_module modules/mod_mime_magic.so
#LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so
#LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule unique_id_module modules/mod_unique_id.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule version_module modules/mod_version.so
#LoadModule remoteip_module modules/mod_remoteip.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
#LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
#LoadModule proxy_fdpass_module modules/mod_proxy_fdpass.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_express_module modules/mod_proxy_express.so
#LoadModule session_module modules/mod_session.so
#LoadModule session_cookie_module modules/mod_session_cookie.so
#LoadModule session_dbd_module modules/mod_session_dbd.so
#LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
#LoadModule slotmem_plain_module modules/mod_slotmem_plain.so
#LoadModule ssl_module modules/mod_ssl.so
#LoadModule dialup_module modules/mod_dialup.so
#LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
#LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
#LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
#LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so
LoadModule unixd_module modules/mod_unixd.so
#LoadModule heartbeat_module modules/mod_heartbeat.so
#LoadModule heartmonitor_module modules/mod_heartmonitor.so
#LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
#LoadModule asis_module modules/mod_asis.so
#LoadModule info_module modules/mod_info.so
#LoadModule cgid_module modules/mod_cgid.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_lock_module modules/mod_dav_lock.so
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
#LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
#LoadModule actions_module modules/mod_actions.so
#LoadModule speling_module modules/mod_speling.so
#LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
#LoadModule rewrite_module modules/mod_rewrite.so

$ ls -la /usr/local/apache2/modules
total 5280
drwxr-xr-x  100 root  admin    3400  2 22 12:55 .
drwxr-xr-x   14 root  admin     476  2 22 12:55 ..
-rw-r--r--    1 hoge  staff   12499  2 22 12:51 httpd.exp
-rwxr-xr-x    1 root  admin   15040  2 22 12:55 mod_access_compat.so
-rwxr-xr-x    1 root  admin   10416  2 22 12:55 mod_actions.so
-rwxr-xr-x    1 root  admin   16472  2 22 12:55 mod_alias.so
-rwxr-xr-x    1 root  admin    9712  2 22 12:55 mod_allowmethods.so
-rwxr-xr-x    1 root  admin    9792  2 22 12:55 mod_asis.so
-rwxr-xr-x    1 root  admin   14944  2 22 12:55 mod_auth_basic.so
-rwxr-xr-x    1 root  admin   37736  2 22 12:55 mod_auth_digest.so
-rwxr-xr-x    1 root  admin   27664  2 22 12:55 mod_auth_form.so
-rwxr-xr-x    1 root  admin    9840  2 22 12:55 mod_authn_anon.so
-rwxr-xr-x    1 root  admin   16024  2 22 12:55 mod_authn_core.so
-rwxr-xr-x    1 root  admin   15408  2 22 12:55 mod_authn_dbd.so
-rwxr-xr-x    1 root  admin   10632  2 22 12:55 mod_authn_dbm.so
-rwxr-xr-x    1 root  admin   10568  2 22 12:55 mod_authn_file.so
-rwxr-xr-x    1 root  admin   21800  2 22 12:55 mod_authn_socache.so
-rwxr-xr-x    1 root  admin   27208  2 22 12:55 mod_authz_core.so
-rwxr-xr-x    1 root  admin   15840  2 22 12:55 mod_authz_dbd.so
-rwxr-xr-x    1 root  admin   14904  2 22 12:55 mod_authz_dbm.so
-rwxr-xr-x    1 root  admin   15552  2 22 12:55 mod_authz_groupfile.so
-rwxr-xr-x    1 root  admin   11360  2 22 12:55 mod_authz_host.so
-rwxr-xr-x    1 root  admin   13872  2 22 12:55 mod_authz_owner.so
-rwxr-xr-x    1 root  admin    9720  2 22 12:55 mod_authz_user.so
-rwxr-xr-x    1 root  admin   40736  2 22 12:55 mod_autoindex.so
-rwxr-xr-x    1 root  admin   14736  2 22 12:55 mod_buffer.so
-rwxr-xr-x    1 root  admin   69352  2 22 12:55 mod_cache.so
-rwxr-xr-x    1 root  admin   36424  2 22 12:55 mod_cache_disk.so
-rwxr-xr-x    1 root  admin   41216  2 22 12:55 mod_cgid.so
-rwxr-xr-x    1 root  admin   25144  2 22 12:55 mod_charset_lite.so
-rwxr-xr-x    1 root  admin   10584  2 22 12:55 mod_data.so
-rwxr-xr-x    1 root  admin  112792  2 22 12:55 mod_dav.so
-rwxr-xr-x    1 root  admin   60144  2 22 12:55 mod_dav_fs.so
-rwxr-xr-x    1 root  admin   22760  2 22 12:55 mod_dav_lock.so
-rwxr-xr-x    1 root  admin   22704  2 22 12:55 mod_dbd.so
-rwxr-xr-x    1 root  admin   34768  2 22 12:55 mod_deflate.so
-rwxr-xr-x    1 root  admin   15464  2 22 12:55 mod_dialup.so
-rwxr-xr-x    1 root  admin   15032  2 22 12:55 mod_dir.so
-rwxr-xr-x    1 root  admin   14592  2 22 12:55 mod_dumpio.so
-rwxr-xr-x    1 root  admin   10616  2 22 12:55 mod_echo.so
-rwxr-xr-x    1 root  admin   10312  2 22 12:55 mod_env.so
-rwxr-xr-x    1 root  admin   15632  2 22 12:55 mod_expires.so
-rwxr-xr-x    1 root  admin   27328  2 22 12:55 mod_ext_filter.so
-rwxr-xr-x    1 root  admin   16104  2 22 12:55 mod_file_cache.so
-rwxr-xr-x    1 root  admin   20280  2 22 12:55 mod_filter.so
-rwxr-xr-x    1 root  admin   23592  2 22 12:55 mod_headers.so
-rwxr-xr-x    1 root  admin   10992  2 22 12:55 mod_heartbeat.so
-rwxr-xr-x    1 root  admin   26864  2 22 12:55 mod_heartmonitor.so
-rwxr-xr-x    1 root  admin   55376  2 22 12:55 mod_include.so
-rwxr-xr-x    1 root  admin   28520  2 22 12:55 mod_info.so
-rwxr-xr-x    1 root  admin    9504  2 22 12:55 mod_lbmethod_bybusyness.so
-rwxr-xr-x    1 root  admin    9504  2 22 12:55 mod_lbmethod_byrequests.so
-rwxr-xr-x    1 root  admin    9496  2 22 12:55 mod_lbmethod_bytraffic.so
-rwxr-xr-x    1 root  admin   16808  2 22 12:55 mod_lbmethod_heartbeat.so
-rwxr-xr-x    1 root  admin   36944  2 22 12:55 mod_log_config.so
-rwxr-xr-x    1 root  admin   16752  2 22 12:55 mod_log_debug.so
-rwxr-xr-x    1 root  admin   15688  2 22 12:55 mod_log_forensic.so
-rwxr-xr-x    1 root  admin   10856  2 22 12:55 mod_logio.so
-rwxr-xr-x    1 root  admin   21200  2 22 12:55 mod_mime.so
-rwxr-xr-x    1 root  admin   30256  2 22 12:55 mod_mime_magic.so
-rwxr-xr-x    1 root  admin   36592  2 22 12:55 mod_negotiation.so
-rwxr-xr-x    1 root  admin  104720  2 22 12:55 mod_proxy.so
-rwxr-xr-x    1 root  admin   55776  2 22 12:55 mod_proxy_ajp.so
-rwxr-xr-x    1 root  admin   44648  2 22 12:55 mod_proxy_balancer.so
-rwxr-xr-x    1 root  admin   20504  2 22 12:55 mod_proxy_connect.so
-rwxr-xr-x    1 root  admin   14928  2 22 12:55 mod_proxy_express.so
-rwxr-xr-x    1 root  admin   20552  2 22 12:55 mod_proxy_fcgi.so
-rwxr-xr-x    1 root  admin   10840  2 22 12:55 mod_proxy_fdpass.so
-rwxr-xr-x    1 root  admin   45912  2 22 12:55 mod_proxy_ftp.so
-rwxr-xr-x    1 root  admin   36248  2 22 12:55 mod_proxy_html.so
-rwxr-xr-x    1 root  admin   45648  2 22 12:55 mod_proxy_http.so
-rwxr-xr-x    1 root  admin   21848  2 22 12:55 mod_proxy_scgi.so
-rwxr-xr-x    1 root  admin   10784  2 22 12:55 mod_ratelimit.so
-rwxr-xr-x    1 root  admin   11200  2 22 12:55 mod_reflector.so
-rwxr-xr-x    1 root  admin   15608  2 22 12:55 mod_remoteip.so
-rwxr-xr-x    1 root  admin   16080  2 22 12:55 mod_reqtimeout.so
-rwxr-xr-x    1 root  admin   15808  2 22 12:55 mod_request.so
-rwxr-xr-x    1 root  admin   72904  2 22 12:55 mod_rewrite.so
-rwxr-xr-x    1 root  admin   42904  2 22 12:55 mod_sed.so
-rwxr-xr-x    1 root  admin   23576  2 22 12:55 mod_session.so
-rwxr-xr-x    1 root  admin   15200  2 22 12:55 mod_session_cookie.so
-rwxr-xr-x    1 root  admin   20784  2 22 12:55 mod_session_dbd.so
-rwxr-xr-x    1 root  admin   15872  2 22 12:55 mod_setenvif.so
-rwxr-xr-x    1 root  admin   10840  2 22 12:55 mod_slotmem_plain.so
-rwxr-xr-x    1 root  admin   16752  2 22 12:55 mod_slotmem_shm.so
-rwxr-xr-x    1 root  admin   15752  2 22 12:55 mod_socache_dbm.so
-rwxr-xr-x    1 root  admin   15352  2 22 12:55 mod_socache_memcache.so
-rwxr-xr-x    1 root  admin   23936  2 22 12:55 mod_socache_shmcb.so
-rwxr-xr-x    1 root  admin   15376  2 22 12:55 mod_speling.so
-rwxr-xr-x    1 root  admin  238696  2 22 12:55 mod_ssl.so
-rwxr-xr-x    1 root  admin   24552  2 22 12:55 mod_status.so
-rwxr-xr-x    1 root  admin   15800  2 22 12:55 mod_substitute.so
-rwxr-xr-x    1 root  admin   11040  2 22 12:55 mod_unique_id.so
-rwxr-xr-x    1 root  admin   15496  2 22 12:55 mod_unixd.so
-rwxr-xr-x    1 root  admin   14808  2 22 12:55 mod_userdir.so
-rwxr-xr-x    1 root  admin   15824  2 22 12:55 mod_usertrack.so
-rwxr-xr-x    1 root  admin    9768  2 22 12:55 mod_version.so
-rwxr-xr-x    1 root  admin   15072  2 22 12:55 mod_vhost_alias.so
-rwxr-xr-x    1 root  admin   23680  2 22 12:55 mod_watchdog.so
-rwxr-xr-x    1 root  admin   25704  2 22 12:55 mod_xml2enc.so

今回の環境

OS: Mac OS X Snow Leopard


$ uname -mrsv
Darwin 10.8.0 Darwin Kernel Version 10.8.0: Tue Jun  7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386 i386
 
$ gcc --version
i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

参考

Ref.
- Apache HTTP サーバ バージョン 2.4 ドキュメント - Apache HTTP サーバ
- configure - Configure the source tree - Apache HTTP Server
- Welcome! - The Apache Portable Runtime Project

tags: apache mac_os_x

Posted by NI-Lab. (@nilab)