paloma blog

NWエンジニアやってます。主に自宅環境のお遊びを書きます。Pythonもちょっと。タイトルは好きなカクテルから。

アルティメット ラズパイ ホームサーバを構築する 2

続き

パッケージをインストールしていきます。

Step7: Webminインストール

サイトではOSに初めから入っているようですが、ここでは新規インストールします

参考サイト Ubuntu 16.04 LTS : Webmin インストール : Server World

pi@raspberrypi:~ $ sudo apt-get -y install python apt-show-versions libapt-pkg-perl libauthen-pam-perl libio-pty-perl libnet-ssleay-perl 

pi@raspberrypi:~ $ curl -L -O http://www.webmin.com/download/deb/webmin-current.deb 
pi@raspberrypi:~ $ sudo dpkg -i webmin-current.deb

ポートもサイトと同じにします。
設定ファイルの中身は割愛。

pi@raspberrypi:~ $ sudo vi /etc/webmin/miniserv.conf 
pi@raspberrypi:~ $ sudo systemctl start webmin
pi@raspberrypi:~ $ 

あれ?10000であがってる…

pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ ss -lnt
State      Recv-Q Send-Q                               Local Address:Port                                              Peer Address:Port              
LISTEN     0      128                                              *:10000                                                        *:*                  
LISTEN     0      128                                              *:22                                                           *:*                  
LISTEN     0      128                                             :::22                                                          :::*                  
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ sudo vi /etc/webmin/miniserv.conf 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ curl -I localhost:10000
HTTP/1.0 200 Document follows
Server: MiniServ/1.881
Date: Sat, 24 Mar 2018 10:16:05 GMT
Content-type: text/html; Charset=iso-8859-1
Connection: close

pi@raspberrypi:~ $ curl -I localhost:12321
curl: (7) Failed to connect to localhost port 12321: Connection refused
pi@raspberrypi:~ $ 

再起動したら直りました。

pi@raspberrypi:~ $ ss -lnt
State      Recv-Q Send-Q                               Local Address:Port                                              Peer Address:Port              
LISTEN     0      128                                              *:22                                                           *:*                  
LISTEN     0      128                                              *:12321                                                        *:*                  
LISTEN     0      128                                             :::22                                                          :::*                  
pi@raspberrypi:~ $ 

ログインして言語を日本語にしました。
ユーザはshellと同じアカウントです。
ローカルIPが見えちゃってるがいいか。

f:id:paloma69:20180327210505p:plain

Step8: Shell in a Box インストール

  • メイン機からSSHするので使わないとは思いますが、倣ってインストールします。
  • リポジトリにあるようなのでapt-getでインストール
pi@raspberrypi:~ $ sudo apt-get install shellinabox
pi@raspberrypi:~ $ sudo cp -i /etc/default/shellinabox{,org}
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ sudo vi /etc/default/shellinabox 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ sudo systemctl start shellinabox

pi@raspberrypi:~ $ ss -lnt
State      Recv-Q Send-Q                               Local Address:Port                                              Peer Address:Port              
LISTEN     0      128                                              *:4200                                                         *:*                  
LISTEN     0      128                                              *:22                                                           *:*                  
LISTEN     0      128                                              *:12321                                                        *:*                  
LISTEN     0      128                                             :::22                                                          :::*                  
pi@raspberrypi:~ $ 

こっちも再起動したらポート直りました。

pi@raspberrypi:~ $ sudo systemctl restart shellinabox
pi@raspberrypi:~ $ ss -lnt
State      Recv-Q Send-Q                               Local Address:Port                                              Peer Address:Port              
LISTEN     0      128                                              *:22                                                           *:*                  
LISTEN     0      128                                              *:12320                                                        *:*                  
LISTEN     0      128                                              *:12321                                                        *:*                  
LISTEN     0      128                                             :::22                                                          :::*                  
pi@raspberrypi:~ $ 

余り使いみちが浮かびませんが、ブラウザから出来ると何かと便利なのかな?

f:id:paloma69:20180327210545p:plain

Step9: 再起動

原文はHow To Rebootで再起動の仕方を覚えようという内容になっています。
今は再起動必要な対応もしていないのでスキップ。

Step10: サーバ名変更

ホスト名を変更します。

「raspberryNAS」とでもしますか。

サイトではnanoで変更していますが、私は使い慣れたviで変えます。

pi@raspberrypi:~ $ sudo vi /etc/hostname 
pi@raspberrypi:~ $ sudo cat /etc/hostname 
raspberryNAS

適用のため再起動します。(さっきのはここで使うのか)

20秒程度で復帰しました。早い!

Step11: HDDマウント

他で使っていたドライブを使用する場合の注意書きのようです。

NFTSのフォーマットはお作法があるようですね。

ディスク周りの操作ってあまりやったことない...
今回は新しいHDDなので気にしなくていいかな。

Step12: HDDマウント続き

装着!(しまった。床が汚い…) f:id:paloma69:20180327210036j:plain

マウントします。 webminではエラー吐いたのでコマンドでやっています。

f:id:paloma69:20180327211954p:plain

f:id:paloma69:20180327212021p:plain

