#概要
Raspberry Piの4が出てUSB周りが強化されサーバ向けにピッタリになりました。ということで、Raspberry Pi 4をHDDで動作するようにして、arch Linuxで安定に動作させてみることにしました。
前編のインストールに続いて後編では環境設定と、各種ソフトのインストールを行います。
#参考サイト
Arch Linuxインストールガイド
Raspberry Pi 4 でHDDをrootにしてarch Linuxでサーバにしてみる(前編)
#目次
- 必要なもの(前編)
- HDDのセットアップとarch Linuxインストール(前編)
- 初期設定
- 各種ソフトのインストール
#初期設定
arch LinuxはDIYのディストリビューションのため、各種設定は自分で行います。
前提条件として、raspberry Pi 4にarch Linuxをインストールし、有線ネットワークでDHCPで接続している状態ということです。ディスプレイは接続していてもしていなくても大丈夫です。外部からteratermなどで接続してセットアップします。
まず初回ログインです。
ログイン名:alarm
パスワード:alarm
すぐrootになります。
$ su -
パスワード:root
すぐrootのパスワードを変更しておく。
# passwd
####swapパーティションの有効化
# mkswap /dev/sda2
# swapon /dev/sda2
確認します
# free
total used free shared buff/cache available
Mem: 4008168 150844 22260 628 3835064 3818516
Swap: 4882352 12040 4870312
スワップがあればOK。
####pacmanのイネーブル
pacmanはubuntuでいうところのaptに当たります。
# pacman-key --init
# pacman-key --populate archlinuxarm
# pacman-key --refresh-keys
エラーがなければOKです。
システムをアップデートします。
# pacman -Syu
####ロケールの設定
locale.genを編集。
# vi /etc/locale.gen
ja_JP.UTF-8の行のコメント(#)を外す。
:
ja_JP.UTF-8 UTF-8
:
実行
# locale-gen
locale.confを設定
# vi /etc/locale.conf
LANG=ja_JP.UTF-8
実行
# localectl set-locale LANG=ja_JP.UTF-8
タイムゾーンの設定。
# timedatectl set-timezone Asia/Tokyo
確認
# timedatectl status
ローカルタイムに設定
# timedatectl set-local-rtc true
####ユーザーの追加
デフォルトのユーザとは別にユーザを作ります。
今回はpiというユーザにします。
# useradd -m -s /bin/bash pi
# passwd pi
####sudoのインストールと設定
arch Linuxはsudoすらインストールされていません。インストールします。
# pacman -S sudo
# visudo
%wheel ALL=(ALL) ALL
の行をコメント(#)を外す。
wheelグループにpiを追加。
# usermod -aG wheel pi
piで入ってみてsudoが動くか確認。
いったんログアウト。
piで入り直す。
piのパスワードで入れる。
#各種ソフトウェアのインストール
####ntpdのインストール
サーバなので時刻合わせのデーモンを入れます。arch Linuxでは、ubuntuとは違い、インストールだけでは動作せず、必ずサービスをイネーブルする必要があります。
# pacman -S ntp
# systemctl start ntpd
# systemctl enable ntpd
動作確認
# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
+207.209.218.133 224.199.97.245 2 u 306 1024 377 23.435 0.915 4.894
-ntp.wide-net.pl 194.29.130.252 2 u 1020 1024 377 252.934 -7.574 0.896
+ntp.paina.net 131.113.192.40 2 u 492 1024 377 6.500 -0.305 0.999
*122x215x240x51. 10.84.87.146 2 u 158 1024 377 2.425 1.090 0.861
####sambaのインストール
ファイルのやり取りを行うため、sambaをインストールします。
# pacman -S samba
/etc/samba/smb.confをダウンロードします。
その前にwgetをインストール。
# pacman -S wget
# wget "https://git.samba.org/samba.git/p=samba.git;a=blob_plain;f=examples/smb.conf.default;hb=HEAD" -O /etc/samba/smb.conf
ユーザを追加。
# vi /etc/samba/smb.conf
ファイルの最後に以下のパートを追加。
[pi]
path = /home/pi
browseable = yes
writable = yes
guest ok = yes
force user = pi
[work]
path = /work
browseable = yes
writable = yes
guest ok = yes
force user = pi
サービスをイネーブルします。smbとnmbをイネーブルします。
# systemctl start smb
# systemctl start nmb
# systemctl enable smb
# systemctl enable nmb
起動確認。
# systemctl is-enabled smb
# systemctl is-enabled nmb
piのユーザを追加。パスワードを設定。
# pdbedit -a -v pi
new password:
retype new password:
Unix username: pi
NT username:
Account Flags: [U ]
User SID: S-1-5-21-1430355575-3986400016-133405529-1000
Primary Group SID: S-1-5-21-1430355575-3986400016-133405529-513
Full Name:
Home Directory: \\alarmpi\pi
HomeDir Drive:
Logon Script:
Profile Path: \\alarmpi\pi\profile
Domain: ALARMPI
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: never
Kickoff time: never
Password last set: 木, 30 1月 2020 21:49:54 JST
Password can change: 木, 30 1月 2020 21:49:54 JST
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
windowsからアクセスしてみる。
####apacheとphp7のインストール
# pacman -S apache
# pacman -S php
# pacman -S php-apache
# pacman -S php-cgi
php7の設定。
# vi /etc/httpd/conf/httpd.conf
以下のエディットを行う。
追加
LoadModule php7_module modules/libphp7.so
Include conf/extra/php7_module.conf
コメントを外す。
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
コメントアウトする。
#LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
#LoadModule mpm_event_module modules/mod_mpm_event.so
サービスをスタートする。
# systemctl start httpd
# systemctl enable httpd
確認。
/srv/http/phpinfo.phpを作成。
<?php
phpinfo();
?>
PCからブラウザでアクセス。
http://archlinuxのアドレス/phpinfo.php
#最後に
arch Linuxをセットアップして、サーバとして使いそうなソフトウェアをインストールしてみましたが、目的に応じて必要なだけインストールしていただければ、軽量なままで使い続けられると思います。