*当サイトのリンクにはAmazonアソシエイトやアフィリエイトリンクが含まれております。

RaspberryPi5にUbunntu24 Desktop を入れてWEBの開発専用機にする。

つい最近、超短期(クライアントがギリギリに依頼)の上、人日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
おすすめのコンテンツ

広告

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください