at_takuya.sasaki
2014年10月2日 22時54分
Armadillo-400シリーズに標準でインストールされているlighttpdではSSI( Server Side Include )が有効になっていません。 今回は、Armadillo-400シリーズでSSIを有効にしてみたいと思います。
1.設定ファイルを変更してみる
Armadillo-420を起動して、lighttpdの設定ファイルを変更して再起動してみます。
[root@armadillo420-0 (ttymxc1) ~]# killall lighttpd
[root@armadillo420-0 (ttymxc1) ~]# vi /etc/lighttpd.conf
"mod_ssi", ← コメントを外す
ssi.extension = ( ".shtml" ) ← コメントを外す
[root@armadillo420-0 (ttymxc1) ~]# lighttpd -f /etc/lighttpd.conf
1970-01-01 09:02:24: (../../src/mod_ssi.c.129) mod_ssi: pcre support is missing, please recompile with pcre support or remove mod_ssi from the list of modules
[root@armadillo420-0 (ttymxc1) ~]# 1970-01-01 09:02:24: (../../src/server.c.849) Configuration of plugins failed. Going down.
pcre( Perl Compatible Regular Expressions )をサポートしていないと言われました。 lighttpdのVオプションで確認してみると、確かにサポートしていません。
[root@armadillo420-0 (ttymxc1) ~]# lighttpd -V | grep PCRE
- PCRE support
2. lighttpdをPCREサポートするようにビルドし直す
*ここからはATDE3上でAtmark Dist/Kernelのビルドをしている前提としています。 フォルダ名などは随時読み替えてください。
- pcreのヘッダファイルなどが必要になるのでATDE3でarmel版のlibpcre3-devパッケージを取得します。
atmark@atde3:~$ mkdir work
atmark@atde3:~$ cd work/
atmark@atde3:~/work$ wget http://ftp.kr.debian.org/debian-archive/debian/pool/main/p/pcre3/libpcre3-dev_7.6-2.1_armel.deb
- 今回はこのままworkディレクトリ配下に取得したパッケージファイルを展開します。 (libpcreのライブラリ自体はすでに/usr/arm-linux-gnueabi/libに入っていました)
atmark@atde3:~/work$ dpkg -x libpcre3-dev_7.6-2.1_armel.deb ./
- lighttpdのMakefileを修正します
configureに渡すオプションにPCREに関するオプションを追加します。pcre-configとincludeの場所は随時読み替えてください.。
atmark@atde3:~$ cd atmark-dist
atmark@atde3:~/atmark-dist$ vi user/lighttpd/Makefile
--prefix=/usr --libdir=/usr/lib/lighttpd --with-openssl \ ←末尾にバックスラッシュを追加して以下の3行を追加します
PCRECONFIG=/home/atmark/work/usr/bin/pcre-config \
PCRE_LIB=/usr/arm-linux-gnueabi/lib/libpcre.so \
CFLAGS="$(CFLAGS) -DHAVE_PCRE_H=1 -DHAVE_LIBPCRE=1 -I/home/atmark/work/usr/include"
- ビルド済のフォルダを削除します
atmark@atde3:~/atmark-dist$ rm -rf user/lighttpd/build
- lighttpd.confを編集します(Armadillo-420の部分は随時読み替えてください)
atmark@atde3:~/atmark-dist$ vi vendors/AtmarkTechno/Armadillo-420/etc/lighttpd.conf
"mod_ssi", ← コメントを外す
ssi.extension = ( ".shtml" ) ← コメントを外す
- makeを実行します
atmark@atde3:~/atmark-dist$ make
- images/romfs.img.gzをArmadillo-420に書き込みます。
3. SSIを試してみる
- 新しいromfs.img.gzでArmadillo-420を起動して、lighttpdがPCREをサポートしているか確認してみます。
[root@armadillo420-0 (ttymxc1) ~]# lighttpd -V | grep PCRE
+ PCRE support
- SSIのサンプルコードを書いてみます。(uname -aを実行するサンプル)
[root@armadillo420-0 (ttymxc1) ~]# vi /home/www-data/sample.shtml
<html>
<head><title>SSI sample</title></head>
<!--#exec cmd="/bin/uname -a" -->
</html>
- Webブラウザから以下のURLを指定します。
http://Armadillo-420のIPアドレス/sample.shtml
以下のようにArmadillo-420上でuname -aを実行した結果が表示されます。
Linux armadillo420-0 2.6.26-at19 #8 PREEMPT Wed Oct 1 11:45:07 JST 2014 armv5tejl unknown
以上です。