ファイルシステムが悪いって言ってる?

コマンドで確認。
認識してます。

pi@raspberryNAS:~ $ dmesg | tail
[ 1061.782758] usb-storage 1-1.5:1.0: Quirks match for vid 152d pid 2329: 8020
[ 1061.782846] scsi host0: usb-storage 1-1.5:1.0
[ 1065.146056] scsi 0:0:0:0: Direct-Access     HGST HTS 721010A9E630     JB0O PQ: 0 ANSI: 2 CCS
[ 1065.148157] sd 0:0:0:0: [sda] 1953525168 512-byte logical blocks: (1.00 TB/932 GiB)
[ 1065.148718] sd 0:0:0:0: [sda] Write Protect is off
[ 1065.148733] sd 0:0:0:0: [sda] Mode Sense: 28 00 00 00
[ 1065.149248] sd 0:0:0:0: [sda] No Caching mode page found
[ 1065.149258] sd 0:0:0:0: [sda] Assuming drive cache: write through
[ 1065.169301] sd 0:0:0:0: Attached scsi generic sg0 type 0
[ 1065.820741] sd 0:0:0:0: [sda] Attached SCSI disk
pi@raspberryNAS:~ $ 

/media/serverhddを作成してここにマウントします。

pi@raspberryNAS:~ $ sudo mkdir /media/serverhdd

ファイルシステムを指定。
ファイルシステムはよくわからんのでext4でいいか。
パーティションは切らずにまるまる使います。

pi@raspberryNAS:~ $ sudo mkfs -t ext4 /dev/sda 
mke2fs 1.43.4 (31-Jan-2017)
Creating filesystem with 244190646 4k blocks and 61054976 inodes
Filesystem UUID: e4060527-833c-4e1d-848b-d3861ca4f34b
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
    102400000, 214990848

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (262144 blocks): 
done
Writing superblocks and filesystem accounting information: done     

マウントされました!

pi@raspberryNAS:~ $ df -T
Filesystem     Type     1K-blocks    Used Available Use% Mounted on
/dev/root      ext4      15240524 1252796  13336132   9% /
devtmpfs       devtmpfs    470180       0    470180   0% /dev
tmpfs          tmpfs       474788       0    474788   0% /dev/shm
tmpfs          tmpfs       474788    6332    468456   2% /run
tmpfs          tmpfs         5120       4      5116   1% /run/lock
tmpfs          tmpfs       474788       0    474788   0% /sys/fs/cgroup
/dev/mmcblk0p1 vfat         42131   21470     20661  51% /boot
tmpfs          tmpfs        94956       0     94956   0% /run/user/1000
/dev/sda       ext4     960381672   77852 911449308   1% /media/serverhdd

Step13: MySQLインストール

これもWebminから

パッケージがないのでインストール f:id:paloma69:20180327212133p:plain

なんか始まった f:id:paloma69:20180327212146p:plain

インストール完了!
管理画面がでました f:id:paloma69:20180327212202p:plain

Step14: MySQLにデータベース追加(owncloud)

新規データベースを作成を選択
名前以外デフォルトで作成 f:id:paloma69:20180327212337p:plain

owncloudデータベースができました。 f:id:paloma69:20180327212359p:plain

Step15: MySQLにユーザ追加

新規ユーザ作成選択

ユーザ名をowncloudで、
権限はスーパーユーザ以外を選択。
MAX Connectionを15に設定して作成 f:id:paloma69:20180327212457p:plain

できました。 f:id:paloma69:20180327212524p:plain

Step16: PHPインストール

これはコマンドで

サイトではshellinaboxからですが、こちらはsshターミナルからやります。

apt-get install php5 php-pear php5-mysql

5系か…まあいいか

入らない

pi@raspberryNAS:~ $sudo apt-get install php5 php-pear php5-mysql

Reading package lists... 0%

Reading package lists... 100%

Reading package lists... Done


Building dependency tree... 0%

Building dependency tree... 0%

Building dependency tree... 50%

Building dependency tree... 50%

Building dependency tree       


Reading state information... 0%

Reading state information... 0%

Reading state information... Done

Package php5 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'php5' has no installation candidate

調べてみるとDebian Stretchからphp5は廃止された模様。
どうするか。

とりあえずフォーラムを頼りにやってみる
https://www.raspberrypi.org/forums/viewtopic.php?t=195818

リポジトリ追加

pi@raspberryNAS:~ $ sudo vi /etc/apt/sources.list

deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi

pi@raspberryNAS:~ $ sudo apt-get install php5 php-pear php5-mysql
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package php5 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

Package php5-mysql is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'php5' has no installation candidate
E: Package 'php5-mysql' has no installation candidate
pi@raspberryNAS:~ $ 
pi@raspberryNAS:~ $ update-alternatives --set php /usr/bin/php5
update-alternatives: error: no alternatives for php
pi@raspberryNAS:~ $ 
pi@raspberryNAS:~ $ sudo apt-get install php5 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package php5 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'php5' has no installation candidate
pi@raspberryNAS:~ $ sudo vi /etc/apt/sources.list
pi@raspberryNAS:~ $ 
pi@raspberryNAS:~ $ sudo apt-get install php5 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package php5 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'php5' has no installation candidate
pi@raspberryNAS:~ $ 

