VineLinuxでmod_layoutをインストールする方法
5月 4, 2009 — 19:47

Vine Linux 4.2でmod_layoutをインストールしたら使えたので紹介します。

mod_layoutとは
広告や著作権情報など定型文を自動的に挿入するモジュールです。
無料レンタルサーバーで自動的に広告を挿入するあれです^^;
このApache用モジュールがまさにそれにあたります。

Makefileを操作したりするため敷居が高くて
しかもVine Ver4.2用に解説してくれるサイトが無かったため
インストールを控えていた方も多いのではないでしょうか?

一応インストール出来たのでやり方を紹介していきます。

apxsを使用するのでインストールします。
httpd-develをインストールしましょう。
screenshot0

mod_layout-5.0.tar.gz
ここからmod_layout-5.0.tar.gzをダウンロードします。

解凍します
# tar xvfz mod_layout-5.0.tar.gz
ディレクトリーの移動
# cd ./mod_layout-5.0
Makefileの編集
# vi ./Makefile

===========変更内容==============

##
## Makefile — Build procedure for mod_layout Apache module
##
builddir=$(shell pwd)

# the used tools
APXS=apxs
APACHECTL=/etc/rc.d/init.d/apache2
CC=`$(APXS) -q CC`
INC=-I`$(APXS) -q INCLUDEDIR` `$(APXS) -q CFLAGS` #-DLAYOUT_FILEOWNER_NAME
LD_SHLIB=`$(APXS) -q LDFLAGS_SHLIB`
VERSION = 5.0
DISTNAME = mod_layout
DISTVNAME = $(DISTNAME)-$(VERSION)

=============================

編集が面倒な場合はこちらから一応設定した物をダウンロードしてお使いください。
mod_layout-50-vine-by_orbit.tar.gz

#make
#make install

で後はインストールできます。

例)
# make
apxs -c   mod_layout.c utility.c layout.c
/usr/lib/apr-1/build/libtool –silent –mode=compile gcc -prefer-pic -O2 -m32 -m arch=i386 -mcpu=i686  -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE  -pthread -I/usr/include/pcre -I/usr/include/apache2  -I/usr/include/apr-1   -I/ usr/include/apr-1   -c -o mod_layout.lo mod_layout.c && touch mod_layout.slo
/usr/lib/apr-1/build/libtool –silent –mode=compile gcc -prefer-pic -O2 -m32 -m arch=i386 -mcpu=i686  -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE  -pthread -I/usr/include/pcre -I/usr/include/apache2  -I/usr/include/apr-1   -I/ usr/include/apr-1   -c -o utility.lo utility.c && touch utility.slo
/usr/lib/apr-1/build/libtool –silent –mode=compile gcc -prefer-pic -O2 -m32 -m arch=i386 -mcpu=i686  -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE  -pthread -I/usr/include/pcre -I/usr/include/apache2  -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 mod_layout.la  -rpath / usr/lib/apache2/modules -module -avoid-version    layout.lo utility.lo mod_layou t.lo
# make install
apxs -iac   mod_layout.c utility.c layout.c
/usr/lib/apr-1/build/libtool –silent –mode=compile gcc -prefer-pic -O2 -m32 -march=i386 -mcpu=i686  -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -pthread -I/usr/include/pcre -I/usr/include/apache2  -I/usr/include/apr-1   -I/usr/include/apr-1   -c -o mod_layout.lo mod_layout.c && touch mod_layout.slo
/usr/lib/apr-1/build/libtool –silent –mode=compile gcc -prefer-pic -O2 -m32 -march=i386 -mcpu=i686  -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -pthread -I/usr/include/pcre -I/usr/include/apache2  -I/usr/include/apr-1   -I/usr/include/apr-1   -c -o utility.lo utility.c && touch utility.slo
/usr/lib/apr-1/build/libtool –silent –mode=compile gcc -prefer-pic -O2 -m32 -march=i386 -mcpu=i686  -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -pthread -I/usr/include/pcre -I/usr/include/apache2  -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 mod_layout.la  -rpath /usr/lib/apache2/modules -module -avoid-version    layout.lo utility.lo mod_layout.lo
/usr/lib/apache2/build/instdso.sh SH_LIBTOOL=’/usr/lib/apr-1/build/libtool’ mod_layout.la /usr/lib/apache2/modules
/usr/lib/apr-1/build/libtool –mode=install cp mod_layout.la /usr/lib/apache2/modules/
cp .libs/mod_layout.so /usr/lib/apache2/modules/mod_layout.so
cp .libs/mod_layout.lai /usr/lib/apache2/modules/mod_layout.la
cp .libs/mod_layout.a /usr/lib/apache2/modules/mod_layout.a
ranlib /usr/lib/apache2/modules/mod_layout.a
chmod 644 /usr/lib/apache2/modules/mod_layout.a
PATH=”$PATH:/sbin” ldconfig -n /usr/lib/apache2/modules
———————————————————————-
Libraries have been installed in:
/usr/lib/apache2/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/apache2/modules/mod_layout.so
[activating module `layout’ in /etc/apache2/conf/apache2.conf]
+——————————————————–+
| All done.                                              |
|                                                        |
| Thanks for installing mod_layout.                      |
+——————————————————–+

確認のため
/usr/lib/apache2/modules/mod_layout.so
が存在しているか
httpd.confの設定に
LoadModule layout_module /usr/lib/apache2/modules/mod_layout.so
が存在しているかを確認しましょう

/usr/lib/apache2/modules/mod_layout.so
screenshot1

Apache2の再起動
# /etc/rc.d/init.d/apache2 restart

ヘッダーとフッターに以下のファイルから挿入する設定
/var/www/html/header.html
/var/www/html/footer.html

.htaccessに以下の文章を書き込み保存する

AddOutputFilter LAYOUT html
LayoutHeader /var/www/html/header.html
LayoutFooter /var/www/html/footer.html

実際に試した見ました
/var/www/html/header.html
/var/www/html/footer.html
にtestとだけ記述した結果
screenshot-1

/var/www/html/header.html
/var/www/html/footer.html
にバナーのURLを記述した結果
下の画像はMovable Typeに表示させてます。
screenshot-2

TOPページ
screenshot-3

画像には表示されてませんがちゃんとフッターにも表示されてます。

※追記
httpd.confでの設定
*********は環境に応じて読み替えてください。

<directory **********>
AddOutputFilter LAYOUT html
LayoutHeader /ver/www/html/header.html
LayoutFooter /ver/www/html/footer.html
</directory>

などDirectoryの設定の所で記述すれば自動表記してくれます。

PHPやCGIでも利用する
AddOutputFilter LAYOUT html htm php cgi
なんて記述すればhtm php cgiでも利用可能です。
ですが、私の環境では色々と上手く表示されない等と問題が生じましたのでお勧めしません。

※文字コードが異なる場合文字化けする可能性がありますので
自動挿入用文章に日本語表記はなるべく避けましょう。

おまけ
VineLinuxでApache2のバージョンを表示させる方法
# rpm -q apache2

コメントを残す

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

(Spamcheck Enabled)

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)