カテゴリー
ゲーム

Composer 体験!CakePHP 2.4.2 をインストールしてみましたの♪★初★

Composer をさわってみたいと思い、時が経ちました。そもそも Composer とはどんなものかしら?と思い1年位が経ったでしょうか。。。

  • Composer を使うとなんだか簡単に CakePHP がインストールできるらしい。
  • 依存関係を自動的に解決してくれる PHP のツールらしい。
  • CakePHP のプラグインも簡単にインストールしてくれるらしい。
  • アップデートも良い感じに行ってくれるらしい。
  • OS にパッケージをインストール!という感じではなく、指定したディレクトリの範囲内でミニマルにインストールしてくれるらしい。

何事も経験ですから、やってみました♪今回はそのノートを残しますわ。

条件・要件

  • /var/www/html/cake/sample/ に CakePHP をインストール。Composer を使いましょう♪
  • その前に Composer も /var/www/html/cake/sample/ にインストール
  • http://192.168.56.111/cake/sample/ がプロジェクトのトップページ
  • 一応記しておくと、/var/www/html/ がドキュメントルート
  • CentOS 5.10
  • Apache 2.2.3
  • PHP 5.4.22

なお、CakePHP のインストールのみを確認いたしますので MySQL は使用いたしませんの。

プロジエクトの場所を作成してそこに移動

前準備ですわ。インストールする場所を作ります。

cd /var/www/html/
mkdir -p cake/sample/
chown -R apache:apache cake/
cd cake/sample/

Composer インストール

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

実際のインストール状況ですの♪

[root@localhost sample]# curl -sS https://getcomposer.org/installer | php
#!/usr/bin/env php
All settings correct for using Composer
Downloading...

Composer successfully installed to: /var/www/html/cake/sample/composer.phar
Use it: php composer.phar
[root@localhost sample]#

composer.json ファイルをセットアップ

セットアップ!と言いましても、エディタでファイルを作るだけですわ♪

vim composer.json

次の内容を書き込みますの!

{
    "name": "example-app",
    "repositories": [
        {
            "type": "pear",
            "url": "http://pear.cakephp.org"
        }
    ],
    "require": {
        "pear-cakephp/cakephp": ">=2.3.4"
    },
    "config": {
        "vendor-dir": "Vendor/"
    }
}

CakePHPをインストール

ここまでで、CakePHP をインストールする場所の準備、Composer のインストールが完了いたしました。ここからは実際に Composer を使う体験として CakePHP のインストールと最初のページの確認を行っていきますわ。

php composer.phar install

バージョン 2.4.2 がインストールされましたの。

セットアップファイル composer.json の「”pear-cakephp/cakephp”: “>=2.3.4″」部分の「>=2.3.4」がバージョン 2.3.4 以上をインストールする、という意味だと考えていますわ。

[root@localhost sample]# php composer.phar install
Loading composer repositories with package information
Initializing PEAR repository http://pear.cakephp.org
Installing dependencies (including require-dev)
  - Installing pear-pear.cakephp.org/cakephp (2.4.2)
    Downloading: 100%         
Writing lock file
Generating autoload files
[root@localhost sample]#

アプリケーションのスケルトンの残りの部分を生成

ここまでの状態でディレクトリ構成やファイルを確認しましたけれども、おなじみの Controller や Model、View などをパッと発見できませんでしたの><。次の bake が必須のようですわ。

Vendor/bin/cake bake project /var/www/html/cake/sample/

Look okay? で「y」を入力いたしました。

インストールされますと、表示もされておりましたが、Config/core.php の Security.salt と Security.cipherSeed にランダムな値が自動的にセットされておりました。

[root@localhost sample]# Vendor/bin/cake bake project /var/www/html/cake/sample/

Welcome to CakePHP v2.4.2 Console
---------------------------------------------------------------
App : sample
Path: /var/www/html/cake/sample/
---------------------------------------------------------------
Skel Directory: /var/www/html/cake/sample/Vendor/pear-pear.cakephp.org/CakePHP/Cake/Console/Templates/skel
Will be copied to: /var/www/html/cake/sample/
---------------------------------------------------------------
Look okay? (y/n/q) 
[y] > y
---------------------------------------------------------------
Created: sample in /var/www/html/cake/sample/
---------------------------------------------------------------
 * Random hash key created for 'Security.salt'
 * Random seed created for 'Security.cipherSeed'
 * Cache prefix set
 * app/Console/cake.php path set.
CakePHP is not on your `include_path`, CAKE_CORE_INCLUDE_PATH will be hard coded.
You can fix this by adding CakePHP to your `include_path`.
 * CAKE_CORE_INCLUDE_PATH set to /var/www/html/cake/sample/Vendor/pear-pear.cakephp.org/CakePHP in webroot/index.php
 * CAKE_CORE_INCLUDE_PATH set to /var/www/html/cake/sample/Vendor/pear-pear.cakephp.org/CakePHP in webroot/test.php
   * Remember to check these values after moving to production server
Project baked successfully!
[root@localhost sample]#

webroot/index.php を修正し、 CAKE_CORE_INCLUDE_PATH を相対パスに変更

マニュアルページの説明を一見したときはイメージが湧きませんでしたけれども、ファイルを覗いて意味が分かりましたの♪つまり、CAKE_CORE_INCLUDE_PATH に絶対パスが指定されておりますのを、相対的に直すということですわね。

vim webroot/index.php
define('CAKE_CORE_INCLUDE_PATH',  DS . 'var' . DS . 'www' . DS . 'html' . DS . 'cake' . DS . 'sample' . DS . 'Vendor' . DS . 'pear-pear.cakephp.org' . DS . 'CakePHP');

define(
    'CAKE_CORE_INCLUDE_PATH',
    ROOT . DS . APP_DIR . '/Vendor/pear-pear.cakephp.org/CakePHP'
);

webroot/test.php を修正し、 CAKE_CORE_INCLUDE_PATH を相対パスに変更

マニュアルページでは webroot/index.php の修正だけでしたけれども、インストール時に表示されたテキストを読みますと、webroot/test.php も CAKE_CORE_INCLUDE_PATH をハードコードしているとのことですわ。こちらも修正いたしますの。

vim webroot/test.php
define('CAKE_CORE_INCLUDE_PATH',  DS . 'var' . DS . 'www' . DS . 'html' . DS . 'cake' . DS . 'sample' . DS . 'Vendor' . DS . 'pear-pear.cakephp.org' . DS . 'CakePHP');

define(
    'CAKE_CORE_INCLUDE_PATH',
    ROOT . DS . APP_DIR . '/Vendor/pear-pear.cakephp.org/CakePHP'
);

インストール確認!

http://192.168.56.111/cake/sample/ にアクセスいたしましたら、、、CakePHP のウェルカムページ(!?)が無事に表示されたことを確認いたしました♪

おわりに

Composer で CakePHP をインストールしてみようと思いましたのは、公式ドキュメントで丁寧に紹介されていたからですの♪

また世界が広がりましたわ!ありがとう存じます!

以上です。

コメントを残す