update-alternativesがなんかエラー吐いてるし、入らない…
切り分けしてる時間ももったいないので、php7ですすめます。

pi@raspberryNAS:~ $ sudo apt-get install php php-pear php-mysql

pi@raspberryNAS:~ $ php --version
PHP 7.0.27-0+deb9u1 (cli) (built: Jan  5 2018 13:51:52) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.27-0+deb9u1, Copyright (c) 1999-2017, by Zend Technologies
pi@raspberryNAS:~ $ 

OK!

Step17: ownCloudインストール

これもwebminから。
aptからowncloudを選択してインストール f:id:paloma69:20180327213841p:plain

php5関係のエラーが出て失敗したのでowncloudの最新版をインストールします。 f:id:paloma69:20180327213907p:plain

参考サイト
Raspberry Pi 3 に ownCloud X をインストール | スモールサーバ開発部

pi@raspberryNAS:~ $ wget https://download.owncloud.org/community/owncloud-10.0.7.tar.bz2

pi@raspberryNAS:~ $ ls -l owncloud-10.0.7.tar.bz2 
-rw-r--r-- 1 pi pi 39395237 Feb 19 16:41 owncloud-10.0.7.tar.bz2

解凍

pi@raspberryNAS:~ $ tar xvf owncloud-10.0.7.tar.bz2 

pi@raspberryNAS:~ $ ls -ld owncloud
drwxr-xr-x 12 pi pi 4096 Mar 24 12:33 owncloud

展開されました。

Step18: ownCloudプレインストール

手順に沿ってディレクトリ作成

pi@raspberryNAS:~ $ cd /media/serverhdd/
pi@raspberryNAS:/media/serverhdd $ 
pi@raspberryNAS:/media/serverhdd $ sudo mkdir cloud
pi@raspberryNAS:/media/serverhdd $ sudo chmod 750 /media/serverhdd/cloud
pi@raspberryNAS:/media/serverhdd $ ls -ld cloud/
drwxr-x--- 2 root root 4096 Mar 24 12:37 cloud/

Step19: ownCloud設定

手順上ではこの時点でownCloudにアクセスできるみたいですが、私は途中で手順を変えたので軌道修正します。
ownCloudにアクセスできるようにします。

ディレクトリ移動&設定ファイル作成

pi@raspberryNAS:~ $ sudo mv owncloud /var/www/
pi@raspberryNAS:~ $ sudo chown -R www-data:www-data /var/www/owncloud
pi@raspberryNAS:~ $ sudo vi /etc/apache2/conf-available/owncloud.conf 

反映

pi@raspberryNAS:~ $ sudo a2enconf owncloud 
Enabling conf owncloud.
To activate the new configuration, you need to run:
  systemctl reload apache2

apache再起動

pi@raspberryNAS:~ $ sudo systemctl reload apache2 

キターーー!!!
けどエラーがいっぱい... f:id:paloma69:20180327214450p:plain

  • PHP module zip not installed.
  • PHP module intl not installed.
  • PHP module mb multibyte not installed.
  • PHP module GD not installed.
  • PHP module cURL not installed.
  • PHP modules have been installed, but they are still listed as missing?

モジュールがいろいろ足りないようなので入れていきます。

一応searchで確認
(1個ずつしましたがまとめて確認できるのかな?後で調べよう)

pi@raspberryNAS:~ $ sudo apt search php-zip
Sorting... Done
Full Text Search... Done
php-zip/stable 1:7.0+49 all
  Zip module for PHP [default]

php-zipstreamer/stable 1.0-1 all
  Stream zip files without i/o overhead

pi@raspberryNAS:~ $ sudo apt search php-intl
Sorting... Done
Full Text Search... Done
php-intl/stable 1:7.0+49 all
  Internationalisation module for PHP [default]

pi@raspberryNAS:~ $ sudo apt search php-mb
Sorting... Done
Full Text Search... Done
php-mbstring/stable 1:7.0+49 all
  MBSTRING module for PHP [default]

pi@raspberryNAS:~ $ sudo apt search php-gd
Sorting... Done
Full Text Search... Done
php-gd/stable 1:7.0+49 all
  GD module for PHP [default]

pi@raspberryNAS:~ $ sudo apt search php-curl
Sorting... Done
Full Text Search... Done
php-curl/stable 1:7.0+49 all
  CURL module for PHP [default]

インストール

pi@raspberryNAS:~ $ sudo apt-get install php-zip php-intl php-mbstring php-gd php-curl 

インストール終わったらapache再起動

キタ━━━━(゚∀゚)━━━━!! f:id:paloma69:20180327214724p:plain

アカウントを設定

  • 管理者
  • データ格納パス
  • データベース

Finish! f:id:paloma69:20180327214829p:plain

画面が変わりました。

パスワード入れて… f:id:paloma69:20180327214901p:plain

ログインできたよーーー! f:id:paloma69:20180327214932p:plain

長くなってしまったので今日はここまでにします。

次はアカウントやファイル共有の設定をやっていきます!

続く