ドットインストールさんの動画を参考に、Cloud9でCakePHP3の開発環境を作ってPHPの学習をしました。その際の手順を残します。
1.PHP環境の確認
まずは、必要要件であるPHP環境を確認。
CakePHP3.2での必要条件は、以下のとおり。
PHPのバージョンが5.5.9 以上
インターナショナル拡張が必要
➀PHPのバージョン確認
$ php -v
私の環境では、以下のように表示されました。
PHP 5.5.9-1ubuntu4.17 (cli) (built: May 19 2016 19:05:57)
➁PHPインターナショナル拡張の確認
$ php -i|grep intl
以下のように表示されればOK。(私の環境では拡張済みでした。)
/etc/php5/cli/conf.d/20-intl.ini,
intl
intl.default_locale => no value => no value
intl.error_level => 0 => 0
intl.use_exceptions => 0 => 0
2.データベースの設定
➀mysqlのバージョン確認
$ mysql --version
cloud9では、mysql自体はインストール済みです。念のため、バージョン確認をしました。
私の環境では以下のように表示されました。
mysql Ver 14.14 Distrib 5.5.49, for debian-linux-gnu (x86_64) using readline 6.3
➁phpmyAdminのインストール
$ phpmyadmin-ctl install
ログが流れて・・・最後の行にphpmyAdminへアクセスするためのリンクが表示されます。
PHPMyAdmin Installation complete. You can log in at: https://ワークスペース名−ユーザID.c9users.io/phpmyadmin with the following username (and blank password):
「You can log in at:」の後ろのURLがphpMyadminにアクセスするURL。
ログインIDは「Username:」以降に記載されたIDで、cloud9自体のIDと同じ。
➂phpMyAdminのログインとセットアップ
ログイン:
Cloud9のIDと同じIDでログインする。パスワードは最初は設定されていないので空欄。
設定:
「一般設定」の「サーバ接続の照合順序」: utf8_general_ci
外観の設定:
「言語」を「日本語」
ユーザパスワードの設定:
「ユーザ」タブを開いて該当ユーザIDの「特権を編集」リンクをクリック。
下の方へスクロールすると、「パスワードを変更する」とあるのでそこでパスワードを入れ、
右下に見える「実行」ボタンをクリックする。
➃ユーザの確認
ホーム>ユーザと遷移して登録済みのユーザを確認すると、
自分のCloud9のユーザIDと同じIDが登録されていることが確認できます。
➄DBサーバのIPアドレス
PHPからDBへアクセスする際にDBサーバのIPアドレスが必要ですが、
クラウドなのでDBサーバのアドレスはどうなるの?と私のように迷う方もいるかと思います。
Cloud9上では、IPアドレスを指定せずとも「localhost」でPHPからアクセス可能です。
3.cakePHPのインストール
いよいよ本題のcakePHPのインストールです。
➀ Composerのインストール
先に、Composerをインストールします。ターミナルで次のコマンドを実行。
$ curl -s https://getcomposer.org/installer | php
➁cakePHP3.2のインストール
ターミナルで次のコマンドを実行します。コマンド一番後ろには、これから作成するcakePHPアプリのプロジェクト名を入力。
$ php composer.phar create-project --prefer-dist cakephp/app 作成したいプロジェクトの名前
例えば、「myapp」という名前のプロジェクトを作りたいのであれば
php composer.phar create-project --prefer-dist cakephp/app myapp
と入力すればOK。
しばらく待つとターミナルに以下のメッセージ(フォルダのパーミッションは設定するか?)が表示されるので「Y」を押す。
Set Folder Permissions ? (Default to Y) [Y,n]?
ここまででの操作で、ワークスペースの指定フォルダ(上の例だとmyappフォルダ)の下にcakePHPのスケルトンが作成されます。
➂ブラウザから確認する
ブラウザから以下のURLへアクセス。
https://ワークスペース名−ユーザID.c9users.io/プロジェクト名
例えば、Cloud9でワークスペースを「myworkspace」、Cloud9のユーザIDが「user1」、
cakePHPインストール時に「myapp」というプロジェクト名にした場合、
「Get the Ovens Ready」と書かれたページが表示されればOK。
4.cakePHPのデータベース設定
➀ configフォルダのapp.phpを開き、データベース設定を記載する
プロジェクトフォルダ\configにあるapp.phpファイルを開き、「Datasources」という文字列を検索。
(私の場合217行目にありましたが、その時点のバージョンにより数行の変動があると思います。)
そこから12行程度下までスクロールさせると 'username' => という記載が見つかるのでそこから下を修正。
'username' => 自分のDBユーザ名
'password' => パスワード
'database' => データベース名
'timezone' => '+09:00',
➁bootstrup.phpも修正する
同じフォルダにあるbootstrup.phpを開き、「timezone」と記載された行を文字列検索する。
date_default_timezone_set('UTC');
と記載されいますので、UTCをAsia/Tokyoに変更。
date_default_timezone_set('Asia/Tokyo');
➂ブラウザから確認
cakePHPインストール直後にアクセスした先に再度アクセス。
画面を下へスクロールさせて、「Database」と書かれたところに
CakePHP is able to connect to the database. と表示されていれば接続成功。
もしも、「CakePHP is NOT able to connect to the database.」となっていたらまだつながっていません。
app.phpに記載したID、パスワードあたりをよく確認してください。
5.bakeコマンドによるソース生成
➀ bakeコマンドでMVCのソースを自動生成
事前にテーブルを作り、そのテーブル名をbakeコマンドの一番後ろに指定します。
$ bin/cake bake all テーブル名
➁ ブラウザによる確認
以下のURLへアクセスすると、テーブルのデータ一覧が表示されます。
https://ワークスペース名−ユーザID.c9users.io/プロジェクト名/テーブル名
ワークスペース「myworkspace」、ユーザIDが「user1」、プロジェクト「myapp」、テーブルが「posts」という名前だった場合
https://myworkspace-user1.c9users.io/myapp/posts となります。
これで一通りの設定は完了です。
ここまでできたら、後はバリバリと開発するだけです。お疲れ様でした。