Saba note

醜悪コード Ugly hacks ITものづくり

CakePHP3のインストールと初期設定

CakePHP 3.x Document

公式ドキュメント

インストール

http://book.cakephp.org/3.0/ja/index.html
現時点ではCakePHP 3.0.xxが安定版。マイナーアップデートはどんどんしているもよう。
最小単位のCakePHPは4.5MB程度で、通常Venderディレクトリ以下にいろいろ便利モジュールが入ってくるので、もうちょっと総合的な容量は増えてくるかもです。

サーバー

  • PHP5.4以上
  • PHP mbstring 拡張
  • PHP intl 拡張
  • PHP mod_rewrite (*必須ではないとなっておりますが、殆ど必須)
  • MySQL (5.1.10以上)

CakePHPインストール

curlがある場合は、

curl -s https://getcomposer.org/installer | php

ない場合はreadfileでひっぱってくる。

$ php -r "readfile('https://getcomposer.org/installer');" | php

composer.pharがおちてくるので、今度はこのcomposer.pharでcakeをインストールします。
[app_name]の部分がディレクトリ名(プロジェクト名)みたいな感じになります。app_form_aとかにしておけばいいです。
このコマンドでCakePHPの安定版がインストールされます。composer.jsonなどで後ほどバージョンを確認してみましょう。

$ php composer.phar create-project --prefer-dist cakephp/app [app_name]

実際には以下のように実行します。

$ php composer.phar create-project --prefer-dist cakephp/app app_name

/home/user/app_nameディレクトリが作成され、このディレクトリがCakePHP3になります。
問題がなければこれでインストール作業はすべて完了です。

補足1: 一応以下のファイルやディレクトリのパーミッションを確認しましょう。ファイル666でディレクトリ777でOKだろうと思います。
とはいえ、composerでインストールすると最後に「Set Folder Permissions ? (Default to Y) [Y,n]?」と聞かれるので、ここでたいていのパーミッションは正しく設定される筈です。

/home/user/app_name/tmp/cache
/home/user/app_name/tmp/cache/models
/home/user/app_name/tmp/cache/persistent
/home/user/app_name/tmp/cache/views
/home/user/app_name/tmp/sessions
/home/user/app_name/tmp/tests
/home/user/app_name/tmp
/home/user/app_name/logs

補足2: アプリケーション固有のsaltの値を確認しましょう。

Updated Security.salt value in config/app.php

DocumentRootの設定

CakePHPのDocumentrootは、

/home/user/app_name/webroot

基本的には以上で動く筈です。
CakePHPの初期画面では簡単なデバッカーのような役目をしているので、そこで原因はある程度特定可能です。私の場合は、intlのインストールにちょっと手間取りました。
設定したURLにアクセスしてうまく動いているか確認します。

.htaccessの設定

デフォルトではDocumentRoot以下にあるすべてのパスにアクセスがあったときCakePHPのルーティングで采配がきまるのですが、
例外的に通常のアクセスができるファイルをmod_rewriteで設定しておく。phpMyAdminとかテスト用のファイルなど。

<IfModule mod_rewrite.c>
    RewriteEngine On
    # exception
    RewriteCond $1 !^/phpmyadmin/    ←このパスではじまる場合はCakePHP3をスキップ(ディレクトリ)
    RewriteCond $1 !^/test.php ←このパスではじまる場合はCakePHP3をスキップ(ファイル)
    # exception
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

DBの設定をする

インストールしたらとりあえずDBの接続設定をしておきます。app.phpの210行目あたりからその設定があります。
問題なければ、host,username,password,databaseを設定すればよいと思います。

'Datasources' => [
        'default' => [
            'className' => 'Cake\Database\Connection',
            'driver' => 'Cake\Database\Driver\Mysql',
            'persistent' => false,
            'host' => 'DBHOST',
            /**
             * CakePHP will use the default DB port based on the driver selected
             * MySQL on MAMP uses port 8889, MAMP users will want to uncomment
             * the following line and set the port accordingly
             */
            //'port' => 'non_standard_port_number',
            'username' => 'DBUSER',
            'password' => 'PASSWORD',
            'database' => 'DBNAME',
            'encoding' => 'utf8',
            'timezone' => 'UTC',
            'flags' => [],
            'cacheMetadata' => true,
            'log' => false,

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です