Apache HTTP Serverのインストール

Webサーバーとして広く使われているApache HTTP Server (httpd) をソースコードからインストールする。

インストール手順

インストール情報
項目 説明
配布元
リポジトリー
手順
依存情報

依存先 (必須)
依存先 (任意)
  • リポジトリーからのビルド用: autoconf, libtool
依存元
  • PHP
インストール手順
sh -eux <<-"EOT"
PKG=httpd VER=2.4.39 TAG=$VER
LOCAL=~/.local J=$(grep -cs '^processor' /proc/cpuinfo || echo 2)
mkdir -p "$LOCAL/src"
cd "$LOCAL/src"

if command -v git >/dev/null; then
  [ -e $PKG ] || git clone --depth 1 https://github.com/apache/httpd $PKG
  cd $PKG
  git fetch --depth 1 origin tag $TAG
  git checkout -f $TAG
  git clean -dfX
  ./buildconf
else
  [ -e $PKG-$VER ] || wget http://ftp.riken.jp/net/apache/$PKG/$PKG-$VER.tar.bz2
  tar -xf $PKG-$VER.*
  cd $PKG-$VER
  make -kj $J distclean clean || :
fi

./configure --prefix="$LOCAL/stow/$PKG-$VER/apache2"
make -j $J
make -j $J install

cd "$LOCAL/stow"
echo $PKG-[0-9]* | xargs -n 1 stow --ignore=dir -D
stow --ignore=dir $PKG-$VER
EOT
インストール例
日付 バージョン OS 依存関係
2018-06-06 2.4.33 Ubuntu 16.04
2019-03-31 2.4.39 Ubuntu 18.04 GNU Make 4.2.1, GCC 7.4.0, APR-util 1.6.1, PCRE 8.43

Apache HTTP Serverはデフォルトで/usr/local/apache2にインストールされる。Apacheは独自の環境を持っているので,インストール先を他のパッケージ群とは分離したい。そのため,インストール先を~/.local/stow/httpd-$VER/apache2とした。これにより,stowコマンド実行時に,~/.local/apache2へシンボリックリンクが貼られる。

インストールが完了したら,今後作業しやすいように以下の内容を~/.profile~/.bashrcに記述して,シェルで読み込んでおく。

## Apache
APACHE_ROOT="$LOCAL/apache2"
if [ -d "$APACHE_ROOT" ]; then
	PATH="$APACHE_ROOT/bin:$PATH"
	CPATH="$APACHE_ROOT/include:$CPATH"
	MANPATH="$APACHE_ROOT/man:$MANPATH"
	MANDATORY_MANPATH="$APACHE_ROOT/man:$MANDATORY_MANPATH"
	export PATH CPATH MANPATH MANDATORY_MANPATH
fi

これで今後はApache HTTP Serverの起動コマンドである,httpdapachectlなどを端末から直接実行できる。

APRとAPR-utilの自動ビルド

今回は事前に依存関係のAPRとAPR-utilは別でインストールしていることを前提とした。しかし,これらはソースファイルをダウンロードして適切な場所に配置して,configureに--with-included-aprオプションをつけておけば一緒にビルドしてくれる。httpdで使用するAPRとAPR-utilのバージョンを固定したい場合に,この方法でビルドするとよいだろう。

この場合は以下のインストール手順となる。

sh -eux <<-"EOT"
LOCAL=~/.local J=$(grep -cs '^processor' /proc/cpuinfo || echo 2)
HTTPD_VER=2.4.39 TAG=$HTTPD_VER
mkdir -p "$LOCAL/src"; cd "$LOCAL/src"

if command -v git >/dev/null; then [ -e $PKG ] || git clone --depth 1 https://github.com/apache/httpd $PKG cd $PKG git reset --hard; git clean -df; git fetch --depth 1 origin tag $TAG; git checkout $TAG ./buildconf else [ -e $PKG-$VER ] || wget http://ftp.riken.jp/net/apache/$PKG/$PKG-$HTTPD_VER.tar.bz2 tar -xf $PKG-$HTTPD_VER.* cd $PKG-$HTTPD_VER fi
cd srclib/ if ! [ -e apr ]; then
APR_VER=1.6.5
wget http://archive.apache.org/dist/apr/apr-$VER.tar.bz2 tar -xf apr-$APR_VER.* mv apr-$APR_VER apr
fi

if ! [ -e apr-util ]; then
APR_UTIL_VER=1.6.1 wget http://archive.apache.org/dist/apr/apr-util-$APR_UTIL_VER.tar.bz2 tar -xf apr-util-$APR_UTIL_VER.* mv apr-util-$APR_UTIL_VER apr-util
fi
cd .. make -kj $J distclean clean || :
./configure --prefix="$LOCAL/stow/httpd-$HTTPD_VER/apache2" --with-included-apr make -j $J; make install
cd "$LOCAL/stow"
stow --ignore=dir -S httpd-$HTTPD_VER -D httpd-[0-9]*
EOT

以上でApache HTTP Serverのインストールは完了となる。

インストールが完了したら,続いて起動確認をしよう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です