○ httpd/phpモデュール/configureスクリプト

・httpd-2.4.25, php-5.6.30で使用しています
・入力を間違えないよう、configureスクリプトを作成します
・exportされた変数は、resetされるまで残るので注意

○httpdモデュールの選択

・httpd-2.4.25の場合です
・詳細は本家サイトのドキュメントを読んで下さい
・(http://httpd.apache.org/docs/2.4/)
・マルチプロセッシングモジュール (MPM)のデフォルトはmpm_eventが入り
・モデュールのデフォルトは--enable-mods-shared=mostでconfigureされます
・configureオプションにstaticの付いていないものは動的にリンクされます
・staticを付けると静的ににリンクされ、disabledで無効にされます

○configureオプション


none few most all reallyall
--enable-modules
--enable-mods-shared

--enable-mods-static


○config.logからDSO_MODULESを確認します

・configureを実行するとhttpdディレクトリにconfig.logが作られます
・config.logから動的に組み込まれるモデュールを確認します ( 例 mostの場合 )

[root@jupiter:~/src/httpd-2.4.23]
# ./configure --with-included-apr --enable-mods-shared=most
# grep "DSO_MODULES=' " config.log | awk -F\' '{print $2}' | xargs -n 1 | sort

○オプションによるモデュールの差異

・--enable-modules と --enable-mods-shared では同じ内容になります
・( )で括られているモデュールはマニュアルに記載されていないものです
・original は個別に static、disable を指定しています


none few most all reallyall original
mod_access_compat
mod_actions

static
mod_alias
static
mod_allowmethods

mod_asis


mod_auth_basic
static
mod_auth_digest

mod_auth_form

mod_authn_anon

mod_authn_core
static
mod_authn_dbd

mod_authn_dbm

mod_authn_file
static
mod_authn_socache

mod_authnz_fcgi




mod_authnz_ldap





mod_authz_core
static
mod_authz_dbd

mod_authz_dbm
mod_authz_groupfile
static
mod_authz_host
static
mod_authz_owner
mod_authz_user
static
mod_autoindex
static
(mod_bucketeer)




mod_buffer

mod_cache

mod_cache_disk

mod_cache_socache

(mod_case_filter)




(mod_case_filter_in)




mod_cern_meta




mod_cgi



mod_cgid

mod_charset_lite



mod_data



mod_dav

mod_dav_fs

mod_dav_lock


mod_dbd

mod_deflate

mod_dialup



mod_dir
static
mod_dumpio

mod_echo



mod_env
static
mod_example_hooks




(mod_example_ipc)




mod_expires

mod_ext_filter

mod_file_cache


mod_filter
static
mod_headers
static
mod_heartbeat



mod_heartmonitor



mod_http2





mod_ident




mod_imagemap




mod_include

static
mod_info

mod_isapi




mod_lbmethod_bybusyness

mod_lbmethod_byrequests

mod_lbmethod_bytraffic

mod_lbmethod_heartbeat

mod_ldap





mod_log_config
static
mod_log_debug

mod_log_forensic



mod_logio

mod_lua


mod_macro

mod_mime
static
mod_mime_magic


mod_negotiation
static
mod_nw_ssl





(mod_optional_fn_export)




(mod_optional_fn_import)




(mod_optional_hook_export)




(mod_optional_hook_import)




mod_privileges





mod_proxy

mod_proxy_ajp

mod_proxy_balancer

mod_proxy_connect

mod_proxy_express

mod_proxy_fcgi

mod_proxy_fdpass





mod_proxy_ftp

mod_proxy_hcheck

mod_proxy_html


mod_proxy_http

mod_proxy_scgi

mod_proxy_wstunnel

mod_ratelimit

mod_reflector



mod_remoteip

mod_reqtimeout
static
mod_request

mod_rewrite

mod_sed

mod_session

mod_session_cookie

mod_session_crypto





mod_session_dbd

mod_setenvif
static
mod_slotmem_plain



mod_slotmem_shm

mod_so





mod_socache_dbm

mod_socache_dc





mod_socache_memcache

mod_socache_shmcb

mod_speling

mod_ssl

mod_status
static
mod_substitute

mod_suexec



mod_unique_id

mod_unixd
static
mod_userdir

mod_usertrack


mod_version
static
mod_vhost_alias

mod_watchdog

mod_xml2enc



○httpd configureスクリプト (root root 755)

・httpdを展開したディレクトリで実効してください
・ターミナルから直接 CFLAGS以降を実行しても良いです
・opensslの位置を確認してください
・新規インストールした opensslを使います
・CentOSのopensslパッケージはkerberosに依存しているので注意
・CFLAGS="-O2 -march=i686 -mtune=atom" (CPU最適化オプション)
・該当しない場合は指定しない

・--enable-mpms-sharedを指定しない場合 mpm_eventがインストールされます
・suexecオプションの指定は充分考慮してください

#!/bin/bash
#
CFLAGS="-O2 -march=i686 -mtune=atom"
export CFLAGS
./configure \
--enable-layout=Apache2 \
--enable-mpms-shared=all \
--with-included-apr \
--enable-pie \
--with-pcre \
--enable-mods-shared=most \
--enable-actions=static \
--enable-alias=static \
--enable-asis \
--enable-auth_basic=static \
--enable-authn_core=static \
--enable-authn_file=static \
--enable-authz_core=static \
--enable-authz_host=static \
--enable-authz_groupfile=static \
--enable-authz_user=static \
--enable-autoindex=static \
--enable-cache \
    --enable-cache-disk \
    --disable-file-cache \
--enable-cgi \
--enable-dav_lock \
--enable-dir=static \
--enable-env=static \
--enable-filter=static \
--enable-headers=static \
--enable-include=static \
--enable-lua \
--enable-log_config=static \
--enable-mime=static \
--enable-mime_magic \
--enable-negotiation=static \
--enable-proxy_html \
--enable-reqtimeout=static \
--enable-setenvif=static \
--enable-ssl \
    --with-ssl \
    --disable-distcache \
--enable-status=static \
--enable-suexec \
    --with-suexec \
    --enable-suexec-capabilities \
    --with-suexec-caller=apache \
    --with-suexec-docroot=/home/www \
    --with-suexec-uidmin=500 \
    --with-suexec-gidmin=500 \
--enable-unixd=static \
--enable-usertrack \
--enable-version=static \
--enable-watchdog \
--enable-xml2enc
#
CFLAGS=""
export CFLAGS

httpd24cfg.sh



○phpリンクライブラリ・configureスクリプト

○phpに組み込むライブラリの選択

・php-5.6.30の場合です
・追加するライブラリについてはドキュメントを参照してください
・(http://www.php.net/manual/ja/)
・configureを実行する前にライブラリをインストールしておく必要があります

:勝手にインストールしたライブラリ(全て必要な訳ではないけど)

openssl zlib-devel bzip2-devel curl-devel pcre-devel
freetype-devel libjpeg-turbo-devel libpng-devel libvpx-devel libXpm-devel
libc-client-devel libmcrypt-devel mysql readline-devel libxml2-devel
libxslt-devel expat-devel



○php56cfg.shスクリプト (root root 755)

・phpを展開したディレクトリで実効してください
・ターミナルから直接 CFLAGS以降を実行しても良いです
・apxs,openssl,imap,mysql (独自に組み込んだライブラリ) の位置を確認してください
・新規インストールした opensslを使います
・CentOSのopensslパッケージはkerberosに依存しているので注意
・gettext,gdライブラリはphpにバンドルされているものを使っています
・sharedがつくものは動的リンクです、php.iniでextensionの設定が必要です
・mpm_prefork(httpd)以外の場合は、--enable-maintainer-ztsが必要です

#!/bin/bash
#
CFLAGS="-O2 -march=i686 -mtune=atom -fno-strict-aliasing -Wno-pointer-sign"
export CFLAGS
#
./configure --with-apxs2=/usr/local/apache2/bin/apxs \
--with-config-file-path=/etc \
--with-config-file-scan-dir=/etc/php.d \
--with-openssl=/usr \
--with-zlib-dir \
--enable-bcmath=shared \
--with-bz2=/usr \
--enable-calendar=shared \
--with-curl=/usr \
--enable-exif \
--with-pcre-dir \
--enable-ftp \
--with-gd \
--with-vpx-dir \
--with-jpeg-dir \
--with-png-dir \
--with-xpm-dir \
--with-freetype-dir \
--enable-gd-native-ttf \
--with-gettext \
--with-iconv-dir \
--with-imap=/usr \
--with-kerberos=/usr \
--with-imap-ssl=/usr \
--enable-mbstring \
--enable-mbregex \
--with-mcrypt \
--enable-mysqlnd \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-mysql-sock=/var/lib/mysql/mysql.sock \
--with-pdo-mysql=shared,mysqlnd \
--without-pdo-sqlite \
--with-sqlite3=shared \
--with-readline=/usr \
--enable-soap \
--enable-sockets \
--enable-wddx \
--with-libxml-dir \
--with-libexpat-dir \
--with-xsl=/usr \
--enable-maintainer-zts
#
CFLAGS=""
export CFLAGS

php56cfg.sh

○ Copyright(c) 528p.com All Rights Reserved.