k-holyのPHPとか諸々メモ

Webで働くk-holyがPHP(スクリプト言語)とか諸々のことをメモしていきます。ソースコードはだいたいWindowsで動かしてます。

BEAR.Sundayを触ってみたメモ (1)インストール

BEAR.Sundayを試してみる人が増えてきたので、自分も試してみました。
以前(dev2)はWindowsではうまく動かせずインストール途中で挫折してしまったのですが、今回はどうでしょうか。

手順は公式Wikiを参考に
http://code.google.com/p/bearsunday/wiki/Install

BEAR.SundayはPHP5.4以降必須なので、まずはこちらから最新のPHP5.4を入手します。
http://windows.php.net/download/

PHP5.4.4のVC9 Thread Safe版にしました。
http://windows.php.net/downloads/releases/php-5.4.4-Win32-VC9-x86.zip

C:\phpに展開。
BEAR.Sundayはビルトインサーバでの開発をサポートしており、PHP単体で動かせるのが嬉しいですね。

APC拡張が必要ということで、Windows版APC拡張のdllをこちらから入手します。
http://downloads.php.net/pierre/
http://downloads.php.net/pierre/php_apc-3.1.10-5.4-vc9-x86.zip

zip展開すると、nts(non thread safe)とts(thread safe)の2つのディレクトリがあるので、環境に合った方のphp_apc.dllをPHPインストール先のextディレクトリにコピー。

php.iniを修正します。
apcの他にも必要そうな拡張を有効にして、いつもの設定を追加しておきます。

extension_dir = "ext"

extension=php_apc.dll
extension=php_curl.dll
extension=php_mbstring.dll
extension=php_exif.dll      ; Must be after mbstring as it depends on it
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_openssl.dll
extension=php_pdo_mysql.dll
extension=php_pdo_sqlite.dll

default_charset = UTF-8

[Date]
date.timezone = Asia/Tokyo

