目次



準備

インストール

  1. ソースの取得
    /usr/local/srcにhttpd-2.2.21.tar.gzを取得。
    # wget -P /usr/local/src http://www.ring.gr.jp/archives/net/apache/httpd/httpd-2.2.21.tar.gz
  2. ソースの解凍
    /usr/local/srcにhttpd-2.2.21フォルダが作成される。
    # cd /usr/local/src
    # tar zxvf httpd-2.2.21.tar.gz
  3. APR(Apache Portable Runtime)のインストール
    1. apr(1.4.5)
      configureのヘルプ
      # cd /usr/local/src/httpd-2.2.21/srclib/apr
      # ./configure --prefix=/usr/local/httpd-2.2.21/apr
      # make
      # make install
    2. apr-util(1.3.12)
      configureのヘルプ
      # cd /usr/local/src/httpd-2.2.21/srclib/apr-util
      # ./configure --prefix=/usr/local/httpd-2.2.21/apr-util --with-apr=/usr/local/httpd-2.2.21/apr
      # make
      # make install
  4. コンパイル設定
    configureのヘルプ
    # cd /usr/local/src/httpd-2.2.21
    # ./configure \
    > --prefix=/usr/local/httpd-2.2.21 \
    > --enable-so \
    > --enable-rewrite=shared \
    > --enable-dav=shared \
    > --enable-dav-fs=shared \
    > --enable-dav-lock=shared \
    > --enable-ssl=shared \
    > --with-ssl=/usr/local/ssl/ \
    > --with-apr=/usr/local/httpd-2.2.21/apr \
    > --with-apr-util=/usr/local/httpd-2.2.21/apr-util
  5. インストール
    # make
    # make install
  6. シンボリックリンクの作成
    # ln -s /usr/local/httpd-2.2.21 /usr/local/apache2

初期設定

SSL対応設定

認証局(CA)の構築

SSLサーバ構築

Apacheへの埋め込み

起動

下記のコマンドで起動、停止、再起動を行う

# /usr/local/apache2/bin/apachectl start    ← 起動
# /usr/local/apache2/bin/apachectl stop     ← 停止
# /usr/local/apache2/bin/apachectl restart  ← 再起動

動作確認

http,httpsでそれぞれアクセスし「It works!」が表示されればOK。

自動起動設定

STOPに失敗する

上記の手順でインストールするとhttpdスクリプトでstopさせる時に失敗してしまう。

# /etc/rc.d/init.d/httpd start
httpd を起動中:                                            [  OK  ]
# /etc/rc.d/init.d/httpd stop
httpd を停止中:                                            [失敗]


pidファイルの位置が違っているのが原因みたい。

# /etc/rc.d/init.d/httpd start
httpd を起動中:                                            [  OK  ]

# find / -name *.pid
/var/run/abrtd.pid
/var/run/syslogd.pid
/var/run/sshd.pid
/var/run/crond.pid
/var/run/messagebus.pid
/var/run/haldaemon.pid
/usr/local/httpd-2.2.21/logs/httpd.pid    ← ここにpidファイルが作成されている

httpd起動スクリプトでは

pidfile=${PIDFILE-/var/log/httpd/${prog}.pid}

と記述されている。
Apache HTTP サーバ バージョン 2.2 ドキュメントによるとpid作成先を設定するディレクティブはPidFileでデフォルトはlogs/httpd.pidになるみたい。
httpd.confには記述が無いので追加する。

# vi /usr/local/apache2/conf/httpd.conf

PidFile /var/run/httpd.pid                      ← ServerRootの次ぐらいの行に追加

httpd起動スクリプトも修正する。

# vi /etc/rc.d/init.d/httpd

#pidfile=${PIDFILE-/var/log/httpd/${prog}.pid}  ← コメントアウト
pidfile=${PIDFILE-/var/run/httpd.pid}           ← 追加

テスト

# /etc/rc.d/init.d/httpd start
httpd を起動中:                                            [  OK  ]
# find / -name *.pid
/var/run/abrtd.pid
/var/run/syslogd.pid
/var/run/sshd.pid
/var/run/crond.pid
/var/run/httpd.pid   ←
/var/run/messagebus.pid
/var/run/haldaemon.pid

# /etc/rc.d/init.d/httpd stop
httpd を停止中:                                            [  OK  ]


STOPに失敗する その2

conf/extra/httpd-mpm.confにPidFileディレクティブの記述があるがソースからコンパイルするとhttpd.confでextra/httpd-mpm.confがincludeされない(?)ようである。
httpd-mpm.confでPidFileのパスを修正し、httpd.confでextra/httpd-mpm.confをincludeさせてもOKかと。

# vi /usr/local/apache2/conf/extra/httpd-mpm.conf

#PidFile "logs/httpd.pid"
↓
PidFile "/var/run/httpd.pid"

#LockFile "logs/httpd/accept.lock"
↓
LockFile "/var/lock/subsys/httpd"
# vi /usr/local/apache2/conf/httpd.conf

# Server-pool management (MPM specific)
#Include conf/extra/httpd-mpm.conf
↓
Include conf/extra/httpd-mpm.conf        ← コメント外す

httpd起動スクリプトの修正は同じ。


トップ   編集 凍結解除 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-05-10 (水) 20:53:34