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のビルドをしている前提としています。 フォルダ名などは随時読み替えてください。
1) 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
2) 今回はこのままworkディレクトリ配下に取得したパッケージファイルを展開します。 (libpcreのライブラリ自体はすでに/usr/arm-linux-gnueabi/libに入っていました)
atmark@atde3:~/work$ dpkg -x libpcre3-dev_7.6-2.1_armel.deb ./
3) 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"
4) ビルド済のフォルダを削除します
atmark@atde3:~/atmark-dist$ rm -rf user/lighttpd/build
5) lighttpd.confを編集します(Armadillo-420の部分は随時読み替えてください)
atmark@atde3:~/atmark-dist$ vi vendors/AtmarkTechno/Armadillo-420/etc/lighttpd.conf "mod_ssi", ← コメントを外す ssi.extension = ( ".shtml" ) ← コメントを外す
6) makeを実行します
atmark@atde3:~/atmark-dist$ make
7) images/romfs.img.gzをArmadillo-420に書き込みます。
3. SSIを試してみる
1) 新しいromfs.img.gzでArmadillo-420を起動して、lighttpdがPCREをサポートしているか確認してみます。
[root@armadillo420-0 (ttymxc1) ~]# lighttpd -V | grep PCRE + PCRE support
2) 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>
3) 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
以上です。