Ⅶ.  終 わ り に(Raspberry Pi3 + Raspbian Stretch編)

 LAMPのインストールを除けば、全体的にとても順調に進みました。Raspberry Pi 3がWiFiを標準装備していること、Raspbian Stretchがそれをうまくサポートしていることから、ネットワークまわりの設定は大変楽になっています。またGUIを利用したUSB DACの設定などは簡単すぎてビックリ、左右スピーカーのバランス調節までサポートされていて大満足です。
 LAMPインストールをJessieと同じようにやると不可解なエラーが発生して困りましたが、これはⅤ章の冒頭のとおり先達の惜しみない情報提供に助けられました。
 全体を通して、またRaspberry Piが大きく進歩したなと感慨を新たにしているところです。最後に、Raspberry Pi 2のWebサーバーで動作していたWebアプリケーションとデータの移行を簡単にまとめておきます。Webサーバーとして運用するためには、CGIが利用できるようにApacheの設定を変更する必要があり、そのあたりが最終章のポイントです。それが終わると、心配していた日本語の文字化けなども全く無く、移行も動作確認も無事に完了。これも何かのご参考になればと思います。

1.「日本の世界遺産」データベースの移行

(1)データベース構築のソースデータ

 phpMyAdminのエクスポート/インポート機能を使って一括移行する方法がスマートですが、ここではハンドで進める手順を説明します。ソースデータとして、先にWinSCPでRaspberry Piのtempフォルダーにコピーした4つのCSVファイルを使用します。


(2)データベース定義

①データベースの作成
 まず次のSQL文でデータベースを作成します。
MariaDB [(none)]> CREATE DATABASE world_heritage;
MariaDB [(none)]> USE world_heritage;
Database changed

②4つのテーブルを作成
 次のSQL文で4つのテーブルを作成します。
MariaDB [world_heritage]> CREATE TABLE heritage_table (
-> RegisterNo INT NOT NULL, HeritageName VARCHAR(100) NOT NULL,
-> Kind SMALLINT NOT NULL, RegisterDate CHAR(10) NOT NULL,
-> PRIMARY KEY (RegisterNo));
Query OK, 0 rows affected (0.41 sec)
MariaDB [world_heritage]> CREATE TABLE kind_table (
-> Kind SMALLINT NOT NULL, KindName CHAR(20) NOT NULL,
-> PRIMARY KEY (Kind));
Query OK, 0 rows affected (0.10 sec)
MariaDB [world_heritage]> CREATE TABLE config_table (
-> RegisterNo INT NOT NULL, ConfigNo INT NOT NULL,
-> PrefCode INT NOT NULL, Configure VARCHAR(100),
-> Note VARCHAR(100),
-> PRIMARY KEY (RegisterNo,ConfigNo));
Query OK, 0 rows affected (0.30 sec)
MariaDB [world_heritage]> CREATE TABLE pref_table (
-> PrefCode INT NOT NULL, PrefName CHAR(10) NOT NULL,
-> PRIMARY KEY (PrefCode));
Query OK, 0 rows affected (0.15 sec)

③データの移入
 次のSQL文で、4つのテーブルにtempフォルダーに収納したCSV形式のデータを移入します。
MariaDB [world_heritage]> LOAD DATA INFILE "/tmp/heritage.csv" -> INTO TABLE world_heritage.heritage_table FIELDS TERMINATED BY ",";
Query OK, 20 rows affected (0.05 sec)
Records: 20 Deleted: 0 Skipped: 0 Warnings: 0
MariaDB [world_heritage]> LOAD DATA INFILE "/tmp/kind.csv" INTO TABLE world_heritage.kind_table
-> FIELDS TERMINATED BY ",";
Query OK, 2 rows affected (0.02 sec)
Records: 2 Deleted: 0 Skipped: 0 Warnings: 0
MariaDB [world_heritage]> LOAD DATA INFILE "/tmp/config.csv" INTO TABLE world_heritage.config_table
-> FIELDS TERMINATED BY ",";
Query OK, 125 rows affected (0.05 sec)
Records: 125 Deleted: 0 Skipped: 0 Warnings: 0
MariaDB [world_heritage]> LOAD DATA INFILE "/tmp/pref.csv" INTO TABLE world_heritage.pref_table
-> FIELDS TERMINATED BY ",";
Query OK, 47 rows affected (0.04 sec)
Records: 47 Deleted: 0 Skipped: 0 Warnings: 0
 これでデータベースの移行が完了しました。SELECT文でテーブルの内容を確認することができます。

2.Webアプリケーションの移行

 ①Apacheの調整

 Webサーバーソフト上でユーザープログラムが動くようにするために、ApacheのCGI(Common Gateway Interface)機能を有効にします。Apacheのバージョン2.4から設定方法が変わっていて(Ⅴ章のApache2インストール時に確認したように、バージョン2.4.25です)、以前とは設定内容が異なっています。
 まずCGIの拡張子を設定するために、/etc/apache2/mods-enabled/mime.confを編集します。
sudo nano /etc/apache2/mods-enabled/mime.conf
 下記の行を見つけてコメントを解除し、CGIとして扱う拡張子を有効にします。
AddHandler cgi-script .cgi
 次にApache2の設定ファイル、/etc/apache2/sites-enabled/000-default.confを編集します。
sudo nano /etc/apache2/sites-available/000-default.conf
 ドキュメントルートに対する設定で、後で述べるApache制御ファイル(.haccessファイル)はこの編集によって作動準備が整います。「DocumentRoot /var/www/html」の後方に記述を追加します。
   ServerAdmin webmaster@localhost
   DocumentRoot /var/www/html
   
   # 次の5行を追加する。
   <Directory /var/www/html/>
     Options FollowSymLinks
     AllowOverride All
     Require all granted
   </Directory>
   ※この部分はFeijoa.jpさんの『ApacheとPHPのインストール』を参考にさせていただきました。
 最後に、a2enmodでApacheサーバーでのCGIの実行を可能にして、Appacheを再起動します。
sudo a2enmod cgid
sudo service apache2 restart


 ②Webアプリケーションの導入

 導入と言っても、以前作成したPC上のWorldHeritageフォルダーを、WinSCPでRaspberry Piのドキュメントルート(/var/www/html)にコピーするだけです。その前に、ドキュメントルートのアクセス権限を変更してください。
sudo chmod 777 /var/www/html


 ③Apache制御ファイルの設定

 ドキュメントルートにApache制御ファイル.htaccessを設置して、HTMLファイル内のPHPが実行できるように指定します。

 nanoを起動して、/var/www/htmlに最小限の記述をした.htaccessファイルを作成します。
sudo nano /var/www/html/.htaccess
 (記述内容)
# HTMLファイルでPHPを実行可能にする
AddType application/x-httpd-php .htm .html


3.Webアプリケーションの動作確認

 PCのブラウザから「http://192.168.0.32/WorldHeritage/」と入力してWorldHeritageにコンタクトします。ところが、以前よりリストボックスが縦方向に間延びしてボタンがはみ出しています。

 今回はとりあえず移行して動作確認をするのが目的なので、CSSファイルの記述を修正してご覧のとおり。これですべて完了です。


 では、皆様のご健闘を祈ります。