LoginSignup
2
5

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-08-30

はじめに

業務で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章(ほぼ静的なページの作成)からやろうと思います。
次→ほぼ静的なページの作成

2
5
0

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
2
5