当該コンテンツは、当サイトのリピータ様である『くちなし様』の導入検証よりご報告を頂きました。
また、当ページ作成もご好意によりくちなし様が作成されております。
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(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のダウンロード 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. | +--------------------------------------------------------+ |
mod_layoutのダウンロード mod_layoutの公式サイトからダウンロードするとApache2.2に無いapr_compat.hが必要となって |
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> |
確認用「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』が表示されます。