Raspberry Pi ヘッドレスインストール～SSHとPHPインストールまで

Raspberry Pi ヘッドレスインストール～SSHとPHPインストールまで

# この記事で説明すること
Raspberry Pi3 または　Zeroに対応した、ディスプレイなしでのRasbianをインストールと、
その後のSSHの有効化とPHPのインストールを説明します。


# 最低限必要なもの
■マイクロSDカード
8GB以上のマイクロSDカード(理想的にはTOSHIBA製、できれば16GB以上の方が後々余裕がある)
Raspberry Piで使用するマイクロSDカードには相性問題があるので、過去に使えたという報告があるものは[こちらで](https://elinux.org/RPi_SD_cards#Working_.2F_Non-working_SD_cards)一覧できます。

■給電用のマイクロUSB充電器


# Noobsをダウンロードする
今回は操作が簡単なビギナー向けOSインストーラーのNoobsをインストールします。
まず以下よりダウンロードしてください。

[NOOBS](https://www.raspberrypi.org/downloads/noobs/)

今回は左側のDownload ZIPをクリックしてダウンロードします。
その後ダウンロードして展開したら、その内容物をマイクロSDカードへとコピペします。
![WS000001.JPG](https://qiita-image-store.s3.amazonaws.com/0/365619/cc72e986-faf1-ab9e-5db5-a88052361516.jpeg)


単純にコピペすればOKです。


# VNCの設定をする

今回はディスプレイなしでインストールしますので、その準備作業をします。
あらかじめWifiアクセスポイントで利用するSSIDとパスワードを控えておいてください。

# VNCの有効化

![WS000002.JPG](https://qiita-image-store.s3.amazonaws.com/0/365619/58209446-d18c-6e25-2c3f-a96c6cbe070a.jpeg)

SDカードのルートディレクトリに、recovery.cmdlineというファイルがあると思います。
それをエディタなどで開き、中身を以下のように変更します。



変更前

```
runinstaller quiet ramdisk_size=32768 root=/dev/ram0 init=/init vt.cur_default=1 elevator=deadline

```

変更後

```
runinstaller vncinstall ramdisk_size=32768 root=/dev/ram0 init=/init vt.cur_default=1 elevator=deadline
```
![WS000003.JPG](https://qiita-image-store.s3.amazonaws.com/0/365619/a675f431-1126-5881-1fbd-b08ce7295518.jpeg)

以上にようにすればOKです。



## wpa_supplicant.confを作る

以下のサイトでSSIDとパスフレーズをハッシュ化します。
[wpa_supplicant.conf作成](https://mascii.github.io/wpa-supplicant-conf-tool/)

パスフレーズの入力は不安でしょうが、すべてブラウザ側で処理されるのでパスフレーズが漏れることはありません。
一度「名前をつけて保存」して、ダウンロードしてからローカルで実行しても大丈夫です。

![WS000004.JPG](https://qiita-image-store.s3.amazonaws.com/0/365619/a1149b1f-6b15-f1cb-6055-a290af160207.jpeg)

SSIDとパスフレーズを入力して、一度「追加」を押してから、「wpa_supplicant.conf作成」を押してダウンロードします。

ダウンロードしたら、そのファイルをSDカードのルートディレクトリにコピーします。

## SSHを有効にする
SDカードのディレクトリから、`os¥Raspbian_Full¥partition_setup.sh`をエディタで開きます。
ファイルの終端のほど近くの場所に以下のように付け加えてください。

```bash
echo "ssh" >/tmp/1/ssh

umount /tmp/1
umount /tmp/2
```

保存して、閉じてください。


## VNCをダウンロード

今回はVNC Viewerを使用しました。
[https://www.realvnc.com/en/connect/download/viewer/](https://www.realvnc.com/en/connect/download/viewer/)

Windowsでも使えますし、Macならそのアイコンをクリックしてもらえればダウンロードに進むことができます。

ダウンロードしたらインストールしますが、インストール自体はシンプルに進めていけばいいだけです。

## Raspberry Piを起動しVNCを実行する
まずSDカードをセットしてください。その後にマイクロUSBケーブルを接続します。
これでRaspberry Piは起動しました。

### IPアドレスを知る
VNCでアクセスするため、まずIPアドレスを調べます。
Macは(自分は未確認ですが)ターミナルから`ssh pi@raspberrypi.local`と打てばSSHで繋がるようです。パスワードを求められたら`raspberry`と入力してください。
`ip addr`と入力し、二つある`inet`のうち下側の`inet`の右隣のIPアドレス(192.168.xx.xx)がRaspberry PiのIPアドレスです。

Windowsの場合はコマンドプロンプトから`arp -a`と入力すると、DHCPの払い出し状況を確認できます。
その中から**b8-27-eb**で始まる物理アドレスがあると思うので、それを使用します。

```bash
 192.168.1.214         b8-27-eb-xx-xx-xx     動的
```


IPアドレスが分かったら、PC側からVNC Viewrを開き、アドレスバーにIPアドレスとポート番号5900をあわせて記述すればアクセスできます。
例えば自分の場合は`192.168.1.214:5900`とアドレスバーに入力してアクセスできました。




![WS000006.JPG](https://qiita-image-store.s3.amazonaws.com/0/365619/5bc68d74-c947-93d0-1e88-d716f09e4cf3.jpeg)

画面のようにアクセスできれば、あとは指示に従ってインストールすればOKです。
下の方にある言語のプルダウンから日本語に設定し、
Rasbianのチェックボックスにチェックを入れてから、左上のインストールをクリックしてください。
これでRasbianのインストールが始まります。


# その後は？
VNC自体はNoobsに適用されたものなので、OSであるRasbianの設定ではありません。
Rasbianがインストールされた後はRasbian側に改めてVNCの設定をする必要があります。

ただすでにSSHは有効化されているので、PuttyやTeraTermなどでIPを指定しSSHアクセスすることができます。
なお初期設定のアカウント名はpi、パスワードはraspberryです。

パスワードはpasswdコマンドで変更できるので、必ず変更しておいてください

```bash
passwd
Changing password for pi.
```

# SSHの設定
もしもヘッドレスインストールを実施した場合はすでにSSHが有効化されていますが、
SSHをあらためて設定する場合はメニューバー左端のラズベリーアイコンをクリックします。
プルダウンメニューから [設定]-[Raspberry Piの設定]をクリックします。

![WS000007.JPG](https://qiita-image-store.s3.amazonaws.com/0/365619/cd7729d3-bec2-48e4-f93b-bd860e51ba83.jpeg)

![WS000008.JPG](https://qiita-image-store.s3.amazonaws.com/0/365619/0f71baf5-88fe-adff-7f0b-8a880b4e24b3.jpeg)

SSHとVNCを有効化すればOKです。



# PHPのインストール

aptでPHP7.2をインストールします。

## https://packages.sury.org/php/ のリポジトリ追加
以下のコマンドを実行してください。

```bash
sudo apt-get -y install apt-transport-https lsb-release ca-certificates
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
sudo sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
```

続いてaptの更新をします。

```
sudo apt update
sudo apt upgrade
```

PHP7とその関連物をインストールします。

```
sudo apt install php7.2 php7.2-common php7.2-cli php7.2-fpm php7.2-mbstring php7.2-sqlite3 php7.2-sqlite php7.2-json php7.2-xml php7.2-curl
```

最後に、ちゃんとインストールされたか確認します。

```sh
php -v
```

PHPのバージョン情報が出てくれば正常にインストールされています。

# 終わりに
やや散漫とした説明ですが、ヘッドレスインストールの方法とPHPのインストールまで備忘録的まとめました。
お役に立てれば光栄です。

# 参考

ヘッドレスインストールの参考にさせていただきました。
[Raspberry Pi Zero Wにヘッドレスインストールする](https://qiita.com/rshibasa/items/c63ff7450842e3b0ab9b)

[Raspberry Piの無線LANをmicroSDで簡単に設定するためのツールを作った](https://qiita.com/mascii/items/a43d71572e1919e56398)

[Raspberry Pi ヘッドレス・インストールについて](https://www.ingenious.jp/raspberry-pi/2018/10/raspberry-pi-headless-install-ssh/)
[RaspberryPi Raspbian ヘッドレスインストール](https://qiita.com/nori-dev-akg/items/a8361e728a66a8c3bdba)

PHPのインストールについて参考にさせてもらいました。
[Raspberry Pi 3BにPHP7.2とnode.jsとcloud9をインストール](https://qiita.com/yyano/items/0cca9242667f5cc5141f#cloud9web-ide%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%A8%E5%AE%9F%E8%A1%8C)



[ラズパイに PHP 7.2をラズパイ公式リポジトリからサクッと apt-getでインストールする方法](http://www.neko.ne.jp/~freewing/raspberry_pi/raspberry_pi_php_7_2/)