raspbberry pi 3 model B+ にインストールしたRaspbianに各種サーバーを入れてみた

Raspberry Pi3+とUSB SSD

Raspberry pi 3 model B+ に入れたRaspbianに各種サーバーを入れる。その1

今回はRaspbuanを入れたraspberry pi 3+ を使ってWebサーバー等の各種サーバーを作って行く手順の記録です。
それには、このシリーズである初期設定編で書いてあるWindowsからターミナルソフトを使ってSSHで接続した環境でインストール作業をします。

1.ターミナルソフトを起動しSSHでログイン

       初期設定編を参照

2.必要に応じてパッケージのアップデートをする

$ sudo apt-get update

$ sudo apt-get upgrade

3.apache2を入れる

$ sudo apt-get install apache2

これでインストールします。

  バージョン情報の表示は
  $ apache2 -v
  起動は
  $ sudo service apache2 start
  停止は
  sudo service apache2 stop
  再起動は
  $ sudo service apache2 restart

  設定ファイルは
  /etc/apache2
  ディレクトリにありますので必要なファイルを書き換えて設定します。
  特に必要な書き換えは
  sudo vi /etc/apache2/conf-available/security.conf
  を開いて
     #ServerSignature Off
     ServerSignature On

  という記述を探し
  上の列の#を消し下の列に#を付けて保存します。
  offでWEB サーバーのエラー情報が画面に表示しないようになります。
  次にApache のデフォルトページを削除します。
  方法はデフォルトページのあるホルダのファイルを消すか
  デフォルトのフォルダを変更する。
  ホームページのあるフォルダは以下に記載されているので開きます。
  sudo vi /etc/apache2/sites-available/000-default.conf
  以下が書いてある行を探して確認
  DocumentRoot /var/www/html
  ここ/var/www/htmlがデフォルトのページの場所です。
  そのフォルダにあるファイルを後で削除しておきましょう。
  またはDocumentRootの場所を変えておいてもよいでしょう。
  次にこの場所のディレクティブ書いておきましょう。
  DocumentRootの後の行に

<Directory /var/www/html/>
  Options FollowSymLinks
  AllowOverride All
  Require all granted
</Directory>

  と追加記入しておくと良い。ディレクティブの内容は適宜変更する。

4.PHP7.0を入れる  

$ sudo apt-get install php7.0 php7.0-cli php7.0-gd php7.0-mysqlnd php7.0-pgsql php7.0-mcrypt php7.0-dev

バージョン確認は

$ php -v

5.MySQLを入れる

最新のraspbian(Stretch)でMySQLをインストールするとMySQLではなく
mariadbが勝手にインストールされる。
それなので気にせずインストールをすすめることにする。

$ sudo apt-get install mysql-server

気にする人は上記の代わりに下記を実行して入れる。どちらも結果は変わらない。

$ sudo apt-get install mariadb-server

実行するとパスワード設定画面が表示されずにインストールが終了する。
試しにrootでMSQLを呼び出してみる。

$ sudo mysql -u root -p

当たり前だが
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
とエラーが出るのを確認。
rootパスワードを設定する必要があるのでまずは

多分もうスタートされているはずだが、Mariadbを起動する。

$ sudo systemctl start mariadb.service

ちなみに再起動は

$ sudo systemctl restart mariadb.service

ちなみにMySQLとしての起動、再起動でも同じ。
$ sudo systemctl start mysql
$ sudo systemctl restart mysql

MySQLのrootパスワードの設定を開始する。

$ sudo /usr/bin/mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we’ll need the current
password for the root user. If you’ve just installed MariaDB, and
you haven’t set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):

初期rootパスワードを入力(設定していないので空白のままEnter)

OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDBroot user without the proper authorisation.

rootのパスワードをセットするかどうか聞いてくるので Y入れる。

Set root password? [Y/n] Y

続いてrootのパスワードを新規で入れる。

New password:○○○○○○

同様にもう1回。

