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 をインストールしてみようと思いましたのは、公式ドキュメントで丁寧に紹介されていたからですの♪
また世界が広がりましたわ!ありがとう存じます!
以上です。