つい最近、超短期(クライアントがギリギリに依頼)の上、人日8000円でシステム組まされて、
挙句肺炎で数週間寝込んでしまった私で御座います。
仕事付き合う人間を真剣に考えようと思っている今日この頃。
で、その仕事の際にRaspberryPi5を使う機会がありまして、初めて触った訳ですがナカナカ良い。
というか最初はそーでも無かったけど、色々考えると悪くない。
という思いに至り、今回はRaspberryPi5をWEB開発専用機を作るまでの経緯と、備忘録。
目次
RaspberryPi5の最初の印象
Raspberrypi5最初は私の手持ちのM.2 SSDがゴミだった為にそーでも無い印象でした。
ただ、最初から悪いとは思っていません。
Raspberry Pi5 + M.2 SSD + ubuntu24.10
その後やっぱりちゃんとしたM.2 SSDとubuntu24.10の組み合わせを試してみたくてやってみます。
Patriot P310 240GB Internal SSD ELUTENG PCIe NVMe M.2 SSD 2280拡張ボード Geekworm Raspberry Pi 5 ケースM.2 SSDを使う際に /boot/firmware/config.txt に下記を追記するとubunntuだと不安定になるようでやめた。
ちなみに不安定になるのはwifi。
RaspberryPi OSだと何も起きないのに。
dtparam=pciex1 dtparam=pciex1_gen=3 dtparam=nvme
2024/11/11 追記
色々原因が分かり、解決方法をUPしました
RaspberryPi5 + Ubunntu24 Desktop の安定動作を求めて TP-Link AC600 Archer T2U Nano
メリットとデメリットを考える
動画内でも少しぼやいていますが、良し悪しがあるのでナカナカ悩みました。
まずはメリット。
・普段ubunntuのVPSが多いので、ほぼ同一の環境を構築出来る。
・プログラミング専用機にする事で、母艦のWindowsの開発環境を小さく出来る。
・特にWordpressの開発等は、本当は何個も環境作りたいけど母艦のストレージ圧迫するのが嫌で一個のWPで色々やっていた環境から解放。
・持ち運び易いサイズなので、開発状態をそのままクライアント見せるのが楽。
・リモート可なのでPCは何でもOK。
・WIN純正のRDPで接続できる。
・一応OSをデスクトップ版にしてるので、出先でもコーディンやRAW現像とかWEB閲覧ができる。
・等々
デメリット
・ubunntuである必要性はあるのか??ラズパイOSのが動作は早い。
・ラズパイ5が良くなったとは言えN100よりスペック的には下です。
・電源が5.1V5Aと微妙。そして結構デカい。
・対応出来るモバイルバッテリーが少ない。
・RDP経由だともっさり。多分WIFIが弱い。
個人的な感想だとこんなトコロかな?と。
多少微妙なところはあるモノの、上手く使えばWIN側の開発環境を小さく出来るはやっぱり良いと思いました。
特にサブ機のノートPCのストレージ確保に良い。
そんなワケでなんでもやってみるべし!!という事で、ラズパイ5のWEB開発環境専用機構築の始まりです。
SSH接続
RDPからの接続のみだと、どうしても効率が上がらないのでwinからSSH出来るように。
apt install openssh-server
鍵作りたい人は作ったほうが良いと思います。
私は現時点では作って無いけど、持ちだす機会次第で考えようかと。
LAMP環境構築
当然ですが、LAMP環境作らないと話になりません。
この辺は過去記事見れば分かりますが一応書いておきます。
apache2とphpとmysql
下ではMYSQLにしてますが、私はmariadbのが多いですし、実際はmariadb入れてます。
まぁ MYSQLのが良いかなーとMYSQLの備忘録に。
必要なモジュールは都度追加。
apt install apache2 php php-mysql mysql-server apt install php-{gd,curl,mbstring,intl,zip,imagick,gd,dom,xml}
mysqlの設定
mysqlの設定ですが、USERとpasswordは自分で変えて下さい。
私は作ったユーザーに全権限与えてAdminerでDB追加したりします。
SSH経由でも良いけど、Adminerのが見やすい。
service mysql start mysql -uroot -p mysql> CREATE USER 'user'@'localhost' IDENTIFIED BY 'password'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost'; mysql> FLUSH PRIVILEGES; mysql> quit;
これで基本的なのは終わりですが、私は Laravel も使うのでComposerとかも入れます。
Composerのインストール
apt install -y curl php-cli php-mbstring git unzip php -r "copy ( 'https://getcomposer.org/installer', 'composer-setup.php' ) ;"; php composer-setup.php --install-dir=/usr/local/bin --filename=composer; composer -v / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 2.1.9 2021-10-05 09:47:38
LAMP環境構築はこんなトコロでしょう。
WordPressの場合の設定
本番環境とは少し異なるというか、やる必要のない部分がありますが過去記事を参考にどうぞ。
Amazon Lightsail の ubuntu 22.04 に WordPress を入れるまで
Laravelの場合の設定
Laravelも同様に過去記事を参考に。
Amazon Lightsail に Laravel を入れるメモ/
VScodeをインスト
VScodeはSSHしないでインスト出来ます。
https://code.visualstudio.com/Download
↑のページからUbunntu用インストして終わり。
ubunntuのユーザーからVScodeで編集可能にする
ubunntuのapache2の場合、wwwディレクトリは『www-data』の配下になります。
ですので、そのままではVScodeで編集出来ませんので、権限系を変更。
#基本的にはwww-data配下になるので/var/www/htmlに何か入れたら、所有者変更 chown -hR www-data:www-data /var/www/html #VScodeで編集するためにユーザーをwww-dataグループに。 #ユーザー名はubunntuのログインユーザー。 usermod -aG www-data 追加したいユーザー名 #パーミッション変更 chmod 775 -R /var/www/html
VScodeからubunntu側をリモート編集 Remote-SSH
RDPを使っても良いのですが、やっぱりWIN側から編集したほうがサクサク進みます。
なのでリモート編集出来るのか色々試した結果一番良かったのは『Remote-SSH』
これをVScodeの拡張機能にインストする事で、WIN側のVScodeから編集可能になります。
GITも動くのでとても便利なので同じ事をやりたい人はマストだと思う。
インスト関連はコチラのサイト様が非常に参考になります。
【VS Code】Remote SSHでSSH接続する
mkcert でSSL対応にする
別にやらなくても良かったのですが後述するwebdavの為にSSL化をやりました。
ブラウザの警告無視して入れるんで、やる必要は薄い気もするけどやったほうが良い部分もあるかも。
#mkcertインスト apt install mkcert #鍵作成。『test.local』の部分はubunntuのホスト名にする。 mkcert -install mkcert test.local The certificate is at "./test.local.pem" and the key at "./test.local-key.pem" #鍵移動。 mv test.local-key.pem /etc/ssl/private/testlocal-key.pem mv test.local.pem /etc/ssl/certs/testlocal.pem #SSL化 a2enmod ssl #設定ファイルに追記 nano /etc/apache2/sites-available/default-ssl.conf #SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem #SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key SSLCertificateFile /etc/ssl/certs/testlocal.pem SSLCertificateKeyFile /etc/ssl/private/testlocal-key.pem #設定ファイル有効化 a2ensite default-ssl.conf #apache2再起動 service apache2 restart
あとは作成されたルート証明書を取得します。
場所は
ls -l /root/.local/share/mkcert total 8 -r-------- 1 root root 2488 Nov 4 14:44 rootCA-key.pem -rw-r--r-- 1 root root 1635 Nov 4 14:44 rootCA.pem # rootCA.pemを使う。
rootCA.pemのままの拡張子だとwinに入らないので.crtに変えてインストします。
これで警告メッセージが無くなります。
FireFoxはブラウザに直接入れた気がする。
webdavを導入
SambaだとVScodeで開けないと何処かで見たような気がして、
当初VScodeのリモート編集はwebdavでやろうと思っていました。
ただやってみるとタイムラグが大き過ぎて微妙。
最終的にwebdavは無効化しましたが、便利な場合もあると思うので一応備忘録。
#インスト apt install apache2-utils #設定ファイル nano /etc/apache2/sites-available/webdav.conf # ここでは/var/www/htmlを全てwebdavの対象にしています。 Alias /webdav /var/www/html <IfModule mod_dav.c> DAVMinTimeout 600 <Location /webdav> DAV On EnableSendfile off SSLRequireSSL AuthType Basic AuthName WebDAV AuthUserFile /etc/apache2/.htpasswd Require valid-user Order deny,allow Deny from all Allow from all DirectoryIndex disabled </Location> </IfModule> # htpasswdの設定 htpasswd -Bc /etc/apache2/.htpasswd 追加したいユーザー New password: # パスワード設定 Re-type new password: Adding password for user 追加したユーザー # 設定ファイル有効化 a2ensite webdav # apache2再起動 service apache2 restart
webdav経由でhtmlディレクトリを全て見たければこうなりますが、
色々試した結果コードはwebdav経由で触らないほうが面倒じゃないと思います。
そして私はwebdavは必要じゃないかも・・・ となり無効化しました。
ファイルサーバー組むなら良いと思います。
FTPを導入
これはコーディングの為というより、カメラの為。
SONYのカメラはFTP転送出来る機種があります。
今まではWINにFTPソフト入れて立ち上げていたのですが、ラズパイにFTP入れれば電源入れるだけだなと思い導入。
# インスト apt install vsftpd nano /etc/vsftpd.conf # コメント解除&追記 write_enable=YES chroot_local_user=YES chroot_list_enable=YES #ここのコメントを外すと下記のlocal_rootの上層に行けます。 allow_writeable_chroot=YES chroot_list_file=/etc/vsftpd.chroot_list ls_recurse_enable=YES local_root=/home/ubunntu #ubunntuの部分はログインユーザー。ここがrootになる。 nano /etc/vsftpd.chroot_list ubunntu #ubunntuの部分はログインユーザー。 # vsftpd再起動 systemctl restart vsftpd
私はFTPはほぼ使わないのでchroot_list_enableはコメントアウトしたままです。
専用のディスプレイを作りそこのみFTPでアクセス出来るようにしています。
色々やってみて
デメリットよりメリットを多く感じられたので、
今後はRaspberryPi + ubunntu にWEBの開発をどんどん移管すると思う。
ただ、RaspberryPI OSでも良いでは??? という部分は未だに付きまとっています。
私のようにVPSでubunntuに依存していなければ、RaspberryPI OSのがメリット多いかも知れません。
ただubunntuは長期サポートがあるので、その辺は魅力かも知れませんね。
あと、ここには書いてませんが私は手持ちの音楽データは全てubunntuに入れて、
winとファイル共有しメディアサーバーとしても使う事にしました。
正直なトコロ、RaspberryPI4は凄く良かったのですが、ここまで色々やろうとは思いませんでした。
RaspberryPI5になりIOT機器としては電源関係で魅力は落ちたような気もしますが、
PCとしての性能が正常進化したので、このような使い方をやろうと思えたワケです。
私は、RaspberryPi初代をFAX機、RaspberryPI4をCNC.jsとoctopi、RaspberryPI ZERO を監視カメラとして使っており、
複数使い分けていますがRaspberryPI5はPCライクになり1台のみかな といった感想ですね。
そんなワケで長々と書きましたが、どなたかの参考になれば幸いです。
Raspberrypi5