はじめての自宅サーバ構築 - Fedora/CentOS -
Last Update 2018/05/30
[ 更新履歴 ] [ サイト マップ ] [ 質問掲示板 ] [ 雑談掲示板 ] [ リンク ]
トップ >> Webサーバ >> Webページヘッダー及びフッター自動挿入(mod_layout)
動作確認 [ FC1 / FC2 / FC3 / FC4 / FC5 / FC6 / Fedora7 / Fedora8 / Fedora9 / Fedora10 / Fedora11 / Fedora12 / Fedora13 / Fedora14 / Fedora15 / Fedora16 / Fedora17 / CentOS4 / CentOS5 / CentOS6 ]
  1. はじめに
  2. mod_layoutとは・・・
  3. 導入の前に・・・(事前チェック)
    構築環境の確認
    apacheの確認
  4. mod_layoutのインストール
    apache 2.0系の場合
    apache 2.2系の場合
  5. モジュールをロード
  6. ヘッダ・フッタの挿入
  7. mod_layoutの動作確認

■ はじめに

当該コンテンツは、当サイトのリピータ様である『くちなし様』の導入検証よりご報告を頂きました。
また、当ページ作成もご好意によりくちなし様が作成されております。

■ mod_layoutとは・・・

Webページにヘッダやフッタを自動挿入するツールです。

■ 導入の前に・・・(事前チェック)

■ 構築環境の確認

mod_layoutを導入するにあたり、ソースコードをコンパイルしなければなりません。
この為、apache(httpd)のapxsとコンパイラ(gcc)が導入されているか事前に確認をします。

httpd-devel(apxs)の確認
# rpm -qa httpd-devel

上記の様に結果が何も表示されていない場合は「httpd-devel」をインストールする必要があります。

httpd-develのインストール
# yum -y install httpd-devel


コンパイラ(gcc)の確認
# rpm -qa gcc

こちらも同様に何も表示されていない場合は「gcc」をインストールする必要があります。

gccのインストール
# yum -y install gcc

■ apacheの確認

apacheのバージョンによって、導入方法が異なります。
以下を実施して、導入されているapache(httpd)のバージョンを事前に確認してください。

apache(httpd)のバージョン確認方法
[root@fedora ~]# rpm -qa httpd
httpd-2.2.2-1
2.2.xとなっていれば、2.2系となる


ちなみに2007年01月10日現在での各ディストリビューションでのバージョンは以下となっています。

【FedoraCore1 の場合】
[root@fedora root]# rpm -qa httpd
httpd-2.0.51-1.10.legacy

【FedoraCore2 の場合】
[root@fedora root]# rpm -qa httpd
httpd-2.0.51-2.9.5.legacy

【FedoraCore3 の場合】
[root@fedora root]# rpm -qa httpd
httpd-2.0.53-3.3

【FedoraCore4 の場合】
[root@fedora ~]# rpm -qa httpd
httpd-2.0.54-10.4

【FedoraCore5 の場合】
[root@fedora ~]# rpm -qa httpd
httpd-2.2.2-1.2

【FedoraCore6 の場合】
[root@fedora ~]# rpm -qa httpd
httpd-2.2.3-5

【Fedora7 の場合】 2007年06月07日現在
[root@fedora ~]# rpm -qa httpd
httpd-2.2.4-4

【Fedora8 の場合】 2007年11月21日現在
[root@fedora ~]# rpm -qa httpd
httpd-2.2.6-3

【Fedora9 の場合】 2008年05月16日現在
[root@fedora ~]# rpm -qa httpd
httpd-2.2.8-3

【Fedora10 の場合】 2008年12月09日現在
[root@fedora ~]# rpm -qa httpd
httpd-2.2.10-2

【Fedora11 の場合】 2009年06月15日現在
[root@fedora ~]# rpm -qa httpd
httpd-2.2.11-8

【Fedora12 の場合】 2009年11月20日現在
[root@fedora ~]# rpm -qa httpd
httpd-2.2.13-4

