ラズパイ って何だべ~? 私設 基板実験室

地元東松島市のイベントや、パソコン・ラズベリーパイの実験報告しています

Raspberry Pi 3 Model B+ で Webサーバー(ホームページ)構築中!

 記事中の自前サイトをご覧下さい。”おらほの小野まち” 現在、安定して連続稼働中です。(ラズパイはいい!) 

おらほの小野まち – 豊かな自然・歴史のまち、小野の里

f:id:masa19569810303:20181020002832p:plain

  

今回は、上記写真の様な自前のホームページを持つWebサーバーの構築についてです。

 Raspberry Pi3は、発熱と消費電力が小さいので、やはり、Webサーバーの運用に適していますね。(※既に、業務用にも使われているようです。) 

 

準備するもの(ハード)
1.Raspberry Pi3 Model B+ (本体)

2.5V 2.5A ACアダプタ (B型マイクロUSBコネクタ付き)
3.マイクロSDカード HC8GBか16GB、(32GB、64GBでも動く)
4.HDMIインターフェース付き TV 又は ディスプレー
5.HDMIケーブル
6.ノートパソコン(SDカードスロット付き)


インストールするソフト
1.Raspbian (Raspberry Pi用OS)・・・無料

2.apache2 (ウェブサーバー)・・・・・無料

3.php7.0 (動的コンテンツ処理)・・・無料

4.MySQL(データベース) ・・・・・・無料

5.WordPress(ホームページ作成)・・・・無料

 

作業にあった方がよいWindowsソフト

 Win32DiskImager ・・・無料 

  このプログラムを実行すると SD カードへのディスクイメージの読み書きができるのでSD構築データのバックアップに使える


作業手順と難易度
1.apache2 のインストールと設定・・・簡単

2.php7.0 のインストールと設定・・・やや難

3.MySQLのインストールと設定 ・・・やや難

4.WordPressインストールと設定 ・・・簡単


さらに実運用に必要なもの
1.独自ドメインの取得
2.WordPress操作の慣れ(※PHPコマンドの知識は要らない。)
3.バックアップ用のマイクロSDカードがもう1枚

 

構築の参考になったサイト

ApacheとPHPのインストール | Raspberry Pi用ソケットサーバーフレームワーク「HAL」 | Feijoa.jp

qiita.com

yukidfg.jpn.ph

 

 構築手順の概要

  コマンド入力の詳細内容は参考にしたサイトをご覧下さい。

  私の備忘録として、最低限のコマンドのみ記載します。

1.apache のインストール
  ラズパイ側

sudo apt-get install apache2 -y

  ⇒PCのブラウザ側で

http://192.168.*.*/  *:は各々環境で異なります
It works!

の文字がある図が出たらOK


2.phpのインストール
  現在のPHP versionは php5ではなく php7.0 
   よって、コマンドは 5⇒7.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

あとはApacheを再起動するだけ。これでPHPが利用できるようになります。

sudo service apache2 restart

Document Root に設定した /var/www/html に移動し、PHP ファイルを作成して実行してみます。

cd /var/www/html
sudo vi test.php
----------------------------------------------
<?php
echo "I'm Raspberry Pi.\n";
----------------------------------------------

ブラウザからアクセスし

コマンドラインから実行も試してみます。コマンドラインでのPHPの実行は -q オプションです。

sudo php -q test.php

最後にPHPコマンドを実行してみます。-r オプションです。

sudo php -r "echo 'hello, world.';"

これで、Raspberry Pi でもPHPを実行する環境が整いました

PHPファイル action.php

-----------------------------------------------------
  <form action="action.php" method="post">
名前: <input type="text" name="name" />
年齢: <input type="text" name="age" />
<input type="submit" />
<br />
こんにちは<?php echo htmlspecialchars($_POST['name']); ?>さん
あなたは<?php echo (int)$_POST['age']; ?>歳です。
</form> ----------------------------------------------------

3.MySQLの設定

  ※MySQLの設定は、ちょっと難関でした。

mysql -u root -p

のコマンドで、設定したrootのパスワードを入れ、何度やってもエラー?。

いろいろ検索したところ、下記サイトで取り合えず解決。

 

ラズベリーパイにMariadbをインストールした時のメモ
 https://qiita.com/mtmtEM/items/cbda7216c08bc363be1f

  ※最新のraspbian(Stretch)ではmysqlではなくmariadb
推奨されているとのこと。

また、unix_socketプラグインを無効にするとログインできるらしいので以下を実行。

下記内容は、参照サイトから出典

 

#データベースを変更

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 | *7F0E37FBE843C587C23B67BD3****|unix_socket| +------+-------------------------------+-----------+ <1 row in set (0.00 sec)

# rootユーザに対するunix_socketプラグインを無効化する

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 | *7F0E37FBE843C587C23B67BD**** | | +------+-------------------------------+----------+ <1 row in set (0.00 sec)

# 変更した更新内容を反映

MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
MariaDB [mysql]> exit;
Bye

# 設定したパスワードを入力するとログインできる

pi@raspberrypi:~ $ mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 43
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. MariaDB [(none)]>

動作確認は、次項で。

 

 

5.WordPressのデータベース作成
以下のコマンドでMySQLにログイン
mysql -uroot -p
パスワードを尋ねられるので先ほどメモしたMySQLのパスワードを入力します。
ログインに成功し。コマンドラインの左側の表示がmysql >に変化。
以下のコマンドでWordPressが使用するデータベースを作成。

create database wordpress;

次のようなメッセージが表示されたら成功です。
Query OK, 1 row affected (0.00 sec)
Ctrl + Dを押してMySQLから抜けます。

これで、PCのブラウザ側で

http://192.168.*.*/ 

を開くと、冒頭の画面のような

 綺麗な写真のWordPress のホームページの原型が表示されます。

 

現状はここまで、次は WordPressを学習し、

実運用できるホームページまで構築の状況を

報告したいと思います。

 下記に続きます。

www.m-miura.tech

 

www.m-miura.tech

 

 

今後のラズベリーパイの実験目標

 ①AI スピーカ ⇒下記で実施済み。

www.m-miura.tech

 ②ハイレゾ再生オーディオ ⇒専用DACボードが必要なため、後で

          ➡下記で実施済み。

www.m-miura.tech

 

 ③パーソナルクラウド(サーバー)

  ⇒サーバーは、今回のWebサーバー(ホームページ)構築を目標にする。

 

 ④OS(Raspbian、Windows10 IoT、Volumio等)などの動作評価

   ⇒Windows10 IoTは、SDカード作成が出来ないので挫折。というか、Windowsにを起動しても、オープンソースが使えない限り、使うメリットがない結論。

Volumioは、OSと言うより、ハイレゾ再生ソフトで、結局、Raspbianがベースなので、特にOS評価は不要。

 

次にやろうとしている事。

  ⑤WordPress学習結果のまとめ

 

   深層学習(Deep Learning)、機械学習(Machine Learning)の試行。<これがラズパイ用途の本命か?>