[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = UTF-8
mbstring.encoding_translation = Off
mbstring.detect_order = auto
mbstring.substitute_character = none;
mbstring.func_overload = 0
mbstring.strict_detection = Off

[Session]
session.use_cookies = 1
session.use_only_cookies = 1
session.cookie_httponly = 1
session.gc_divisor = 1000
session.bug_compat_42 = On
session.bug_compat_warn = On
session.hash_function = 1
session.hash_bits_per_character = 6

apc.enable_cli = 1


普段はXAMPPのPHP(5.3.8)を使っていますので、今回インストールした5.4.4のパスを一時的にPATH環境変数の先頭に追加します。

以下、msysgit 1.7.11のGit Bashにて

$ PATH=/c/php:$PATH
$ php -v
PHP 5.4.4 (cli) (built: Jun 13 2012 21:27:06)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies

BEAR.SundayをGitHubからcloneします。

$ mkdir BEAR
$ cd BEAR
$ git clone https://github.com/koriym/BEAR.Sunday.git
Cloning into 'BEAR.Sunday'...
remote: Counting objects: 5867, done.
remote: Compressing objects: 100% (2005/2005), done.
Receiving objects: 100% (5867/5867), 2.77 MiB | 775 KiB/s, done.
emote: Total 5867 (delta 2949), reused 5803 (delta 2885)
Resolving deltas: 100% (2949/2949), done.

展開されたディレクトリに最新のcomposer.pharを取得します。

$ cd BEAR.Sunday
$ curl -s http://getcomposer.org/installer | php
#!/usr/bin/env php
All settings correct for using Composer
Downloading...

Composer successfully installed to: C:\Users\k_horii\Dropbox\Documents\Projects\BEAR\BEAR.Sunday\composer.phar
Use it: php composer.phar

composer.pharを使って依存ライブラリをインストールします。

$ php composer.phar install
Installing dependencies
  - Installing aura/autoload (dev-master)
    Cloning 1c95616bc2fc1d99b60ec3c18b8fe7aea4e21824

  - Installing aura/router (dev-master)
    Cloning ca66b9307b15f7a620282f4c02fc23eff1a7c398

  - Installing aura/web (dev-master)
    Cloning e051c49b8e314e59b90efdaf99e2de2bfc3da2e8

  - Installing aura/di (dev-master)
    Cloning a26165d20b5c937dbb175b951d67d116ca28bee7

  - Installing doctrine/common (dev-master)
    Cloning ee3aeae972386d761d8358bab3d67e246f4261ba

  - Installing ray/aop (dev-master)
    Cloning 85afc6ff54d8f877d39ecf0ad2a5a67e14ae7fd5

  - Installing ray/di (dev-master)
    Cloning c9cf837e6d15168feace706204102558102ab337

  - Installing monolog/monolog (1.1.0)
    Downloading: 100%

  - Installing symfony/event-dispatcher (v2.0.16)
    Downloading: 100%

  - Installing guzzle/guzzle (v2.7.2)
    Downloading: 100%

  - Installing facebook/xhprof (0.9.2)
    Downloading: 100%

  - Installing aura/signal (dev-master)
    Cloning a260b16b150553dbedd41e9edc57a18a34c3dacd

  - Installing bear/resource (dev-master)
    Cloning 51694ae54c7795ad9a46e4a3c38b01789570c41d

  - Installing doctrine/dbal (dev-master)
    Cloning 00ac50c0e721b1dcbcc4924938ab648e28feb4cf

  - Installing pagerfanta/pagerfanta (dev-master)
    Cloning c490684def33e992241e7fad33bcbd03d9d18643

  - Installing vdump/vdump (0.1.0)
    Downloading: 100%

  - Installing smarty/smarty (v3.1.11)
    Checking out /tags/v3.1.11/@4636



  [RuntimeException]
  Package could not be downloaded, 'svn' は、内部コマンドまたは外部コマンド、
  操作可能なプログラムまたはバッチ ファイルとして認識されていません。




install [--prefer-source] [--dry-run] [--dev] [--no-scripts]

どうも、svnコマンドが必要なようです…orz
Apache Subversion Binary Packages からWindows版バイナリを入手します。
http://subversion.apache.org/packages.html

色々あって違いがよく分かりませんが、「32- and 64-bit client MSI」ということなので、こちらのSilk SVN 1.7.5 (32 bit)をインストール
http://www.sliksvn.com/pub/Slik-Subversion-1.7.5-win32.msi

インストーラ実行完了後、Git Bashを再起動してsvnコマンドを確認してみます。

$ svn --version
svn, バージョン 1.7.5-SlikSvn-1.7.5-WIN32 (SlikSvn/1.7.5) WIN32
   コンパイル日時: May 30 2012, 20:28:43

Copyright (C) 2012 The Apache Software Foundation.
This software consists of contributions made by many people; see the NOTICE
file for more information.
Subversion is open source software, see http://subversion.apache.org/


いけそうなので、再度 composer install

$ php composer.phar install
Installing dependencies
  - Installing smarty/smarty (v3.1.11)
    Checking out /tags/v3.1.11/@4636

  - Installing symfony/console (v2.0.16)
    Downloading: 100%

  - Installing symfony/http-foundation (v2.0.16)
    Downloading: 100%

Writing lock file
Generating autoload files


インストールは途中から再開してくれるみたいです…無事に入りました!

テストの実行がありますが、諸々の事情で今回はパスしました。(PHP5.4はユニットテストの環境整えてなくて…)

ビルトインサーバ起動用のショートカットを作成します。
リンク先は C:\php\php.exe -S localhost:8088 web.php
作業フォルダーは BEAR.Sundayインストールパス\apps\sandbox\htdocs に設定。

さっそく起動してブラウザで見てみると…

Fatal error: require(): Cannot redeclare class bear\framework\framework in C:\Users\k_horii\Dropbox\Documents\Projects\BEAR\BEAR.Sunday\apps\sandbox\htdocs\index.php on line 16

index.php のここを強引に require → require_once に書き換えてみて再度アクセス

// load
require_once dirname(dirname(dirname(__DIR__))) . '/package/BEAR/Framework/src/BEAR/Framework/Framework.php';
require_once dirname(__DIR__) . '/App.php';


キタワァ.*・゜゚・*:.。..。.:*・゜(n‘∀‘)η゚・*:.。. .。.:*・゜゚・*!!!!!☆

今までWindowsで何度かインストールに挑戦しましたが、ここまで来られたのは初めてです。
テスト飛ばしてしまってますが、ひとまずフレームワークは動いてるので、このまま行けるところまで行ってみようと思います。

しかしよく見ると optional な拡張がいくつか入っていません。
Xdebug は Windows版 PHP 5.4 用の dllを見つけたのですが、memcacheとxhprofについては見つけられませんでした。

Xdebug
http://xdebug.org/download.php

Xdebug 2.2.0 PHP 5.4 VC9 TS (32 bit)
http://xdebug.org/files/php_xdebug-2.2.0-5.4-vc9.dll

これを入れて、php.iniで有効にします。

[XDebug]
zend_extension = "C:\php\ext\php_xdebug-2.2.0-5.4-vc9.dll"

次回はチュートリアルをやってみます。
チュートリアルは最近頻繁に更新されているようなので、Windows派の方もぜひ触ってみましょう!

Blogチュートリアル
http://code.google.com/p/bearsunday/wiki/blog

"はじめての"チュートリアル
http://code.google.com/p/bearsunday/wiki/my_first_index