【Fedora13 の場合】 2010年06月04日現在
[root@fedora ~]# rpm -qa httpd
httpd-2.2.15-1

【Fedora14 の場合】 2010年11月09日現在
[root@fedora ~]# rpm -qa httpd
httpd-2.2.16-1

【Fedora15 の場合】 2011年06月08日現在
[root@fedora ~]# rpm -qa httpd
httpd-2.2.17-1

【Fedora16 の場合】 2011年11月11日現在
[root@fedora ~]# rpm -qa httpd
httpd-2.2.21-1

【Fedora17 の場合】 2012年06月19日現在
[root@fedora ~]# rpm -qa httpd
httpd-2.2.22-4

【CentOS4 の場合】
[root@centos ~]# rpm -qa httpd
httpd-2.0.52-28

【CentOS5 の場合】 2007年04月17日現在
[root@centos ~]# rpm -qa httpd
httpd-2.2.3-6

【CentOS6 の場合】 2011年07月21日現在
[root@centos ~]# rpm -qa httpd
httpd-2.2.15-5

■ mod_layoutのインストール

■ apache 2.0系の場合

mod_layoutのダウンロード
mod_layoutの公式サイトから「mod_layout 4.0.1a (Apache 2.0)」をダウンロード
# cd /usr/local/src
# wget http://download.tangent.org/mod_layout-4.0.1a.tar.gz

ダウンロードしたファイルを展開
# tar xzvf mod_layout-4.0.1a.tar.gz
mod_layout-4.0.1a/
mod_layout-4.0.1a/layout.c
mod_layout-4.0.1a/version.h
mod_layout-4.0.1a/README
mod_layout-4.0.1a/protobuild.pl
mod_layout-4.0.1a/ChangeLog
mod_layout-4.0.1a/mod_layout.h
mod_layout-4.0.1a/Makefile
mod_layout-4.0.1a/directives.h
mod_layout-4.0.1a/.deps
mod_layout-4.0.1a/modules.mk
mod_layout-4.0.1a/utility.c
mod_layout-4.0.1a/INSTALL
mod_layout-4.0.1a/mod_layout.c
mod_layout-4.0.1a/proto.h

ディレクトリ移動
# cd mod_layout-4.0.1a/

Makefileを編集
# vi ./Makefile
top_srcdir=/usr/local/apache2
top_builddir=/usr/local/apache2
include /usr/local/apache2/build/special.mk
    ↓    ↓  以下の様に変更
top_srcdir=/usr/lib/httpd
top_builddir=/usr/lib/httpd
include /usr/lib/httpd/build/special.mk

APXS=/usr/local/apache2/bin/apxs
    ↓    ↓  以下の様に変更
APXS=/usr/sbin/apxs

*:64bit版の場合、「top_srcdir」「top_builddir」「include」の「/usr/lib/・・・」を「/usr/lib64/・・・」にする


make実行
# make
/usr/sbin/apxs -c mod_layout.c
/usr/lib/apr-1/build/libtool --silent --mode=compile gcc -prefer-pic -O2 -g -pip
e -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffe
r-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables  -DLINUX=2
 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -pthread -I/usr/include/httpd 
 -I/usr/include/apr-1   -I/usr/include/apr-1   -c -o mod_layout.lo mod_layout.c
 && touch mod_layout.slo
mod_layout.c: In function 'layout_filter':
mod_layout.c:260: warning: unused variable 'body'
mod_layout.c: At top level:
mod_layout.c:471: warning: 'add_type' defined but not used
mod_layout.c:508: warning: 'merge_add' defined but not used
mod_layout.c:517: warning: 'footer_off' defined but not used
mod_layout.c:524: warning: 'header_off' defined but not used
mod_layout.c:531: warning: 'http_header_off' defined but not used
/usr/lib/apr-1/build/libtool --silent --mode=link gcc -o mod_layout.la  -rpath /
usr/lib/httpd/modules -module -avoid-version    mod_layout.lo
/usr/sbin/apxs -c utility.c
/usr/lib/apr-1/build/libtool --silent --mode=compile gcc -prefer-pic -O2 -g -pip
e -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffe
r-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables  -DLINUX=2
 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -pthread -I/usr/include/httpd 
 -I/usr/include/apr-1   -I/usr/include/apr-1   -c -o utility.lo utility.c && tou
