iCLUSTAサーバーでcakephpを使ってMySQLに接続
iCLUSTAは安定しているし、GMOクラウドの株主優待使うととてもコストパフォーマンスがいいので使っています。ただ、あまりマニュアルがしっかりしていないので、サーバーの開設やcakephpを使うときのMySQLの設定がわからない部分が多かったのでここに記します。
はじめにまとめ
MySQLを使うには?
アカウントマネージャーでデータベースを申し込むデータベースの管理は?
プランマネージャーからDBManagerを使う or phpMyAdminをインストールするcakephp側の設定は?
datebase.phpを変更する- host ホスト名
- port ポート番号 *新規で追加
- login データベース名
- password パスワード
- database データベース名
1、MySQLを使用可能にする
- そのままでは使えません
- GMOクラウドのアカウントマネージャーに行く
- 右上にあるログイン画面からログインする
- 各種手続き=>サービスに関する手続き=>オプション申込み=>契約してるプランを選択
- 追加項目の「無料データベース(MySQL)」を選択=>次へ
- この後、案内にしたがって進むと申し込みができる。
注意点
- 一度に一つのデータベースしか申し込めないので、複数個作る時には上の操作を何回か行う必要がある
- 申し込みから開設まで1日くらい時間がかかる
2、データベースを管理する
- データベースができたら今度はプランマネージャーにログイン
- ユーティリティ=>データベース設定=>パスワードなどを設定
- ユーティリティ=>DBManager(MySQL)でデータベースの内容を書き換え可能
注意点
- SQLを書いて操作できるが、使い勝手が悪い
推奨する方法-phpMyAdminのインストール
- phpMyAdminの公式サイトから最新版をダウンロードする
- 解凍してFileZillaなどを使ってサーバーの直下にディレクトリを配置
- ユーザー名として1で設置したデータベースのデータベース名を入力
- パスワードとしてデータベース設定で設定したパスワードを入力
- ログイン
こちら少し詳しく書いたものを投稿したので参照してください
http://lost-waldo.blogspot.jp/2014/03/iclustaphpmyadmin.html
3、cakephpの設定
- database.phpを変更
- cakephpのディレクトリごとサーバーにアップロード
ただ、ここでだdatabase.phpの設定でつまずいたので(なんてことないのですが)記録します。
datebase.php
データベースとの接続の設定をするファイルですがデフォルトで以下の記述があります。class DATABASE_CONFIG { public $default = array( 'datasource' => 'Database/Mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'user', 'password' => 'password', 'database' => 'database_name', 'prefix' => '', //'encoding' => 'utf8', ); }
このhost、login、password、database部分を書き換えて使っていました。
class DATABASE_CONFIG { public $default = array( 'datasource' => 'Database/Mysql', 'persistent' => false, 'host' => 'ホスト名:ポート番号', 'login' => 'ログイン名(iCLUSTAではデータベース名)', 'password' => 'パスワード', 'database' => 'データベース', 'prefix' => '', 'encoding' => 'utf8', ); }
しかしこれでは以下のエラーが...
Cake is NOT able to connect to the database.
Database connection "Mysql" is missing, or could not be created.
SQLSTATE[HY000] [2005] Unknown MySQL server host 'データベースホスト:ポート番号' (1)
のエラーが…この問題は1ヶ月くらいわからず放置してました。ふと、cakephpのリファレンスを見に行った時に、"port"という設定項目があるとこに気が付きました。
そこで、ホストで指定していたポート番号を"port"で設定しました
class DATABASE_CONFIG { public $default = array( 'datasource' => 'Database/Mysql', 'persistent' => false, 'host' => 'ホスト名', 'port' => 'ポート番号', 'login' => 'ログイン名(iCLUSTAではデータベース名)', 'password' => 'パスワード', 'database' => 'データベース', 'prefix' => '', 'encoding' => 'utf8', ); }
これでディレクトリ直下にアクセスすると
Cake is able to connect to the database.
ちゃんと表示されました。
設定が少しわかりづらいけどリーズナブルですので利用してみたい方は➔