Armadilloフォーラム

Armadillo-840でslim4を動作させる方法について

eyematsu

2023年5月15日 11時43分

Armadillo-840(Atmark Dist)上で、WEBサーバを構築しています。

Armadillo-840上で各種設定を行うのではなく、ATDEでイメージを作成し、
展開する方式を採っております。

現状は、nginxとPHP7で開発を行っておりますが、
slim4というphpフレームワークを使用できないかという要望があります。

また、全体的にArmadilloへのインストールはDebianパッケージで行っており、
大まかな構築手順は以下の通りです。

[ATDEでの作業]
①必要追加パッケージの展開
 dpkg -x php7.0-common_7.0.33-0+deb9u12_armhf.deb /home/atmark/image/atmark-dist/romfs
 dpkg -x php7.0-fpm_7.0.33-0+deb9u12_armhf.deb /home/atmark/image/atmark-dist/romfs
 dpkg -x nginx-common_1.10.3-1+deb9u7_all.deb /home/atmark/image/atmark-dist/romfs
 dpkg -x nginx-full_1.10.3-1+deb9u7_armhf.deb /home/atmark/image/atmark-dist/romfs
 ~省略~

②各種configや起動スクリプト等の設定

③イメージ作成
 make romfs
 make image

④USBメモリにイメージを格納

[Armadillo-840]での作業
①USBメモリのイメージを展開する。
 [armadillo ~]# mount -t vfat /dev/sda1 /mnt
 [armadillo ~]# netflash -bknsr /dev/flash/kernel /mnt/linux.bin.gz
 [armadillo ~]# netflash -bknsr /dev/flash/userland /mnt/romfs.img.gz
②電源を再投入する。

この手順でPHPが動作することは確認できておりますが、
slim4をArmadillo-840上に構築することは可能なのでしょうか?

slim4のインストールガイドを参照すると、
「composer require php-di/slim-bridge」
のようなコマンドを実行するような記述がありますが、
ATDE上でslim4をインストールできたとして、それをイメージに反映させ、
Armadillo-840上で使用するのでしょうか?

「dpkg -x 」で必要パッケージをインストールできれば簡単であるかと思いましたが、
https://www.debian.org/distrib/packages
には「slim4」に該当するものがどれなのかが分かりません。

長文で申し訳ありませんが、よろしくお願い申し上げます。

コメント

at_ohsawa

2023年5月15日 13時28分

composerは単にphpライブラリをダウンロードするスクリプトのようなので、
--work-dir=で任意のディレクトリを指定すると、そこにファイル群をダウンロードするようです。

https://stackoverflow.com/questions/33080068/running-composer-in-a-diff…

なので、working-dirをdpkg -xの展開先と同等に適当にromfsディレクトリに指定するか、どこかにダウンロードして
おいてコピーすると良いと思います。

composerは使った事無いのですが、vendorというディレクトリに必要なファイルすべてがダウンロードされて
autoload.phpというファイルでダウンロードしたもの全てをロードできるみたいですね。

ちなみにcomposerもslimもdebian wheezy世代には存在しないので、composerは手動でダウンロードする
必要が有ります。
https://getcomposer.org/download/

ちなみに、Armadillo-840は既に新規設計には推奨していませんが、より新しい
Armadillo-IoT G4/X2ではdebian bullseyeコンテナを使うことができます。
debian bullseyeではcomposerはパッケージがありますし、bullseye-backports
からパッケージとしてslim3も供給されているので新しいArmadilloも今後ご検討ください。

eyematsu

2023年5月15日 18時38分

コメントありがとうございます。

> なので、working-dirをdpkg -xの展開先と同等に適当にromfsディレクトリに指定するか、どこかにダウンロードして
> おいてコピーすると良いと思います。

まずはATDE環境にslim4をインストール(+各種設定)し、それをromfsディレクトリにコピーしてイメージを作成すれば
実現できそうだと認識しました。

おおまかな手順は以下の通りでしょうか。

[ATDEでの作業]
①slim4のインストールガイドに従い、「composer」を使用してATDE上にslim4をインストールする。
②config等、各種設定を行う。
③Armadillo-840に展開するイメージ(romfs)に必要モジュール、ファイルをコピーする。
④イメージを作成する。
 make romfs
 make image

出来上がったイメージは今までと同様に展開する。

まずは上記「①」について試してみようと思います。

> ちなみに、Armadillo-840は既に新規設計には推奨していませんが、より新しい
> Armadillo-IoT G4/X2ではdebian bullseyeコンテナを使うことができます。
> debian bullseyeではcomposerはパッケージがありますし、bullseye-backports
> からパッケージとしてslim3も供給されているので新しいArmadilloも今後ご検討ください。
情報ありがとうございます。
slim3であるならば「dpkg」でインストールできそうなので、
slim4である必要かどうかも含めて、検討してみます。