ch utility.slo
/usr/lib/apr-1/build/libtool --silent --mode=link gcc -o utility.la  -rpath /usr
/lib/httpd/modules -module -avoid-version    utility.lo
/usr/sbin/apxs -c layout.c
/usr/lib/apr-1/build/libtool --silent --mode=compile gcc -prefer-pic -O2 -g -pip
e -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffe
r-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables  -DLINUX=2
 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -pthread -I/usr/include/httpd 
 -I/usr/include/apr-1   -I/usr/include/apr-1   -c -o layout.lo layout.c && touch
 layout.slo
/usr/lib/apr-1/build/libtool --silent --mode=link gcc -o layout.la  -rpath /usr/
lib/httpd/modules -module -avoid-version    layout.lo
/usr/sbin/apxs -o liblayout.la -c mod_layout.lo utility.lo layout.lo
/usr/lib/apr-1/build/libtool --silent --mode=link gcc -o liblayout.la  -rpath /u
sr/lib/httpd/modules -module -avoid-version    mod_layout.lo utility.lo layout.l
o
#/usr/sbin/apxs -c -o liblayout mod_layout.lo utility.lo layout.lo
#/usr/sbin/apxs -i -a mod_layout.la


make install実行
# make install
make[1]: ディレクトリ `/usr/local/src/mod_layout/mod_layout-4.0.1a' に入ります

/usr/lib/apr-1/build/libtool --silent --mode=install cp mod_layout.la /usr/lib/h
ttpd/modules/
make[1]: ディレクトリ `/usr/local/src/mod_layout/mod_layout-4.0.1a' から出ます
/usr/sbin/apxs -i -n liblayout.so -e liblayout.la
/usr/lib/httpd/build/instdso.sh SH_LIBTOOL='/usr/lib/apr-1/build/libtool' liblay
out.la /usr/lib/httpd/modules
/usr/lib/apr-1/build/libtool --mode=install cp liblayout.la /usr/lib/httpd/modul
es/
cp .libs/liblayout.so /usr/lib/httpd/modules/liblayout.so
cp .libs/liblayout.lai /usr/lib/httpd/modules/liblayout.la
cp .libs/liblayout.a /usr/lib/httpd/modules/liblayout.a
chmod 644 /usr/lib/httpd/modules/liblayout.a
ranlib /usr/lib/httpd/modules/liblayout.a
PATH="$PATH:/sbin" ldconfig -n /usr/lib/httpd/modules
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/lib/httpd/modules

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,--rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
chmod 755 /usr/lib/httpd/modules/liblayout.so
+--------------------------------------------------------+
| All done.                                              |
|                                                        |
| You will need to add the directive:                    |
| LoadModule layout_module modules/liblayout.so          |
|                                                        |
| So that you can begin to use mod_layout.               |
|                                                        |
| Thanks for installing mod_layout.                      |
+--------------------------------------------------------+

■ apache 2.2系の場合

