March 20, 2014

Phalconと、PhalconのデベロッパーツールをUbuntu 13.10にインストールして、プロジェクトを作成してみた

少しハマったりしたので、手順をメモしておきます。

PHPのバージョンは、以下の通りです。
$ php -v
PHP 5.5.9-1+sury.org~saucy+1 (cli) (built: Feb 13 2014 15:58:58)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
    with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans
    with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
ドキュメント http://phalconphp.com/ja/download を見た限り、必要なパッケージは揃っていそうだったので、Phalcon本体だけインストールしようとしたら、エラーが出ました。
$ git clone git://github.com/phalcon/cphalcon.git
$ cd cphalcon/
$ git checkout 1.3.0
$ cd build/
$ sudo ./install

# ... 略 ...

/bin/bash /home/vagrant/cphalcon/build/64bits/libtool --mode=compile gcc  -I. -I/home/vagrant/cphalcon/build/64bits -DPHP_ATOM_INC -I/home/vagrant/cphalcon/build/64bits/include -I/home/vagrant/cphalcon/build/64bits/main -I/home/vagrant/cphalcon/build/64bits -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib  -DPHALCON_RELEASE -DHAVE_CONFIG_H  -march=native -mtune=native -O2 -finline-functions -fomit-frame-pointer -fvisibility=hidden   -c /home/vagrant/cphalcon/build/64bits/phalcon.c -o phalcon.lo
libtool: compile:  gcc -I. -I/home/vagrant/cphalcon/build/64bits -DPHP_ATOM_INC -I/home/vagrant/cphalcon/build/64bits/include -I/home/vagrant/cphalcon/build/64bits/main -I/home/vagrant/cphalcon/build/64bits -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib -DPHALCON_RELEASE -DHAVE_CONFIG_H -march=native -mtune=native -O2 -finline-functions -fomit-frame-pointer -fvisibility=hidden -c /home/vagrant/cphalcon/build/64bits/phalcon.c  -fPIC -DPIC -o .libs/phalcon.o
In file included from /usr/include/php5/ext/spl/spl_iterators.h:27:0,
                 from /home/vagrant/cphalcon/build/64bits/phalcon.c:202:
/usr/include/php5/ext/pcre/php_pcre.h:29:18: fatal error: pcre.h: No such file or directory
 #include "pcre.h"
                  ^
compilation terminated.
make: *** [phalcon.lo] Error 1
README.md https://github.com/phalcon/cphalcon を見ると "libpcre3-dev" が足りないようだったので、インストールしたら解決しました。
$ sudo apt-get install libpcre3-dev
$ sudo ./install

# ... 略 ...

Build complete.
Don't forget to run 'make test'.

Installing shared extensions:     /usr/lib/php5/20121212/

Thanks for compiling Phalcon!
Build succeed: Please restart your web server to complete the installation
インストールが出来たので php.ini に "extension = phalcon.so" を追記して、cliから確認してみると、またエラーが出ました。
$ php -r "print_r(get_loaded_extensions());" | grep phalcon
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20121212/phalcon.so' - /usr/lib/php5/20121212/phalcon.so: undefined symbol: php_pdo_get_dbh_ce in Unknown on line 0
どうもエクステンションの読み込み順序のようで、php.iniではなく
  • /etc/php5/cli/conf.d/phalcon.ini
  • /etc/php5/apache2/conf.d/phalcon.ini
を作成して、それぞれに "extension = phalcon.so" を記述してやると、とりあえず動きました。
$ php -r "print_r(get_loaded_extensions());" | grep phalcon
    [55] => phalcon
次に、適当なディレクトリで composer.json を作ってデベロッパーツールをインストールしました。
{
    "require": {
        "phalcon/devtools": "dev-master"
    }
}
$ composer install
パスを通しておきます。
$ sudo ln -s /xxx/yyy/phalcon-devtools/vendor/bin/phalcon.php /usr/local/bin/phalcon
$ phalcon

Phalcon DevTools (1.3.0)

Available commands:
  commands (alias of: list, enumerate)
  controller (alias of: create-controller)
  model (alias of: create-model)
  all-models (alias of: create-all-models)
  project (alias of: create-project)
  scaffold
  migration
  webtools
さっそく、プロジェクトを作ってみます。
$ phalcon project phalcon_project

Phalcon DevTools (1.3.0)


  Success: Controller "index" was successfully created.


  Success: Project 'phalcon_project' was successfully created.
symlinkを貼るなどして、ブラウザからアクセスしてみます。
$ sudo ln -s /zzz/phalcon_project/public /var/www/phalcon
(凄く素っ気ない画面ですがw)とりあえず、これでOKかなー。

No comments:

Post a Comment