# 3000円以下で作れる自宅サーバー nanopi neo UBUNTU Linux
# nanopi neoで自宅webサーバー
日本だと秋月電子通商から買えます。


マウスより小さいシングルボードコンピュータ
別途、マイクロSDカードを購入 (Class10)
http://nanopi.io/nanopi-neo.html
## NanoPi NEO オフィシャルサイト
### ダウンロードサイト
http://download.friendlyarm.com/nanopineo

official ROMs >
nanopi-neo_sd_friendlycore-xenial_4.14_armhf_20190425.img.zip
最後の日付は、変わっていることがあります。
### 解凍
アプリケーション > ユーティリティ > ターミナル
OS付属のターミナル もしくは お使いのターミナルで。
```
$ cd Downloads
ダウンロードしたPATH&ファイル名で解凍
$ unzip nanopi-neo_sd_friendlycore-xenial_4.14_armhf_20190522.img.zip
```
### imgファイルをマイクロSDに書き込む (macos Xの場合)
Windowsの場合は、Win32DiskImagerなどの書き込みソフトをお使いください。
書き込み完了後は、macでもWindowsでも同じです。
```
$ df
```
```
/dev/disk2s1 60481536 4992 60476544 1% 0 0 100% /Volumes/NO NAME
```
SDカードの ポイントを探す 多くの方は /dev/disk2s1 でしょう。
#### unmountする
```
$ sudo diskutil unmount /dev/disk2s1
```
/path/to/ はあなたの環境に書き換えてください。
## SD へ書き込み開始
if= 書き込み元ファイル名
of= /dev/rdisk2
/dev/disk2s1 の場合は、 /dev/rdisk2
```
sudo dd bs=1m if=/path/to/nanopi-neo_sd_friendlycore-xenial_4.14_armhf_20190425.img of=/dev/rdisk2
```
数分かかるので待ちましょう。
## SDカードを取り出し
SDカードを取り出し、nanopi neoにマイクロSDカードを挿し、LANケーブルを接続して起動。
# IPの確認作業
nanopi neoは、DHCPで起動いたします。
```
$ arp -a
コマンドやルーター管理画面
androidですと、 fing などのアプリで割り当てられたIPを探してください。
```
### nanopi neに接続
上で使ったターミナルより
```
ssh root@192.168.x.111 <== nanopi neo IP
password: fa <== 初期値
```
#### login画面
```
_____ _ _ _ _____ _ _____ ____
| ___| __(_) ___ _ __ __| | |_ _| ____| | | ____/ ___|
| |_ | '__| |/ _ \ '_ \ / _` | | | | | _| | | | _|| |
| _|| | | | __/ | | | (_| | | |_| | |___| |___| |__| |___
|_| |_| |_|\___|_| |_|\__,_|_|\__, |_____|_____|_____\____|
|___/
Welcome to Ubuntu 16.04.2 LTS 4.14.111
System load: 0.09 Up time: 5 min Local users: 2
Memory usage: 8 % of 493Mb IP: 192.168.x.xxx
CPU temp: 31°C
Usage of /: 2% of 27G
* Documentation: http://wiki.friendlyarm.com/Ubuntu
* Forum: http://www.friendlyarm.com/Forum/
```
### まずは アップデート
```
$ apt-get update
$ apt-get upgrade -y
```
```
*** issue.net (Y/I/N/O/D/Z) [default=N] ?
Y
```
# 初期設定
```
$ passwd
root パスワード変更です。 セキュリティを考え16桁推奨
# passwd pi
pi パスワード変更です。 セキュリティを考え16桁推奨
```
## IPアドレス固定 設定
```
vi /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.x xxx <== nanopi neoのIP
netmask 255.255.255.0 <== 自分のネット環境 netmask
gateway 192.168.3.1 <== 自分のネット環境のgateway
#auto lo
#iface lo inet loopback
```
resolv.conf書き換える(削除&新規作成)
```
$ rm /etc/resolv.conf
$ vi /etc/resolv.conf
nameserver 192.168.x.xxx <== ルーターのIPもしくはプロバイダーから指定された参照DNSサーバーのIPアドレス
```
## ここで 再起動
失敗すると、アクセスできなくなり、最初からやり直しになる可能性が大きいので、確認してから
```
$ reboot
```
# 再起動したらログイン
```
$ ssh root@192.168.x.xxx
```
# 私が作成した簡単インストーラー
```
mkdir -p /home/UBH/sh
cd /home/UBH/sh
wget http://jp2ubh.cqcqcq.info/server/repo/nanopineo/v0.1/first_Install_UBH.sh -O first_Install_UBH.sh
wget http://jp2ubh.cqcqcq.info/server/repo/nanopineo/v0.1/add_domain_UBH.sh -O add_domain_UBH.sh
chmod 700 *.sh
```
このコマンドをコピペしてターミナルに貼り付けてください
```
$ ls -la
```
```
-rwx------ 1 root root 2302 Jun 30 02:25 add_domain_UBH.sh*
-rwx------ 1 root root 2249 Jun 30 02:25 first_Install_UBH.sh*
```
2つのファイルができていると思います。
# 自宅サーバー運用に必要なものをまとめてインストール
```
$ /home/UBH/sh/first_Install_UBH.sh jp2ubh.cqcqcq.info
*** apache2 (Y/I/N/O/D/Z) [default=N] ? Y
-----------------------------------------------
HOST ubh.cqcqcq.info
IP 192.168.x.xxx
Ubuntu 16.04.6 LTS \n \l
-----------------------------------------------
この画面がエラーなく出たら設定成功です。
```
jp2ubh.cqcqcq.info の箇所をfqdn方式で書き換えてください。
この場合、 サーバー名は、 jp2ubh.cqcqcq.info になります。
## ドメイン追加
http://jp2ubh.cqcqcq.info の場合
```
/home/UBH/sh/add_domain_UBH.sh cqcqcq.info password jp2ubh
```
```
$ /home/UBH/sh/add_domain_UBH.sh
```
webブラウザから、nanopi neoのIPアドレスを叩いてみしょう。
### 外部からアクセスさせる場合
ルーターの80ポートを、nanopi neoのIPへ
NAT機能を使ってポートフォワード設定してください。
## 内部からのアクセスは
http://nanopi_neo_ip (192.168.x.xxx)
## 外部からのアクセスは
http://jp2ubh.cqcqcq.info
## ルーター内部からも同じホスト名をシームレスな使い方
Unbound DNS 機能のあるルーターやオープンソースのルーター(OPNsense)などを使うと良いでしょう。
*まだ荒削りの紹介ですが、徐々にわかりやすくしていきます。
## インストールしたもの
```
PHP 7.0.33-0ubuntu0.16.04.5 (cli) ( NTS ) with Zend OPcache
Apache/2.4.18 (Ubuntu)
```
## 終了したら消しておいてください
```
rm /home/UBH/sh/first_Install_UBH.sh
```
## TimeZoneの変更 JSTへ
```
$ npi-config
```
```
4 Localisation Options ==> I2 Change Timezone
```

