Phalconについて
Phalconはphpのフレームワークです。
Phalconは最適化された高速なフレームワークで、C拡張として実装されています。
C拡張として実装されているので、かなり高速なようです。
Phalconインストール
前提
以下の環境でPhalconをインストールします。
- ConoHa(クラウドサービス)
- CentOS7.2
- PHP7.0(php-fpm)
- Nginx1.6
以下インストールのコマンドはrootユーザで実行するのを前提にしています。
必要に応じてsudoでコマンド実行してください。
Phalconのバージョンは、2.1.0です。
※2016年5月にインストールを実行した際のバージョン
php7でPhalconをインストールするのにだいぶ苦戦しました。。。
Nginxインストール
WebサーバとしてNginxを使用します。
以下コマンドでインストール
$ yum -y install nginx
PHP7インストール
Nginxではphp-fpmを使用するので、php-fpmをインストールします。
php7をrpmを取得し、インストールします
php7のrpmを取得し、実行
$ yum -y install epel-release
//rmpを取得する場所をどこでもいいですが、今回はrootディレクトリにします。
$ cd ~
$ wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
$ rpm -ivh ./remi-release-7.rpm
php-fpmインストール(必要な他のphpパッケージもインストール)
$ yum install --enablerepo=remi,remi-php70 php-fpm php-devel php-mbstring php-pdo php-gd php-xml
以下でphp-fpmのバージョンを確認できます。
$ php-fpm -v
gitインストール
Phalconをインストールするのに、gitが必要なのでインストールします。
$ yum -y install git
Phalconインストール
以下の公式ブログを参考にインストールします。
https://blog.phalconphp.com/post/phalcon-2-1-0-RC1-released
必要なパッケージをインストール
$ yum install php-devel pcre-devel gcc make re2c
zephirインストール
php7に対応したPhalconをインストールするのに、zephirを使用します。
zephirはphpを拡張するためのphpエクステンションを生成する開発言語です。
gitからソースを持って来てインストールします。
今回は、gitから持ってくるソースを「/var/www/html/」下にします。
$ cd /var/www/html/
$ git clone https://github.com/phalcon/zephir
$ cd zephir/
$ ./install-nosudo
以下のコマンドを実行し、「zephir」と表示されれば、インストールOKです。
$ zephir
_____ __ _
/__ / ___ ____ / /_ (_)____
/ / / _ \/ __ \/ __ \/ / ___/
/ /__/ __/ /_/ / / / / / /
/____/\___/ .___/_/ /_/_/_/
/_/
Zephir version 0.9.3a-dev-0abce0f671
・・・・・
コンパイル
git cloneでソースを持ってきます。
今回は「/var/www/html/」下にソースを配置します。
masterブランチはまだphp7に対応していないようでエラーになるので、2.1.xブランチを使用します。
Warning出ますがインストール完了できます。
$ cd /var/www/html
$ git clone git://github.com/phalcon/cphalcon.git
$ cd cphalcon/
$ git checkout 2.1.x
$ zephir build
・・・・・・・
Copying new kernel files...
Preparing for PHP compilation...
Preparing configuration file...
Compiling...
Installing...
Extension installed!
Add extension=phalcon.so to your php.ini
Don't forget to restart your web server
拡張モジュール追加
phalconの拡張モジュールをphpに追加します。
「/etc/php.d/」以下に「extension=phalcon.so」を記述して、読み込む設定をします。
今回は「/etc/php.d/」以下にphalcon.iniというファイルを作成してます。
$ vi /etc/php.d/phalcon.ini
//以下を記述
extension=phalcon.so
上記でインストール完了です。
既にphp-fpmを起動済みでしたら、php-fpmの再起動が必要なので再起動してください。
/bin/systemctl restart php-fpm
Phalconインストールの確認
Phalconがインストールされているか確認します。
以下のマニュアルを参考に確認できます。
https://docs.phalconphp.com/ja/latest/reference/tutorial.html#id2
Nginx、php-fpmを起動していなければ起動してください。
$ /bin/systemctl start php-fpm
$ /bin/systemctl start nginx
get_loaded_extensions()を表示するか、phpinfo()を表示して、PhalconがあればOKです。
<?php print_r(get_loaded_extensions()); ?>
or
<?php echo phpinfo(); ?>
get_loaded_extensions()の場合は、以下のように「phalcon」という記載があればOKです。
Array
(
[0] => Core
[1] => libxml
[2] => filter
[3] => SPL
[4] => standard
[5] => phalcon
[6] => pdo_mysql
)
phpinfo()の場合は、以下のようなPhalconのセクションがあればOKです。
[peg-image src="https://lh3.googleusercontent.com/-3lyvg16zJUM/V0sZNgTydjI/AAAAAAAAANs/S1Hvp0njbyoH-3Wfnykl4OSkBnKJugVtgCHM/s144-o/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588%2B2016-05-30%2B1.30.13.png" href="https://picasaweb.google.com/107888545635181725503/Web#6290149024354956850" caption="phpinfo()のPhalconセクション" type="image" alt="phpinfo()のPhalconセクション" image_size="985x556" ]
※画面が見れない場合は、centOS7のfirewallの設定の可能性があります。firewallかiptablesの設定で、80又は443ポートが開放されていない可能性があるので確認してください。
ちなみに、firewallで80番ポートを開放する場合は以下のコマンドで可能です。
$ firewall-cmd --add-service=http --zone=public --permanent
以上で、インストールまで完了になります。
お疲れさまでした。
実際に動かしてみるのは、以下のチュートリアルを参考に!
Phalconチュートリアル実装