初めに
今回はIBM Bluemixを使ってPHPからMySQLを操作してみました。
簡単にアプリケーションを公開できるので新入社員でプログラミングの勉強をしたいが、開発環境を整えるのがめんどくさかったり、苦労した方におすすめだと思います。
開発環境はOS X EI Capitanです。
IBM Bluemix
IBM Bluemixとは
IBM Bluemixはアプリケーションを作成するためのプラットフォームを提供するPaaS(Platform as a Service)の一つで同じPaaSとしてはherokuが挙げられると思います。
簡単に開発環境、実行環境をクラウド上に構築ができるため新入社員のプログラミングの勉強などに最適だと思います。
現在30日間のフリートライアルを実施しており、フリートライアルが終わっても無料プラン内であれば料金がかかることはないです。料金に関しては下記のQiitaの記事に詳しく書かれています。
クラウドサービスIBM Bluemixを無料で使うノウハウまとめ
登録
登録に関しては下記のQiitaの記事に詳しく書かれています。
特に詰まることなく登録できると思います。
PHPアプリケーションの構築
登録が完了したらログインをし、PHPアプリケーションを構築していきます。
ダッシュボードからCloud Foundry アプリの「アプリの作成」を選択します。
今回はwebアプリを構築します。
今回はPHPアプリケーションを構築するのでPHPを選択し、続行を選択します。
次にアプリケーション名を入力します。アプリケーション名でエラーが出る場合、名前がその他ユーザーのアプリケーションと重複している可能性があるため違う名前を入力してください。
最後にコーディングの設定ですが、一旦ここはCF コマンドラインインターフェースを選択し、画面下の「アプリの概要の表示」を選択してください。
下記のようにアプリケーションの概要が表示されます。
経路に表示されているURLが今回作成したアプリケーションのURLです。アクセスするとHello wolrd!とお決まりの単語が表示されていると思います。
つぎに、今回のアプリケーションのコードを編集していきます。
ダッシュボードの右上に表示されている「GITの追加」を選択します。
すると、GITリポジトリーの作成画面になるので、そのまま続行を選択します。
作成が完了したら、閉じるを選択し、ダッシュボードの右上に追加された「コードの編集」ボタンを選択します。
すると、別窓でエディタ画面が開きます。
では、先ほど表示されたHello world!を編集してみたいと思います。
index.phpを選択し、14行目のHello world!をHello PHP!に修正します。
修正したら保存をし、画面上部の三角のボタンを押下することでアプリケーションにデプロイされます。
デプロイが完了し、再びアプリケーションのURLにアクセスするとHello PHP!になっていると思います。
mysqlの構築
mysqlの構築
次にPHPアプリケーションにmysqlを紐付けたいと思います。ダッシュボードから「サービスまたはAPIの追加」を選択します。
画面上部の検索からmysqlと入力し検索します。
検索すると、ClearDB MySQL Databaseが表示されるのでこれを選択します。
選択すると、プラン選択画面になります。
選択するプランは無料の「Spark DB」を選択し作成ボタンを押下します。
作成が完了するとダッシュボードにmysqlが追加されていると思います。
mysqlへのアクセス
次にmysqlにターミナルからアクセスしてデータを挿入していきます。
ダッシュボードに表示されているmysqlの「資格情報の表示」を押下し、表示されるjson形式の情報を元にmysqlにアクセスをします。
{
"cleardb": [
{
"name": "ClearDB MySQL Database-vp",
"label": "cleardb",
"plan": "spark",
"credentials": {
"jdbcUrl": "",
"uri": "",
"name": "",
"hostname": "",
"port": "",
"username": "",
"password": ""
}
}
]
}
hostnameとusernameとpasswordを利用してターミナルからmysqlにアクセスします。
mysql -h $hostname -u $username -p
\$hostnameには資格情報の表示で表示されたhostnameを\$usernameにはusernameを入力します。
するとパスワードを求められるので資格情報の表示で表示されたpasswordを入力してmysqlにアクセスします。
アクセスしてshow databasesコマンドでdatabaseを確認すると資格情報の表示で表示された
nameのdatabaseが表示されると思います。
show databases;
表示されたdatabaseにテーブルを作成したいと思います。
まずは、databaseを選択します(\$nameは表示されたdatabase名)
use $name;
次にテーブルを作成します。
create table test(id int,name varchar(255));
次にテーブルにデータを挿入します。
insert into test values(1,'hoge');
では、この挿入したデータを作成したPHPアプリケーションで表示したいと思います。
PHPからmysqlの操作
まずはindex.phpに下記コードを追加します。mysqliの引数は資格情報の表示で表示された情報を元に入力してください。
<?php
// mysqlへのアクセス
$mysqli = new mysqli("$hostname:$port","$username","$password", "$name");
// sql文の発行
$result = $mysqli->query("select * from test");
// 取得した行分繰り返し
while ($row = $result->fetch_row()) {
// テーブルの列分繰り返し
for($i = 0; $i < mysqli_num_fields ( $result ); $i ++) {
// 要素の表示
echo "$row[$i]";
}
}
// 結果を開放
result->close();
// 接続を閉じる
$mysqli->close();
?>
次に、composer.jsonを下記のとおりに編集してください。初期状態では何も書かれていないと思います。
初期状態ではmysqli()などが利用できないためcomposer.jsonに下記記述をすることで利用可能にします。
{
"require": {
"ext-mysqli": "*"
}
}
これらを保存してデプロイしてアクセスをしてみてください。
挿入した1,hogeが表示されていると思います。
最後に
今回はIBM BluemixでPHPアプリケーションを構築しMySQLとの連携をしました。
プログラミングの勉強をしようとした際に最初のHello wolrd!を表示するのが一番大変とよく聞きます。
IBM Bluemixは開発環境、実行環境、DB連携までとても簡単に構築できるので、プログラミングの勉強したいけど環境構築が・・・と敬遠していた方はこれを機に始めてみてはいかがでしょうか。