INTER-Mediatorをレンタルサーバに組み込む(さくらのレンタルサーバ)


はじめに

INTER-Mediatorをハンズオンが終わると、いよいよ、独自アプリを開発したくなってくる。INTER-Mediatorフレークワークを使う為には、Webサーバとデータベースが必要。オンプレミスサーバで構築しても良いが、ここでは、てっとり早く安価にはじめる為、レンタルサーバを使ったINTER-Mediator運用環境を設定する。

さくらのレンタルサーバ

レンタルサーバは、さくらインターネットのレンタルサーバで行います。レンタルサーバのグレードは、『スタンダード』を使用します。
さくらのレンタルサーバ: https://www.sakura.ne.jp

さくらのレンタルサーバの特徴(2018/01/28現在)
- 2週間のお試し期間がある
- MySQLが使える(スタンダード: 5OOMB)
- Shellアクセスできる
- 安価(515円/月〜)

前提条件

INTER-Mediatorの理解

もし、INTER-Mediatorがわからない方は、ぜひとも、『INTER-Mediatorをはじめよう』について学習してください。学習しやすいようにバーチャルマシンやビデオチュートリアルも用意してあります。

さくらのレンタルサーバ

さくらのレンタルサーバ、スタンダード以上の契約があること。とりあえず試したい方は、2週間のお試しを利用するのも手です。

セットアップ方針

INTER-Mediatorのインストール

GitHubのリポジトリの最新版をインストールします。(リリース版にする場合は、INTER-Meidator本家の『ダウンロードとインストール』を参考にしてください。)

MySQL

さくらのレンタルサーバ(スタンダード)のMySQLには、次の条件があります。
- 文字コードをutf8するのに少々問題がある
- MySQLのデータベースサイズはそんなに大きくない(スタンダード500MB)
- MySQLのサンプルデータを読み込んで、サンプルプログラムでセットアップ確認します。

セキュリティについて

INTER-Mediatorのパッケージには、サンプルプログラムも含まれています。また、動作確認の為にも一旦サンプルが動作するようデータベースも設定します。不用意に第三者にアクセスされないようにパスワードによるアクセス制限することにします。

おおまかな流れ

  1. さくらのレンタルサーバを契約する
  2. INTER-Mediatorのディレクトリにアクセス制限をかける
  3. INTER-Mediatorをダウンロードして展開する
  4. データベース(MySQL)を準備する
  5. データベースのデータをMySQLに読み込む
  6. INTER-Mediatorのデータベース接続設定を変更する
  7. サンプルの動作確認をする
  8. さくら特有の問題を解決する

手順

さくらのレンタルサーバを契約する

スタンダード以上のさくらのレンタルサーバ契約をする。契約が初めての方は、次のオフィシャルの情報を参考にしてください。
さくらのサポート情報: レンタルサーバを借りてみよう

次の情報を基準に話を進めます。
名前は、契約時の名前と読み替えてください。

項目 名前
初期ドメイン 名前.sakura.ne.jp
展開ディレクトリ /home/名前/www/im/
MySQL DB名 名前_test_db
MySQL DB文字コード UTF8mb4

INTER-Mediatorのディレクトリにアクセス制限をかける

  • sshでさくらのレンタルサーバのディレクリにアクセス
$ ssh 名前@名前.sakura.ne.jp
  • 展開するディレクトリを作成 ログイン直後のカレントディレクトリは、『/home/名前』なので、cdでwwwに移動して、imディレクトリを作成
% cd www
% mkdir im
  • ファイルマネージャーでアクセス制限 ファイルマネジャーにログインして、『/home/名前/www/im』ディレクトリにアクセス制限を設定します。

オフィシャルヘルプ: 『【レンタルサーバ】ファイルマネージャーでアクセス制限をする

GitHubからINTER-Mediatorをダウンロードする

  • カレントディレクトリをimにして、GitHubからINTER-Mediatorをダウンロード。
% cd im
% git clone https://github.com/INTER-Mediator/INTER-Mediator.git

MySQLデータベースを作成する

  • さくらインターネットサーバコントロールパネルで、『データベース』の設定をクリックして、『データベースの新規作成』をする。

オフィシャルヘルプ: 『【レンタルサーバ】データベースの作成・追加・削除

項目 名前
データベース バージョン MySQL 5.7
データベース 名前
データベース名 名前_test_db
接続用パスワード *******
データベース 文字コード UTF-8(utf8mb4)

作成後、データベースサーバが決定する。

項目 名前 備考
データベース サーバ mysqlNNN.db.sakura.ne.jp NNNは番号

データベースのデータをMySQLに読み込む

展開したINTER-Mediatorの中『sample_schema_mysql.txt』というファイルがあり、Sampleアプリのデータが入っている。さくらのMySQL用に変更して読み込む

  • 『sample_schema_mysql.txt』をコピーする
cd ./INTER-Mediator/dist-docs
cp sample_schema_mysql.txt sample_schema_mysql_for_sakura.txt
  • 『sample_schema_mysql_for_sakura.txt』のL19からL30までコメントアウトする
/*
# DROP USER 'web'@'localhost';
CREATE USER 'web'@'localhost' IDENTIFIED BY 'password';
# GRANT USAGE ON *.* TO 'web'@'localhost' IDENTIFIED BY 'password';

# Grant to All operations for all objects with web account
GRANT SELECT, INSERT, DELETE, UPDATE ON TABLE test_db.* TO 'web'@'localhost';

DROP DATABASE IF EXISTS test_db;
CREATE DATABASE test_db
        CHARACTER SET utf8mb4
        COLLATE utf8mb4_unicode_ci;
USE test_db;
*/
  • データベースに読み込む(カレントディレクトが『im』とする)
% mysql -u 名前 -p -h mysqlNNN.db.sakura.ne.jp -D hatena_test_db --default-character-set=utf8mb4 < INTER-Mediator/dist-docs/sample_schema_mysql_for_sakura.txt

INTER-Mediatorのデータベース接続設定を変更する

展開したINTER-Mediatorの中『params.php』というファイルがあり、設定を次の通り変更する。

変数名 既存値 設定値
$dbUser web アカウントの名前
$dbPassword password データベースパスワード
$dbDSN mysql:unix_socket=/tmp/mysql.sock;dbname=test_db;charset=utf8 mysql:host=mysqlNNN.db.sakura.ne.jp;dbname=名前_test_db;charset=utf8mb4

サンプルの動作確認をする

『Any Kinds of Samples』の『Search Page』にアクセスして動作を確認する。

さくら特有の問題を解決する

文字コードに問題がある場合は、次のコードを追加する。

例:『Any Kinds of Samples』の『Search Page』の場合
Samples/Sample_search/include_MySQL.phpのファイルのL25以下に次のコードを追加する

'script' => array(
                array(
                    "db-operation"=>"load",
                    "situation"=>"pre",
                    "definition"=>"SET NAMES utf8mb4"
                ),
            ),