Re-enter new password: ○○○○○○

Password updated successfully!
Reloading privilege tables.. … Success!

By default, MariaDB comes with a database named ‘test’ that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y

匿名ユーザを削除するかときいてくるので Y

Normally, root should only be allowed to connect from ‘localhost’. Thisensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y

rootによるリモートログインを許可しない設定にするので Y

… Success!

By default, MariaDB comes with a database named ‘test’ that anyone canaccess. This is also intended only for testing, and should be removedbefore moving into a production environment.

Remove test database and access to it? [Y/n] Y

テストデータベースと接続情報を削除するかを聞いてくるので Y

– Dropping test database…

… Success!

– Removing privileges on test database…

… Success!


Reloading the privilege tables will ensure that all changes made so farwill take effect immediately.

Reload privilege tables now? [Y/n] Y

上記設定を反映させるために特権テーブルをリロードするか Y

… Success!

Cleaning up…


All done! If you’ve completed all of the above steps, your MariaDBinstallation should now be secure.

Thanks for using MariaDB!

MariaDBで再度ログインする。

$ sudo mariadb

Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2551
Server version: 10.1.23-MariaDB-9+deb9u1 Raspbian 9.0

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

MySQLのデーターベースに接続する。

MariaDB [(none)]> use mysql;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

MariaDB [mysql]> select user,password,plugin from user;

+——+——————————————————————————-+————-+
| user | password                                                                         | plugin |
+——+——————————————————————————-+————-+
| root | *000000000000000xxxxxxxxxxxxxxxxxxxxxxxxx | unix_socket |
+——+——————————————————————————-+————-+
1 row in set (0.01 sec)

rootユーザに対するunix_socketプラグインが設置されている。
これを無効化することによってMySQLからrootでログイン出来る様になる。

MariaDB [mysql]> update user set plugin=” where user=’root’;

Query OK, 1 row affected (0.00 sec)

Rows matched: 1 Changed: 1 Warnings: 0

もう一度確認してみる

MariaDB [mysql]> select user,password,plugin from user;


+——+——————————————————————————-+————-+
| user | password                                                                         | plugin |
+——+——————————————————————————-+————-+
| root | *000000000000000xxxxxxxxxxxxxxxxxxxxxxxxx |               |
+——+——————————————————————————-+————-+
1 row in set (0.01 sec)

pluginの欄が空になればOKなので
更新内容を新しく反映させる。

MariaDB [mysql]> flush privileges;

Query OK, 0 rows affected (0.00 sec)

quit またはexitでMariadbから抜ける。

MySQLとしてrootでログイン。

$ mysql -u root -p

設定したパスワードでログインできればOK

MySQLの文字コード設定について

色々なサイトがutf8に設定を変えているようだが
MySQL の utf8 は4バイト文字をうまく扱うことができないらしい。
インストール直後はdefaultで utf8mb4なのでそのまま使いましょう。
ですから、これについては何もせず終了。

raspbberry pi 3 model B+ Raspbian初期設定編

Raspberry Pi 3+とUSB SSD

raspbberry pi 3 model B+ にインストールしたRaspbian の初期設定編です。

さて前回はOSのインストールで終わりましたので、今回はLinuxOSのRaspbianを設定して行きます。

1.地域を設定しSSHとVNCを使える様にする

  • GUI画面の一番左上のラズベリーのマークをクリックし 「設定」→「Raspberry Piの設定」を選択します。 インターフェースのタブを選んでSSHとVNCを有効にしておきます。
  • 同様にローカライゼーションのタブから 「ロケール設定」を選択
    • 言語を  ja
    • 国    JP
    • 文字セット UTF-8 にする。
  • 同様にタイムゾーンのタブから 「ロケール設定」を選択
    • 地域  Asia
    • 位置  Tokyo にする。
  • 念のため再起動します。

