目次
Raspberry Pi 4 のセットアップメモまとめ
- 主にSSDブート、リモート環境構築、Let’s Encrypt、LAMP、Nodeの環境構築を行う
- 全部個人的なメモなので、利用にあたっては各々の用途、環境に応じて読み替えるなどしてください
- Windows 10環境からRLoginやブラウザなどを利用して操作しているので所々 Windows側の操作が挟まっています
🌏 環境
Windows側の環境は省略
環境 | バージョン |
---|---|
Raspbian | 2020-05-27-raspios-buster-arm64 |
acme.sh | 2.8.7 |
PHP | 7.3.19-1 |
MariaDB | 10.3.23 |
phpMyAdmin | 5.0.2 |
Node.js | 10.21.0 |
npm | 5.8.0 |
Yarn | 1.22.4 |
📜 Raspberry Pi 4 を USB SSD からブートする
まずはここから
📞 リモート環境の構築
本体操作によるセットアップ
Headlessでできるならよしなにしてもいい気はする
- ラズパイにモニタ、キーボード、電源の通ったUSB-Cケーブルを接続
- 数分待つとセットアップウィザードが出てくるので適当に進める
- この途中でWiFiルーターに繋がるように設定しておく
- セットアップウィザードが終わったらWinKeyでメニューを出し設定> Raspberry Piの設定でSSHとVNCを有効
- シャットダウンする
- 電源USB以外を全部抜く
パッケージ情報の更新
sudo apt-get update
XRDP のインストール
Windows10からのRDP接続で現状操作不能だが一応書いておく
sudo apt-get install xrdp
- Windows 10のリモートデスクトップ接続から接続確認
SSHD 設定
待受ポートの変更と認証方式の変更
待受ポートの変更と外部接続
sudo nano /etc/ssh/sshd_config
Port 22
を適当なポートに変更
認証方式の変更
- RLoginの機能で認証キーを生成
sudo nano /etc/ssh/sshd_config
で以下の設定に変更
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
PermitEmptyPasswords no
~/.ssh/authorized_keys
を作る
mkdir ~/.ssh/
nano ~/.ssh/authorized_keys
- 公開鍵をコピーして
~/.ssh/authorized_keys
の一行目に貼り付ける sudo /etc/init.d/ssh restart
でSSHDを再起動- RLoginから再接続できたらOK
Android から SSH 接続
- RLoginから秘密鍵を吐く
- JuiceSSHで秘密鍵を読む
- 終わり
Uncomplicated Firewall のインストールと設定
-
sudo apt install ufw
-
systemctl start ufw
-
sudo ufw enable
でFirewallを有効化 -
SSHの穴をあける
sudo ufw allow SSHのポート番号
-
VNSの穴をあける
-
WindowsRDPからラズパイに接続
-
蹴られるので
cat /var/log/ufw.log
でログを見る -
蹴られている
DPT
が3389
だったのでsudo ufw allow 3389
- help.ubuntu.comによると
SPT
がSource Port、DPT
がDestination Portということらしい
- help.ubuntu.comによると
-
-
sudo ufw status numbered
で設定内容を確認 -
SSHとRDPの接続確認
🔐 Let’s Encrypt! DDNS Challenge
💡 LAMP 環境構築
MariaDB, Apache, PHP のインストール
この環境でのApacheはphpMyAdminを動かすためだけに使用(外部公開しない)
sudo apt install -y mariadb-server apache2 php php-mysql libapache2-mod-php
MariaDB の設定
外部接続しないケース
sudo mysql_secure_installation
sudo mysql
CREATE USER 'id'@'localhost' IDENTIFIED BY 'pw';
GRANT ALL PRIVILEGES ON *.* TO 'id'@'localhost' WITH GRANT OPTION;
外部接続するケース
-
sudo mysql_secure_installation
-
sudo mysql
-
CREATE USER 'id'@'%' IDENTIFIED BY 'pw';
-
GRANT ALL PRIVILEGES ON *.* TO 'id'@'%' WITH GRANT OPTION;
-
quit
-
sudo nano /etc/mysql/my.cnf
で最終行に以下を追加
[mysqld]
skip-networking=0
skip-bind-address
Apache の設定
sudo nano /etc/apache2/apache2.conf
で既存の設定をコメントアウトして適当にルートを追加
<Directory /home/pi/Public/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
sudo nano /etc/apache2/sites-available/000-default.conf
も同様に変更
Apache を動かすユーザーの変更
sudo nano /etc/apache2/envvars
export APACHE_RUN_USER=www-data
をexport APACHE_RUN_USER=pi
に変えるsudo /etc/init.d/apache2 reload
でここまで反映
phpMyAdmin のインストール
何故かaptでインストールできなくなってるので手動インストール。Windowsマシンからブラウザを利用して設定する
- https://www.phpmyadmin.net/ からphpMyAdminをダウンロード
- Apacheの公開ディレクトリに置く
sudo ufw allow 80
sudo ufw reload
http://192.168.xxx.xxx/phpmyadmin/setup
へアクセス- 適当に設定し、ダウンロードボタンを押すと設定ファイルが落ちてくるのでphpmyadminのルートに置く
http://192.168.xxx.xxx/phpmyadmin/setup
へアクセスしエラーになることを確認http://192.168.xxx.xxx/phpmyadmin
へアクセスし、MariaDBのIDPWでログインできることを確認- この環境では80番ポートは外部公開してないので問題ないが、外部公開する場合は.htaccessをおいてローカル以外のアクセスを蹴ると良い
📈 Node.js のインストール
sudo apt install -y nodejs npm
sudo npm i -g n yarn
🎈 おまけ
- Gitのインストール
sudo apt install -y git
で2.20.1が入ることを確認(微妙に古い)
- composerのインストール
sudo apt install -y composer
で1.8.4が入ることを確認(かなり古い)