shimxmemo

メモをのこすよ!

Apacheをポートを分けて複数プロセス立ち上げるぞメモ

前提条件

  • 現在Apache(2.2.11)がインストールされているが、ポートを変えてもう一つ立ちあげたい
  • mod_perl(2.0.4)をstaticで入れる
  • とりあえずポートは8080
  • ソースコードは/usr/local/srcにある

ちなみにこれを試している最中に一番使ったコマンドはmake distcleanです。何度インストールをやり直した事か…

  1. 現在インストールされているApacheのコンパイル時のオプションを確認

    Apacheのコンパイル時のオプションはこちら
    http://www.itmedia.co.jp/help/tips/linux/l0371.html

    現在インストールされているApacheのコンパイル時のオプション

    sv# /usr/local/apache2/bin/apachectl -V
    
    Server version: Apache/2.2.11 (Unix)
    Server built:   Aug 26 2011 10:21:38
    Server's Module Magic Number: 20051115:21
    Server loaded:  APR 1.3.3, APR-Util 1.3.4
    Compiled using: APR 1.3.3, APR-Util 1.3.4
    Architecture:   64-bit
    Server MPM:     Prefork
      threaded:     no
        forked:     yes (variable process count)
    Server compiled with....
     -D APACHE_MPM_DIR="server/mpm/prefork"
     -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=128
     -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_LOCKFILE="logs/accept.lock"
     -D DEFAULT_ERRORLOG="logs/error_log"
     -D AP_TYPES_CONFIG_FILE="conf/mime.types"
     -D SERVER_CONFIG_FILE="conf/httpd.conf"
    

    でも見れるが、config.logがあればそれを見るべき

    sv# vi /usr/local/src/httpd-2.2.11/config.log    
    
  2. インストール

    Apacheのtarballを解凍し、/usr/local/src/httpd-2.2.11-8080という名前のディレクトリに。

    mod_perlのtarballを解凍し、/usr/local/src/mod_perl-2.0.4-8080という名前のディレクトリに。

    mod_perlをstaticで入れるので、apachemod_perlからインストール。

    mod_perlのビルドオプションはこちら

    mod_perl2のビルドオプションはこちら
    http://perl.apache.org/docs/2.0/user/install/install.html#mod_perl_Build_Options

    sv# cd /usr/local/src/mod_perl-2.0.4-8080
    sv# perl Makefile.PL MP_USE_STATIC=1 MP_AP_PREFIX=/usr/local/src/httpd-2.2.11-8080 MP_AP_CONFIGURE="--prefix=/usr/local/apache2_8080 --with-mpm=prefork --enable-so --enable-cache --enable-disk-cache --enable-mem-cache --enable-ssl --enable-proxy --enable-proxy-http --enable-proxy-balancer --enable-distcache --enable-expires --enable-proxy_ajp --enable-rewrite --enable-static-rotatelogs --enable-logio"
    sv# make
    sv# make install
    
  3. conf等の設定

    人それぞれ。ポートが80になってる所(Listenなど)を8080に。

    他はパスに注意。

  4. 起動確認
    sv# /usr/local/apache2_8080/bin/apachectl configtest
    

    エラー出たら次へ

  5. 足りないモジュールのインストール
    足りてなかったらそれぞれインストールしていく。

これで大丈夫か心配だけど一応動いてはいる。