砂場でApacheを動かす

概要

手順

  1. 必要となるライブラリーなどを/sandbox以下にコピーする。
    root# set SB=/sandbox
    root# mkdir ${SB}/usr
    root# mkdir ${SB}/usr/{lib,libexec}
    root# cp /usr/lib/{libc.so.3,libcrypt.so.2,libutil.so.2} ${SB}/usr/lib
    root# cp /usr/libexec/ld-elf.so.1 ${SB}/usr/libexec
    
  2. /dev,/var,/etc,/homeなどのディレクトリを整える。
    1. /devの整備
      root# mkdir ${SB}/dev
      root# cd ${SB}/dev
      root# /dev/MAKEDEV std
      万が一高い権限で侵入されても不幸なことにならないように不要なdevice fileを消す。
      root# rm console fd io klog kmem mem pci
      
    2. /varの整備
      root# mkdir ${SB}/var
      root# mkdir ${SB}/var/run
      root# mkdir ${SB}/var/log
      
    3. /etcの整備
      root# mkdir ${SB}/etc
      root# cp /etc/{group,host.conf,hosts,login.conf,master.passwd} ${SB}/etc
      root# vi group
      不要なグループを削除
      --groupの例--
      
      user1:*:1001:
      nogroup:*:65535:
      
      -------------
      root# vi master.passwd
      不要なエントリーおよびパスワード、ログインシェルの項目を削除。
      ---master.passwdの例---
      
      # $FreeBSD: src/etc/master.passwd,v 1.24.2.1 2000/06/12 13:12:15 asmodai Exp $
      #
      user1:*:1001:1001::0:0:Test User:/home/user1:/nonexistent
      nobody:*:65535:65535::0:0:Nobody:/nonexistent:/sbin/nologin
      
      -----------------------
      root# pwd_mkdb -d ${SB}/etc master.passwd
      
    4. /homeの整備

      • 上記のようにユーザーとしてuser1がいるとする。
        master.passwdにはuser1のhome directoryが/home/user1と記載されている ことを考慮する。
      • httpd.confにてユーザーのディレクトリをpublic_htmlとしたとする。
      root# mkdir ${SB}/home
      root# mkdir ${SB}/home/user1
      root# mkdir ${SB}/home/user1/public_html
      root# chown user1:user1 ${SB}/home/user1/public_html
      
  3. apache設定ファイルなどをコピー
    1. 設定ファイルのコピー
      root# mkdir ${SB}/usr/local
      root# mkdir ${SB}/usr/local/etc
      root# mkdir ${SB}/usr/local/etc/apache
      root# cp /usr/local/etc/apache/{httpd.conf,magic,mime.types} \
      	${SB}/usr/local/etc/apache
      root# mkdir ${SB}/usr/local/libexec
      
    2. shared libraryのコピー
      root# mkdir ${SB}/usr/local/libexec/apache
      root# cp /usr/local/libexec/apache/* ${SB}/usr/local/libexec/apache
      
  4. apachectl起動時に必要な実行ファイルをコピー
    root# mkdir ${SB}/bin
    root# cp /bin/{\[,cat,kill,rm,sh} ${SB}/bin
    root# mkdir ${SB}/usr/bin
    root# cp /usr/bin/limits ${SB}/usr/bin
    root# mkdir ${SB}/usr/local/sbin
    root# cp /usr/local/sbin/{apachectl,httpd} ${SB}/usr/local/sbin
    
  5. chroot環境の下でapacheを動かす。
    root# chroot ${SB} /usr/local/apachectl start
    
  6. お好みで/usr/local/binにperlを準備。
    1. PerlをCPANの配布サイトより取って来て、展開する。
    2. ./Configureするとライブラリーのオプションを聞かれるところがあるので-staticを付け足す。
    3. make
    4. 出来上がったperlを${SB}/usr/local/binにコピー

以上。

参考文献


© 2000-2001 Yoshisato YANAGISAWA PCC-Software.org. All rights reserved.