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」に該当するものがどれなのかが分かりません。
長文で申し訳ありませんが、よろしくお願い申し上げます。
コメント
eyematsu
コメントありがとうございます。
> なので、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である必要かどうかも含めて、検討してみます。
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も今後ご検討ください。