旅するえんじにあ - Engineers to Travel -

旅するエンジニアの気まま備忘録

【PHP】 爆速と噂されるPHP FrameworkのPhalconをインストールしてみる

最近爆速と話題のPhalconをインストールしたのでメモ。

今回は以下サーバに対してインストールをしてみようと思います。

最低限のインストール

まずは今回使うサーバです。 ちょっと古いですが、以下のサーバにインストールしようと思います。

# cat /etc/redhat-release 
CentOS release 6.2 (Final)

php,gcc,php-develのインストール

ということで一旦PHPgcc,php-develのインストールをします。

epelレポジトリ、remiレポジトリをインストールします。

# rpm -Uvh http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/6/i386/epel-release-6-8.noarch.rpm
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

既にこの辺インストール終わってるよーPHPもインストールしてるよーって人は飛ばしちゃってくださいね。

さてPHP,gcc,php-develをインストールします。

# sudo yum -y install gcc make
# sudo yum -y install php --enablerepo=remi
# sudo yum -y install php-devel --enablerepo=remi

これでPHPが入りました。 自分の環境では既にPHPが入ってたんですが、ついでだからupdateしちゃいました。

[root@www6421uf php.d]# php -v
PHP 5.4.41 (cli) (built: May 14 2015 23:37:34) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies

といっても5.4なんですけどね。

今年末にはPHP7が出るというのに・・・そこら辺はまた別途。

Phalconダウンロード

早速Phalconを落としましょう。

Phalconはgitにソースがあるので、cloneします。 ついでにインストールも。

# git clone git://github.com/phalcon/cphalcon.git
# cd cphalcon/build
# sudo ./install

php.iniの設定

更にphp.iniの設定も行います。

/etc/php.d/以下にファイルを作成します。

touch phalcon.ini

ファイルを作ったら以下を記述します。

extension=phalcon.so

それでは無事phalconがインストールされたか確認してみましょう。

[root@www6421uf php.d]# php -i |grep Phalcon
PHP Warning:  PHP Startup: mongo: Unable to initialize module
Module compiled with module API=20090626
PHP    compiled with module API=20100525
These options need to match
 in Unknown on line 0
Author => Phalcon Team and contributors

ん?なんかphalconとは関係なさそうなmongoでなんかWarningが出てる・・・ ってことでpeclでmongoをインストールします。

sudo pecl install -f mongo

再度確認してみます。

[root@www6421uf php.d]# php -i | grep phalcon
/etc/php.d/phalcon.ini,
phalcon
phalcon => enabled
OLDPWD => /var/www/html/cphalcon/build
_SERVER["OLDPWD"] => /var/www/html/cphalcon/build

phalconがenabledになったのでこれでインストール完了かな。

Phalcon DevToolsのインストール

phalconにはPhalcon DevToolsというものがあります。

こちらもインストールしておきます。

これがあるとCakeのBakeみたいな感じでプロジェクトが簡単に作れます。

まずはgitからcloneします。

# git clone git://github.com/phalcon/phalcon-devtools.git

今回は落としてきたphalcon-devtoolsを/usr/local/srcへ移動させます。

そしてインストール。

# mv phalcon-devtools /usr/local/src
# cd /usr/local/src/phalcon-devtools
# . ./phalcon.sh

実際インストールといってもphalcon.shではbashにPATH通してるだけみたいです。

ということで~/.bash_profileを確認してみましょう。

export PTOOLSPATH=/usr/local/src/phalcon-devtools/
export PATH=$PATH:/usr/local/src/phalcon-devtools

上記の2行が追加されてればインストールは完了です。

確認のためにphalconコマンドを打ってみましょう。

# phalcon

Phalcon DevTools (2.0.1)

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 (alias of: create-scaffold)
  migration (alias of: create-migration)
  webtools (alias of: create-webtools)

インストールできていますね。

Phalcon DevToolsでprojectを作成

それではprojectを作っていきましょう。

# phalcon project phalcon-test

Phalcon DevTools (2.0.1)

  Success: Controller "index" was successfully created.

  Success: Project 'phalcon-test' was successfully created.

phalcon-testというprojectを作りました。

早速中身を確認してみましょう。

# cd phalcon-test
# tree
.
├── app
│   ├── cache
│   ├── config
│   │   ├── config.php
│   │   ├── loader.php
│   │   └── services.php
│   ├── controllers
│   │   ├── ControllerBase.php
│   │   └── IndexController.php
│   ├── migrations
│   ├── models
│   └── views
│       ├── index
│       │   └── index.volt
│       ├── index.volt
│       └── layouts
├── index.html
└── public
    ├── css
    ├── files
    ├── img
    ├── index.php
    ├── js
    └── temp

15 directories, 9 files

とんでもなくシンプルですね。

ではapacheのvhostを設定して繋いでみましょう。

と思ったら早速Warningがでました。。。。

Warning: Phalcon\Mvc\View\Engine\Volt\Compiler::compileFile(/var/www/html/phalcon_source/phalcon-test/app/config/../../app/cache/_var_www_html_phalcon_source_phalcon-test_app_views_index_index.volt.php): failed to open stream: Permission denied in /var/www/html/phalcon_source/phalcon-test/public/index.php on line 27 Volt directory can't be written

よくあるやーつですね。

今回は/var/www/html以下にphalcon_sourceというディレクトリを作ってphalcon-testというprojectを作ったのですが、app/cacheに対して権限が与えられていなかった為にPermissionエラー。

この辺は適当にPermissionを設定してあげると簡単になおります。

chmod -R 777 /var/www/html/phalcon_source/phalcon-test/app/cache

ということで解決

これでこんな表示が出力されればOKです。

Congratulations!
You're now flying with Phalcon. Great things are about to happen!

This page is located at views/index/index.phtml

さて、さくさくとインストールまで説明しましたが、実際これから少しずつイジっていこうかな。