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 |
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 |
AddHandler cgi-script .cgi |
sudo nano /etc/apache2/sites-available/000-default.conf |
ServerAdmin webmaster@localhost |
DocumentRoot /var/www/html |
# 次の5行を追加する。 |
<Directory /var/www/html/> |
Options FollowSymLinks |
AllowOverride All |
Require all granted |
</Directory> |
最後に、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ファイルの記述を修正してご覧のとおり。これですべて完了です。

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