mod_layoutのダウンロード
mod_layoutの公式サイトからダウンロードするとApache2.2に無いapr_compat.hが必要となって
コンパイルできないので、Fetus様で公開しているFedora向けのmod_layoutをダウンロードする
# cd /usr/local/src # wget http://fetus.k-hsu.net/document/webmaster/diary2/binary/20060315_modlayout.tar.gz ダウンロードしたファイルを展開 # tar -xzvf 20060315_modlayout.tar.gz mod_layout/ mod_layout/mod_layout-4.0.1a/ mod_layout/mod_layout-4.0.1a/Makefile mod_layout/mod_layout-4.0.1a/README mod_layout/mod_layout-4.0.1a/proto.h mod_layout/mod_layout-4.0.1a/protobuild.pl mod_layout/mod_layout-4.0.1a/mod_layout.h.orig mod_layout/mod_layout-4.0.1a/utility.c mod_layout/mod_layout-4.0.1a/mod_layout.h mod_layout/mod_layout-4.0.1a/patches/ mod_layout/mod_layout-4.0.1a/patches/mod_layout-4.0.1a-register.patch mod_layout/mod_layout-4.0.1a/patches/mod_layout-4.0.1a-apache220.diff mod_layout/mod_layout-4.0.1a/patches/mod_layout-4.0.1a-cvs_fixes.diff mod_layout/mod_layout-4.0.1a/version.h mod_layout/mod_layout-4.0.1a/layout.c mod_layout/mod_layout-4.0.1a/directives.h mod_layout/mod_layout-4.0.1a/mod_layout.c mod_layout/mod_layout-4.0.1a/INSTALL mod_layout/mod_layout-4.0.1a/mod_layout.c.orig mod_layout/mod_layout-4.0.1a/ChangeLog mod_layout/mod_layout-4.0.1a/modules.mk mod_layout/liblayout.so ディレクトリ移動 # cd mod_layout/mod_layout-4.0.1a/ このままではコンパイルが通らないので、.depsファイルを作成(空ファイル) # touch .deps Makefileを編集 # vi ./Makefile top_srcdir=/etc/httpd top_builddir=/etc/httpd     ↓    ↓  以下の様に変更 top_srcdir=/usr/lib/httpd top_builddir=/usr/lib/httpd include /usr/lib/httpd/build/special.mk *:64bit版の場合、「top_srcdir」「top_builddir」「include」の「/usr/lib/・・・」を「/usr/lib64/・・・」にする make実行 # make /usr/sbin/apxs -c mod_layout.c /usr/lib/apr-1/build/libtool --silent --mode=compile gcc -prefer-pic -O2 -g -pip e -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffe r-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -pthread -I/usr/include/httpd -I/usr/include/apr-1 -I/usr/include/apr-1 -c -o mod_layout.lo mod_layout.c && touch mod_layout.slo mod_layout.c: In function 'layout_filter': mod_layout.c:260: warning: unused variable 'body' mod_layout.c: At top level: mod_layout.c:471: warning: 'add_type' defined but not used mod_layout.c:508: warning: 'merge_add' defined but not used mod_layout.c:517: warning: 'footer_off' defined but not used mod_layout.c:524: warning: 'header_off' defined but not used mod_layout.c:531: warning: 'http_header_off' defined but not used /usr/lib/apr-1/build/libtool --silent --mode=link gcc -o mod_layout.la -rpath / usr/lib/httpd/modules -module -avoid-version mod_layout.lo /usr/sbin/apxs -c utility.c /usr/lib/apr-1/build/libtool --silent --mode=compile gcc -prefer-pic -O2 -g -pip e -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffe r-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -pthread -I/usr/include/httpd -I/usr/include/apr-1 -I/usr/include/apr-1 -c -o utility.lo utility.c && tou ch utility.slo /usr/lib/apr-1/build/libtool --silent --mode=link gcc -o utility.la -rpath /usr /lib/httpd/modules -module -avoid-version utility.lo /usr/sbin/apxs -c layout.c /usr/lib/apr-1/build/libtool --silent --mode=compile gcc -prefer-pic -O2 -g -pip e -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffe r-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -pthread -I/usr/include/httpd -I/usr/include/apr-1 -I/usr/include/apr-1 -c -o layout.lo layout.c && touch layout.slo /usr/lib/apr-1/build/libtool --silent --mode=link gcc -o layout.la -rpath /usr/ lib/httpd/modules -module -avoid-version layout.lo /usr/sbin/apxs -o liblayout.la -c mod_layout.lo utility.lo layout.lo /usr/lib/apr-1/build/libtool --silent --mode=link gcc -o liblayout.la -rpath /u sr/lib/httpd/modules -module -avoid-version mod_layout.lo utility.lo layout.l o #/usr/sbin/apxs -c -o liblayout mod_layout.lo utility.lo layout.lo #/usr/sbin/apxs -i -a mod_layout.la make install実行 # make install make[1]: ディレクトリ `/usr/local/src/mod_layout/mod_layout-4.0.1a' に入ります /usr/lib/apr-1/build/libtool --silent --mode=install cp mod_layout.la /usr/lib/h ttpd/modules/ make[1]: ディレクトリ `/usr/local/src/mod_layout/mod_layout-4.0.1a' から出ます /usr/sbin/apxs -i -n liblayout.so -e liblayout.la /usr/lib/httpd/build/instdso.sh SH_LIBTOOL='/usr/lib/apr-1/build/libtool' liblay out.la /usr/lib/httpd/modules /usr/lib/apr-1/build/libtool --mode=install cp liblayout.la /usr/lib/httpd/modul es/ cp .libs/liblayout.so /usr/lib/httpd/modules/liblayout.so cp .libs/liblayout.lai /usr/lib/httpd/modules/liblayout.la cp .libs/liblayout.a /usr/lib/httpd/modules/liblayout.a chmod 644 /usr/lib/httpd/modules/liblayout.a ranlib /usr/lib/httpd/modules/liblayout.a PATH="$PATH:/sbin" ldconfig -n /usr/lib/httpd/modules ---------------------------------------------------------------------- Libraries have been installed in: /usr/lib/httpd/modules If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,--rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- chmod 755 /usr/lib/httpd/modules/liblayout.so +--------------------------------------------------------+ | All done. | | | | You will need to add the directive: | | LoadModule layout_module modules/liblayout.so | | | | So that you can begin to use mod_layout. | | | | Thanks for installing mod_layout. | +--------------------------------------------------------+