これでSSHとVNCが使える様になったので違うパソコンからアクセス出来ます。 なお、これらはTerminalを起動してCUIで「sudo raspi-config」を実行することでも設定可能です。 アクセスのためにRaspberry Piのアドレスを確認しましょう。 OS画面右上にネットワークのアイコンがあります。 アイコンの上にマウス矢印をかざすと

eth0 Configured 192.168.0.5/24

wlan0 Configured 192.168.0.10/24

のように表示されます。 有線LAN接続ならeth0の192.から始まるアドレスがRaspberry Piのアドレスです 無線LAN接続ならwlan0の192.から始まるアドレスがRaspberry Piのアドレスとなりますのでメモっておきます。 次で出てきますがTerminal起動した後調べる場合は

ifconfig

と打ち込んで調べて下さい。

2.ターミナルソフトを操作するWindowsパソコンにインストールしておく

Tera Termなどのターミナルソフトを、操作する(Windowsパソコン等)にインストールしておく。 ここから先のほとんどで、このターミナルソフトからRaspberry PiのアドレスにSSHでログインして設定をして行きます。

3.SSHでログイン

WindowsパソコンからTera Termを起動します。 ホストに先ほどのメモっておいたアドレスを入力。 192.168.0.5(のように入れる /24`はいらない) TCPポート:22 SSHで「OK] ログイン画面で ユーザー名 :pi (デフォルト) パスフレーズ:インストール時に決めたパスワードまたは 決めていない場合はraspberryと入力して「OK] これでログイン出来ます。

今後の設定、ソフトのインストールはこの状態でターミナルより実施していくと大変楽に出来ます。

4.apt-getを用いてパッケージの更新&アップグレード

#パッケージリストの更新
sudo apt-get update
#アップグレード
sudo apt-get upgrade

5.VNCでログイン

SSHはCUIベースでのログインでしたが、遠隔操作の形でGUI操作するのも便利です。
VNCServerは最初からインストールされているので、クライアント側、つまりWindows PC側にVNC Viewerをインストールしておきましょう。
REALVNCのホームページよりダウンロードします。
インストールと使い方は他のサイトを参照して下さい。
これで、他のパソコンからGUIベースで遠隔操作できるようになります。 こうなると、普段はRaspberry Pi本体にディスプレイとマウス、キーボードを取り付ける必要が無くなってしまいます。我が家でも写真のようにお守り程度についています...

6.Raspbianのネットワーク設定

以後はWindowsパソコンからTerminalを起動しての設定です。
Terminal内で起動するLinuxエディターは「vi」「vim」「nano」等の自分で使いやすいものを利用して下さい。 ここから先は判りやすいように「vi」に統一して記述していきます。

Raspbianのネットワーク設定です。
外部からRaspbianを操作したりネットワークに解放する場合はIPアドレスを固定する必要があります。
(DHCPサーバーを利用してアドレスを設定場合は設定不要です。)

ターミナルよりroot権限で

sudo vi /etc/dhcpcd.conf

開いた /etc/dhcpcd.conf に以下の内容を追記する。 ※ #行はコメントアウトですので記述不要

interface eth0
#static ip_address=(RaspberryPiに割り当てるIPアドレス)/(サブネットマスク)
static ip_address=192.168.0.xxx/24
#static routers=(デフォルトゲートウェイ)ルータのIPアドレス
static routers=192.168.0.1
#static domain_name_servers=(DNSサーバのIPアドレス)ルータのIPアドレス
static domain_name_servers=192.168.0.xxx

保存したら再起動

sudo reboot

7.rootでのパスワードを設定する。

後でサーバーを構築するにはrootユーザーにパスワードを設定しておく必要があります。 ターミナルより

sudo passwd root

パスワードを設定しますこれで大まかな設定は終了です。
しかし最初から作成されていたユーザーpiをそのまま使っているのでは外部から推測されやすく危険と思われます。piユーザを別のユーザー名に変更することが賢明でしょう。それは次回投稿とします。

次回投稿予定
defaultのpiユーザーを別の名前に変更する編