Edited at

CakePHPでRails Tutorialをやってみる〜その1 Cloud9の設定〜

More than 1 year has passed since last update.


はじめに

業務でCakePHPを使用することになったので、勉強を始めました。

本を買おうかとも思ったのですが、折角なのでRails TutorialをCakePHPで書き換えながら勉強をしようかと思いました。

自分の整理と、他の方たちへの参考になればと思い、記事にさせていただきます。

とばせる部分はとばしているので、全て実施するわけではありません。


環境

環境はCloud9で行います。

Rails TutorialではHerokuを使用していますが、今回は使用しませんでした。


  • PHP: 7.1.8

  • CakePHP: 3.5.1

  • MySQL: 5.5.57


Cloud9にログイン

Cloud9にログインしてPHPのプロジェクトを作成します。


PHPのバージョンアップ

Cloud9のデフォルトのPHPバージョンはPHP 5.5なので、バージョンアップします。

せっかくなので、2017年8月末時点で最新の7.1.8にしたいと思います。

Herokuのコミュニティページを参考にしました。

How to upgrade to PHP7

# 最初にlibmcrypt-devをインストール

$ sudo apt-get update
$ sudo apt-get install libmcrypt-dev

# phpbrewのインストール
$ curl -L -O https://github.com/phpbrew/phpbrew/raw/master/phpbrew
$ chmod +x phpbrew
$ sudo mv phpbrew /usr/local/bin/
$ phpbrew init

# ~/.bashrcに追記
$ [[ -e ~/.phpbrew/bashrc ]] && source ~/.phpbrew/bashrc
$ phpbrew lookup-prefix ubuntu

# PHP 7.1.8をインストール
# その他のモジュールも一緒にインストール
$ phpbrew install 7.1 +default +mysql +pdo +fpm +opcache +intl
$ phpbrew switch php-7.1.8
$ phpbrew use php-7.1.8
$ php -v
PHP 7.1.8 (cli) (built: Aug 30 2017 08:43:16) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies

phpbrewというコマンドを使用しました。

PHPのバージョン管理がしやすくなるようです。

Rubyでいうところのrbenvみたいなものですかね?


Composerのインストール

CakePHP3はComposerでのインストールがデフォルトなので、インストールします。

こちらもコミュニティサイトを参考にしました。

Getting Started with CakePHP 3

$ curl -sS https://getcomposer.org/installer | php


CakePHPのインストール

プロジェクト名はcakephp_de_rails_tutorialとします。

$ php composer.phar create-project cakephp/app cakephp_de_rails_tutorial

途中でパーミッションに関して質問されますが、そのままEnterを押してしまいます。

$ cd cakephp_de_rails_tutorial

$ chmod +x bin/cake


データベースの設定

Cloud9でPHPプロジェクトを作成すると、LAMP環境を作成してくれるので、その設定を追記します。

こちらもコミュニティサイトを参考にしました。

Setting Up MySQL

以下のコマンドで、ユーザー名と使用DB名を取得できます。

$ mysql-ctl start

Root User: hogehoge
Database Name: fugafuga

これをもとに、config/app.phpを編集します。

ついでにタイムゾーンも編集しておきます。


config/app.php

'Datasources' => [

'default' => [

// ...

//'port' => 'non_standard_port_number',
+ 'username' => getenv('C9_USER'),
+ 'password' => '',
+ 'database' => 'fugafuga',
'encoding' => 'utf8',
+ 'timezone' => '+09:00',
'flags' => [],
'cacheMetadata' => true,
'log' => false,


CakePHPのアプリケーション自体のタイムゾーンはconfig/bootstrap.phpを編集します。


config/bootstrap.php

- date_default_timezone_set('UTC');

+ date_default_timezone_set('Asia/Tokyo');


サーバーを起動してみる

ここまでやって、CakePHPのコマンドでサーバーを起動してみます。

$ bin/cake server -H $IP -p $PORT

Welcome to CakePHP v3.5.1 Console
---------------------------------------------------------------
App : src
Path: /home/ubuntu/workspace/cakephp_de_rails_tutorial/src/
DocumentRoot: /home/ubuntu/workspace/cakephp_de_rails_tutorial/webroot
---------------------------------------------------------------
built-in server is running in http://0.0.0.0:8080/
You can exit with `CTRL-C`

http://0.0.0.0:8080/にアクセスしてみると、下図のようになっていれば問題ないかと思います。

スクリーンショット 2017-08-30 18.47.10.png


9/8 追記

Cloud9を一度閉じる、もしくは新しくターミナルのタブを立ち上げると、~/.phpbrew/bashrcが読み込まれていないため、PHPのバージョンがデフォルトのままになっています。

そのため、~/.bashrcに追記し、起動時に読み込むようにしておきます。


~/.bashrc

+ # To update PHP 7

+ if [ -f ~/.phpbrew/bashrc ]; then
+ source ~/.phpbrew/bashrc
+ fi


さいごに

今回は環境設定についてでした。

次回から実際にコードを書いていきたいと思います。

なお、Rails Tutorial3章(ほぼ静的なページの作成)からやろうと思います。

次→ほぼ静的なページの作成