はじめに
業務で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
を編集します。
ついでにタイムゾーンも編集しておきます。
'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
を編集します。
- 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/
にアクセスしてみると、下図のようになっていれば問題ないかと思います。
9/8 追記
Cloud9を一度閉じる、もしくは新しくターミナルのタブを立ち上げると、~/.phpbrew/bashrc
が読み込まれていないため、PHPのバージョンがデフォルトのままになっています。
そのため、~/.bashrc
に追記し、起動時に読み込むようにしておきます。
+ # To update PHP 7
+ if [ -f ~/.phpbrew/bashrc ]; then
+ source ~/.phpbrew/bashrc
+ fi
さいごに
今回は環境設定についてでした。
次回から実際にコードを書いていきたいと思います。
なお、Rails Tutorialの3章(ほぼ静的なページの作成)からやろうと思います。
次→ほぼ静的なページの作成