■ モジュールをロードさせる

httpd.confの編集
# vi /etc/httpd/conf/httpd.conf
ロードモジュールに以下を追記
LoadModule layout_module modules/liblayout.so

httpdを再起動
【FC1 から Fedora15 / CentOS4 / CentOS5 / CentOS6 の場合】
# /etc/rc.d/init.d/httpd restart

【Fedora16以降 の場合】
# systemctl restart httpd.service

■ ヘッダ・フッタの挿入

.htaccessファイルを作成
# vi /var/www/html/.htaccess
ヘッダおよびフッタを挿入させたいファイル(拡張子)を「AddOutputFilter LAYOUT」に指定
以下は拡張子「html」「htm」「cgi」「php」に自動挿入させます。
AddOutputFilter LAYOUT html
AddOutputFilter LAYOUT htm
AddOutputFilter LAYOUT cgi
AddOutputFilter LAYOUT php
ヘッダファイルの指定
LayoutHeader /var/www/html/header.dat
フッタファイルの指定
LayoutFooter /var/www/html/footer.dat


ヘッダ・フッタファイルを作成
# vi /var/www/html/header.dat
<p>Header Test</p>
# vi /var/www/html/footer.dat
<p>Footer Test</p>

■ mod_layoutの動作確認

確認用「test.html」の作成
# vi /var/www/html/test.html
<HTML>
  <HEAD>
  </HEAD>
  <BODY>
Hello!!
  </BODY>
</HTML>

クライアントより[http://サーバのアドレス/test.html]でアクセスして、以下の画面の様にHTMLのボディ部『Hello!!』の上部に「/var/www/html/header.dat」の内容『Header Test』、下部に「/var/www/html/footer.dat」の内容『Footer Test』が表示されます。

■ コンテンツ関連

■ その他

ページ先頭へ

Copyright(©)2004-2018 First home server construction. All Right Reserved.