以下から、Raspberry Pi OS Liteをインストールするためにインストーラをダウンロードする。
https://www.raspberrypi.org/software/

Download for Windowsをクリック。
imager_1.5.exe
がダウンロードされるので、インストールする。
Raspberry Pi Imager v1.4を起動する。

Raspberry Pi OS(Other)を選択。

Raspberry Pi OS Lite(32-bit)を選択。

SD CardをPCに認識させたうえで、”CHOOSE SD CARD”をクリック。
インストール先のSD Cardを選択する。
“WRITE”をクリック。

そのディスクの中身は消されちゃうけどよい?聞かれるので、”YES”をクリック。

終わるまで待ち。

「SDカードをリーダーから外ずせるよ」、と言われるのでSD-Cardを取り外して”CONTINUE”をクリック。
Raspberry Pi zero WHに
・SD-Cardを挿入
・ディスプレイをHDMIケーブルで接続
・USBキーボードを接続
・電源用USBケーブルを接続
して電源を投入する。
ログイン画面が出たら、
user: pi
password: raspberry
を入力する。
Raspiの設定を行う。
$ sudo raspi-config
キーボード設定
SSH有効化
WIFIアクセスポイント設定
$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
最後尾にWIFIの設定(アクセスポイント名・パスワード)を書く。
network={
ssid="access-point"
psk="password"
}
リブートをする
$ sudo reboot
リブートを完了したら、ログインして、
$ ifconfig
で`wlan0`の`inet:`の項目にご自宅のネットワークアドレスが書かれていれば、無線LANが使える状態です。
もし、見覚えのないアドレスや、`inet:`自体がない場合は、WIFIの設定が失敗しています。
もう一度見直してみてください。
以降は、SSHを使ってPCから操作をします。
ここでは、teratermを使用します。

さきほどのログインの時に使ったユーザー名とパスワードを入力。

インストールを円滑に行うためにアプリ取得先のサーバーを追加します。
$ sudo nano /etc/apt/sources.list
最後尾に以下を追加する。
deb http://ftp.jaist.ac.jp/raspbian/ buster main contrib non-free rpi
deb http://ftp.tsukuba.wide.ad.jp/Linux/raspbian/raspbian/ buster main contrib non-free rpi
パッケージリストの更新を行う。
$ sudo apt-get update
好きなテキストエディタがあればインストールする。
例えば、emacsの場合は以下を入力。nanoでよいならば必要ありません。
$ sudo apt-get -y install emacs
WEBサーバーをインストールする。
$ sudo apt-get -y install apache2
PHPをインストール・有効化する。
$ sudo apt-get -y install php7.3 php7.3-fpm php7.3-mysql php7.3-gd php7.3-mbstring php7.3-zip php7.3-xml
$ sudo a2enmod proxy_fcgi setenvif
$ sudo a2enconf php7.3-fpm
PHPの設定を変更する。
$ sudo nano /etc/php/7.3/fpm/php.ini
大きいファイルアップロードするので以下の2つを変更する。
upload_max_filesize = 4000M
post_max_size = 4000M
WEBアカウントがUSBメモリをmountできるように以下の設定をする。
$ sudo nano /etc/fstab
ファイルの最後尾に以下を追加する。
/dev/sda1 /sda1 auto users,noauto,rw,uid=www-data,gid=www-data 0 0
USBがマウントするフォルダを作成する。
sudo mkdir /sda1
WEBアカウントがGPIOを制御できるように以下の設定をする。
$ sudo gpasswd -a www-data gpio
WEBアカウントがraspiの電源を落とせるように以下の設定をする。
$ sudo visudo
最後尾に以下を追加する。
www-data ALL= NOPASSWD: /sbin/shutdown
※ 保存する際に、.tmpファイルを保存するような表示になるが、保存すると目的のファイル(/etc/sudoers)が変更されます。
elFinderをダウンロード・展開・WEBへコピーする。
※このバージョンがダウンロードできない場合は、
https://studio-42.github.io/elFinder/
から最新のバージョン番号に書き換えたうえで実行してください。
$ wget https://github.com/Studio-42/elFinder/archive/2.1.57.zip
$ unzip 2.1.57.zip
$ sudo cp -R elFinder-2.1.57/. /var/www/html/
$ sudo cp /var/www/html/php/connector.minimal.php-dist /var/www/html/php/connector.minimal.php
elFinderのセットアップをする。
$ sudo nano /var/www/html/php/connector.minimal.php
以下を変更する。★の行を追加する。(★は目印なだけなので書いてはダメ)
function access($attr, $path, $data, $volume, $isDir, $relpath) {
★ /*
$basename = basename($path);
return $basename[0] === '.' // if file/folder begins with '.' (dot)
&& strlen($relpath) !== 1 // but with out volume root
? !($attr == 'read' || $attr == 'write') // set read+write to false, other (locked+hidden) set to true
: null; // else elFinder decide it itself
★ */
}
★の”pathと””uploadAllow”と書かれた行を書き換える。(★は目印なだけなので書いてはダメ)
$opts = array(
// 'debug' => true,
'roots' => array(
// Items volume
array(
'driver' => 'LocalFileSystem', // driver for accessing file system (REQUIRED)
★ 'path' => '/sda1', // path to files (REQUIRED)
'URL' => dirname($_SERVER['PHP_SELF']) . '/../files/', // URL to files (REQUIRED)
'trashHash' => 't1_Lw', // elFinder's hash of trash folder
'winHashFix' => DIRECTORY_SEPARATOR !== '/', // to make hash same to Linux one on windows to\
o
'uploadDeny' => array('all'), // All Mimetypes not allowed to upload
★ 'uploadAllow' => array('all'),
'uploadOrder' => array('deny', 'allow'), // allowed Mimetype `image` and `text/plain` on\
ly
'accessControl' => 'access' // disable and hide dot starting files (OPTIONA\
L)
),
WEBサーバーを再起動する。(手順の最後にリブートするのでしなくてもOK)
$ sudo service apache2 restart
Remote USB Selectorのソフトウェアをインストールする
$ rm main.zip
$ wget https://github.com/suzgaku/remote_usb_selector/archive/main.zip
$ unzip -o main.zip
$ cd ./remote_usb_selector-main
$ sudo ./install.sh
$ cd
起動時にスクリプトが読まれるように登録する。
$ sudo nano /etc/rc.local
“exit 0″の直前に以下を追加する。
remote_usbsel.sh
remote_usbsel_update.sh
リブートする。
$ sudo reboot