Apache-2.4.34

Apache HTTPD の概要

Apache HTTPD パッケージはオープンソースの HTTP サーバーです。 ローカルなイントラネットウェブサイトでも、大規模なウェブサービスの運用にも利用することができます。

本パッケージは LFS-8.3 において正しくビルドでき動作することが確認されています。

パッケージ情報

追加のダウンロード

Apache HTTPD の依存パッケージ

必須

Apr-Util-1.6.1, PCRE-8.42

任意

Berkeley DB-5.3.28, Doxygen-1.8.14, libxml2-2.9.8, Lua-5.3.5, Lynx-2.8.9rel.1 または Links-2.16 または ELinks, nghttp2-1.33.0, OpenLDAP-2.4.46 (Apr-Util-1.6.1 が ldap サポートつきでインストールされていること), rsync-3.1.3, Distcache

ユーザー情報: http://wiki.linuxfromscratch.org/blfs/wiki/apache

Apache HTTPD のインストール

セキュリティの観点から、サーバーは一般ユーザーと一般グループにより起動することが強く推奨されています。 root になり、以下のコマンドによってグループとユーザーを生成します。

groupadd -g 25 apache &&
useradd -c "Apache Server" -d /srv/www -g apache \
        -s /bin/false -u 25 apache

Apache HTTPD をビルドするために、以下のコマンドを実行します。

patch -Np1 -i ../httpd-2.4.34-blfs_layout-1.patch             &&

sed '/dir.*CFG_PREFIX/s@^@#@' -i support/apxs.in              &&

./configure --enable-authnz-fcgi                              \
            --enable-layout=BLFS                              \
            --enable-mods-shared="all cgi"                    \
            --enable-mpms-shared=all                          \
            --enable-suexec=shared                            \
            --with-apr=/usr/bin/apr-1-config                  \
            --with-apr-util=/usr/bin/apu-1-config             \
            --with-suexec-bin=/usr/lib/httpd/suexec           \
            --with-suexec-caller=apache                       \
            --with-suexec-docroot=/srv/www                    \
            --with-suexec-logfile=/var/log/httpd/suexec.log   \
            --with-suexec-uidmin=100                          \
            --with-suexec-userdir=public_html                 &&
make

このパッケージにテストスイートはありません。

root ユーザーになって以下を実行します。

[注記]

注記

This package does not install properly using DESTDIR techniques as an unpriviledged user.

make install  &&

mv -v /usr/sbin/suexec /usr/lib/httpd/suexec &&
chgrp apache           /usr/lib/httpd/suexec &&
chmod 4754             /usr/lib/httpd/suexec &&

chown -v -R apache:apache /srv/www

コマンド説明

sed '/dir.*CFG_PREFIX/s@^@#@'...: Forces the apxs utility to use absolute pathnames for modules, when instructed to do so.

--enable-authnz-fcgi: Build FastCGI authorizer-based authentication and authorization (mod_authnz_fcgi.so fast CGI module).

--enable-mods-shared="all cgi": モジュール類は動的共有オブジェクト (Dynamic Shared Objects; DSO) としてビルドされ利用されます。 そして実行時の設定ファイル内のディレクティブにより設定されます。

--enable-mpm-shared=all: 本スイッチは MPM (マルチプロセスモジュール; Multi Processing Modules) を動的共有オブジェクト (Dynamic Shared Objects; DSO) としてビルドすることを指示します。 こうすることによって、実行時にいずれのモジュールを用いるかを設定できるようになります。

--enable-suexec: 本スイッチは Apache の suEXEC モジュールをビルドするようにします。 suEXEC モジュールは、Web サーバーを呼び出すユーザーとは異なるユーザーのもとで、CGI や SSI スクリプトを実行できるようにするものです。

--with-suexec-*: これらのスイッチは suEXEC モジュールの挙動を制御するものです。 例えばデフォルトのドキュメントルートや最小 UID といったもので、これは suEXEC のもとでスクリプトを実行するために利用されます。 ただし最小 UID が 100 であると、apache ユーザーとしては suEXEC のもとで CGI や SSI を実行することはできません。

... /usr/lib/httpd/suexec: これらのコマンドは suexec ラッパースクリプトを適切なディレクトリに移動します。 こうするのは、このスクリプトが直接実行されるものではないためです。 また setgid を apache とすることにより、実行モジュールのパーミッションを修正します。

chown -R apache:apache /srv/www: デフォルトにて、インストール時にインストールされるファイル類 (ドキュメントファイル、エラーメッセージ、デフォルトアイコンなど) は、tar ファイルを解凍したユーザーが所有者となります。 この所有者を他ユーザーに変更したい場合は、この時点において実行する必要があります。 また必要なこととして、ドキュメントディレクトリは、パーミッション (r-x) とし httpd プロセスがアクセス可能でなければなりません。 また各種ファイル類は、パーミッション (r--) とし apache ユーザーが読み込み可能でなければなりません。

Apache の設定

設定ファイル

/etc/httpd/httpd.conf and /etc/httpd/extra/*

設定情報

Apache HTTP サーバーの設定ファイルに関する設定方法の詳細は file:///usr/share/httpd/manual/configuring.html を参照してください。

ブートスクリプト

システム起動時に Apache サーバーを自動で起動する場合は blfs-bootscripts-20180105 パッケージに含まれる/etc/rc.d/init.d/httpd初期起動スクリプトをインストールします。

make install-httpd

パッケージ構成

インストールプログラム: ab, apachectl, apxs, checkgid, dbmmanage, fcgistarter, htcacheclean, htdbm, htdigest, htpasswd, httpd, httxt2dbm, logresolve, rotatelogs, suexec
インストールライブラリ: Several libraries under /usr/lib/httpd/modules/
インストールディレクトリ: /etc/httpd, /srv/www, /usr/include/httpd, /usr/lib/httpd, /usr/share/httpd, /var/log/httpd, /var/run/httpd

概略説明

ab

Apache HTTP サーバーのベンチマークを計測するツールです。

apachectl

is a front end to the Apache HTTP server which is designed to help the administrator control the functioning of the Apache httpd daemon.

apxs

Apache HTTP サーバーに対する追加モジュールをビルドしインストールするためのツールです。

checkgid

is a program that checks whether it can setgid to the group specified. This is to see if it is a valid group for Apache2 to use at runtime. If the user (should be run as superuser) is in that group, or can setgid to it, it will return 0.

dbmmanage

is used to create and update the DBM format files used to store usernames and passwords for basic authentication of HTTP users.

fcgistarter

is a tool to start a FastCGI program.

htcacheclean

ディスクキャッシュをクリーンアップします。

htdbm

DBM パスワードデータベースを操作します。

htdigest

HTTP におけるダイジェスト認証を行うためのファイルを生成し更新します。 そのファイルはフラットファイルであり、ユーザー名、領域名、パスワードを保持します。

htpasswd

is used to create and update the flat-files used to store usernames and passwords for basic authentication of HTTP users.

httpd

Apache HTTP サーバープログラム。

httxt2dbm

DBM ファイルをテキストファイルから生成するもので、RewiteMap 内にて利用されます。

logresolve

is a post-processing program to resolve IP-addresses in Apache's access log files.

rotatelogs

is a simple program for use in conjunction with Apache's piped log file feature.

suexec

allows users to run CGI and SSI applications as a different user.

最終更新日: 2018-08-31 08:17:00 +0900