LoginSignup
33
30

More than 5 years have passed since last update.

IBM BluemixでPHPアプリケーションを公開しMySQLを操作する

Last updated at Posted at 2016-05-08

初めに

今回は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の記事に詳しく書かれています。

IBM Bluemixフリートライアルアカウント作成手順

特に詰まることなく登録できると思います。

PHPアプリケーションの構築

登録が完了したらログインをし、PHPアプリケーションを構築していきます。

ダッシュボードからCloud Foundry アプリの「アプリの作成」を選択します。

スクリーンショット 2016-05-08 13.13.18.png

今回はwebアプリを構築します。

スクリーンショット 2016-05-08 13.14.34.png

今回はPHPアプリケーションを構築するのでPHPを選択し、続行を選択します。

スクリーンショット 2016-05-08 13.18.02.png

次にアプリケーション名を入力します。アプリケーション名でエラーが出る場合、名前がその他ユーザーのアプリケーションと重複している可能性があるため違う名前を入力してください。

スクリーンショット 2016-05-08 13.20.49.png

最後にコーディングの設定ですが、一旦ここはCF コマンドラインインターフェースを選択し、画面下の「アプリの概要の表示」を選択してください。

スクリーンショット 2016-05-08 13.24.45.png

スクリーンショット 2016-05-08 13.25.36.png

下記のようにアプリケーションの概要が表示されます。

スクリーンショット 2016-05-08 13.29.55.png

経路に表示されているURLが今回作成したアプリケーションのURLです。アクセスするとHello wolrd!とお決まりの単語が表示されていると思います。

スクリーンショット 2016-05-08 13.39.06.png

つぎに、今回のアプリケーションのコードを編集していきます。
ダッシュボードの右上に表示されている「GITの追加」を選択します。

すると、GITリポジトリーの作成画面になるので、そのまま続行を選択します。

スクリーンショット 2016-05-08 13.41.38.png

作成が完了したら、閉じるを選択し、ダッシュボードの右上に追加された「コードの編集」ボタンを選択します。

スクリーンショット 2016-05-08 13.45.30.png

スクリーンショット 2016-05-08 13.48.05.png

すると、別窓でエディタ画面が開きます。

スクリーンショット 2016-05-08 13.52.22.png

では、先ほど表示されたHello world!を編集してみたいと思います。
index.phpを選択し、14行目のHello world!をHello PHP!に修正します。

スクリーンショット 2016-05-08 13.56.18.png

修正したら保存をし、画面上部の三角のボタンを押下することでアプリケーションにデプロイされます。

スクリーンショット 2016-05-08 14.02.28.png

デプロイが完了し、再びアプリケーションのURLにアクセスするとHello PHP!になっていると思います。

mysqlの構築

mysqlの構築

次にPHPアプリケーションにmysqlを紐付けたいと思います。ダッシュボードから「サービスまたはAPIの追加」を選択します。

スクリーンショット 2016-05-08 14.13.20.png

画面上部の検索からmysqlと入力し検索します。

スクリーンショット 2016-05-08 14.14.41.png

検索すると、ClearDB MySQL Databaseが表示されるのでこれを選択します。

スクリーンショット 2016-05-08 14.20.05.png

選択すると、プラン選択画面になります。
選択するプランは無料の「Spark DB」を選択し作成ボタンを押下します。

スクリーンショット 2016-05-08 14.29.17.png

作成が完了するとダッシュボードにmysqlが追加されていると思います。

スクリーンショット 2016-05-08 14.40.02.png

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連携までとても簡単に構築できるので、プログラミングの勉強したいけど環境構築が・・・と敬遠していた方はこれを機に始めてみてはいかがでしょうか。

33
30
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33
30