ブログ

Armadillo-IoTでlighttpd+php5-cgi

at_kazutaka.bito
2015年11月26日 15時56分

(2016/7/2更新) php5-cgi_5.4.45-0+deb7u2_armel.deb を php5-cgi_5.4.45-0+deb7u4_armel.deb に更新しました。

Armadillo-IoTでlighttpd+php5-cgiで、phpinfoが見えるところまで確認しました。
下記に手順を説明します。

1.php5-cgiに必要なパッケージの入手。

atmark@atde5:~$ mkdir temp_php
atmark@atde5:~$ cd temp_php
atmark@atde5:~/temp_php$ wget http://security.debian.org/debian-security/pool/updates/main/p/php5/php5-cgi_5.4.45-0+deb7u4_armel.deb
atmark@atde5:~/temp_php$ wget http://ftp.jp.debian.org/debian/pool/main/libo/libonig/libonig2_5.9.1-1_armel.deb
atmark@atde5:~/temp_php$ wget http://ftp.jp.debian.org/debian/pool/main/q/qdbm/libqdbm14_1.8.78-2_armel.deb
atmark@atde5:~/temp_php$ ls
libonig2_5.9.1-1_armel.deb    php5-cgi_5.4.45-0+deb7u4_armel.deb
libqdbm14_1.8.78-2_armel.deb

2.php5-cgiに必要なパッケージの展開。

atmark@atde5:~/temp_php$ dpkg-cross -M --build --arch armel libonig2_5.9.1-1_armel.deb
atmark@atde5:~/temp_php$ dpkg-cross -M --build --arch armel libqdbm14_1.8.78-2_armel.deb
atmark@atde5:~/temp_php$ ls
libonig2-armel-cross_5.9.1-1_all.deb    libqdbm14_1.8.78-2_armel.deb
libonig2_5.9.1-1_armel.deb              php5-cgi_5.4.45-0+deb7u4_armel.deb
libqdbm14-armel-cross_1.8.78-2_all.deb
 
atmark@atde5:~/temp_php$ sudo dpkg -i libonig2-armel-cross_5.9.1-1_all.deb
atmark@atde5:~/temp_php$ sudo dpkg -i libqdbm14-armel-cross_1.8.78-2_all.deb
 
atmark@atde5:~/temp_php$ dpkg -x php5-cgi_5.4.45-0+deb7u4_armel.deb temp
 
atmark@atde5:~/temp_php$ cd temp/usr/bin/
atmark@atde5:~/temp_php/temp/usr/bin$ ls
php5-cgi

3.プロダクトディレクトリ(下記例は、my-productという名前)にphp5-cgiを追加。

atmark@atde5:~/temp_php/temp/usr/bin$ cd ~/atmark-dist/vendors/AtmarkTechno/my-product
atmark@atde5:~/atmark-dist/vendors/AtmarkTechno/my-product$ cp ~/temp_php/temp/usr/bin/php5-cgi usr/bin/

4.プロダクトディレクトリ(下記例は、my-productという名前)のlighttpd.confを編集。

atmark@atde5:~/atmark-dist/vendors/AtmarkTechno/my-product$ gedit etc/lighttpd.conf

で、lighttpd.confをエディタで開いて、下記の2か所を編集します。

1か所目

#                                "mod_fastcgi",

の#を外して

                                "mod_fastcgi",

にします。

2か所目

#fastcgi.server             = ( ".php" =>
#                               ( "localhost" =>
#                                 (
#                                   "socket" => "/tmp/php-fastcgi.socket",
#                                   "bin-path" => "/usr/bin/php"
#                                 )
#                               )
#                            )

fastcgi.server = (".php" => ((
"bin-path" => "/usr/bin/php5-cgi",
"socket" => "/tmp/php.socket"
)))

にします。

5.コンフィギュレーションで、使わないアプリケーションを外す。

Armadillo-IoTの標準のコンフィギュレーションで、php5-cgiを追加すると ROMのユーザーランド領域(約26MB)に収まらないので、 使わないアプリケーションを外します。

php5-cgiを追加した場合、イメージファイルのサイズは約4MB増加します。

標準のコンフィギュレーションで有効になっているアプリケーションで イメージファイル内のサイズが大きいものは
Ruby:約7MB
Java:約8MB
なので、下記ではJavaを外すことにしています。

atmark@atde5:~/atmark-dist/vendors/AtmarkTechno/my-product$ cd ~/atmark-dist
atmark@atde5:~/atmark-dist$ make menuconfig

でコンフィギュレーションのメインメニューを開いて、

Main Menu
Kernel/Library/Defaults Selection --->
[*] Customize Vendor/User Settings

でして、ユーザーランドコンフィギュレーションの設定画面を開いて、

Userland Configuration
Miscellaneous Applications --->
[ ] java

のように[ ]内の*を外してJavaを無効にします。

6.ビルドして、Armadillo-IoTにイメージを書き込みます。

7.Armadillo-IoTを起動してログインします。

8.lighttpdを起動。

/tmpの属性を変更して、lighttpdを起動します。

[armadillo ~]# chmod 777 /tmp
[armadillo ~]# lighttpd -f /etc/lighttpd.conf

9.phpinfoで動作確認。

/home/www-dataにtest.phpという名前でphpinfoのファイルを作成します。

[armadillo ~]# vi /home/www-data/test.php

test.phpファイルの内容は下記のように記述します。

<?php
phpinfo();
?>

Armadillo-IoTとネットワーク接続されているPCのブラウザで、 [ArmadilloのIPアドレス]/test.php のURLにアクセスすると、phpinfoが画面が見えます。