必要条件

Phalconを利用するにはPHPが実行できる必要があります。 疎結合に設計されている為、開発者はPhalconをインストールし、追加の拡張モジュールなしに利用することができます。 特定のコンポーネントは他の拡張モジュールに依存します。 たとえば、データベース接続を使用するには、php_pdo拡張モジュールが必要です。 RDBMSがMySQL/MariaDBまたはAuroraデータベースの場合は、php_mysqlnd拡張モジュールも必要です。 同様に、PhalconでPostgreSQLデータベースを使用するには、php_pgsql拡張モジュールが必要です。

ハードウェア

Phalconは、高いパフォーマンスを提供しながら、可能な限り少ないリソースを使用するように設計されています。 さまざまなローエンド環境 (0.25GB RAM、0.5 CPUなど) でPhalconをテストしましたが、選択するハードウェアはアプリケーションのニーズによって異なります。

当社のウェブサイトとブログ(および他のサイト)は、512MBのRAMと1つのvCPUを備えたAmazon VM上でホストされています。

ソフトウェア

  • PHP >= 5.5

Phalcon を実行するためには、最低限以下の拡張機能が必要です。

  • curl
  • gettext
  • gd2 (Phalcon\Image\Adapter\Gdクラスを使う場合)
  • libpcre3-dev (Debian/Ubuntu), pcre-devel (CentOS), pcre (macOS)
  • json
  • mbstring
  • pdo_*
  • fileinfo
  • openssl

アプリケーションのニーズに応じた追加の依存

インストール

PhalconはPHP拡張モジュールとしてコンパイルされているため、インストールは他の従来のPHPフレームワークとは多少異なります。 Phalconは、Webサーバーのモジュールとしてインストールしてロードする必要があります。

Linux

Linux で Phalcon をインストールするためには、使用しているディストリビューションにリポジトリを追加する必要があります。

debベースのディストリビューション (Debian、Ubuntu など)

リポジトリのインストール

ディストリビューションにリポジトリを追加します:

安定版
curl -s https://packagecloud.io/install/repositories/phalcon/stable/script.deb.sh | sudo bash

または

Nightly リリース
curl -s https://packagecloud.io/install/repositories/phalcon/nightly/script.deb.sh | sudo bash

Phalcon のインストール

次のコマンドを実行して、Phalcon をインストールします。

PHP 5.x
sudo apt-get update
sudo apt-get install php5-phalcon

PHP 7
sudo apt-get update
sudo apt-get install php7.0-phalcon

追加のPPA

Ondřej Surý

packagecloud.ioでリポジトリを使用したくない場合は、OndřejSurýが提供するリポジトリをいつでも使用できます。

リポジトリのインストール:

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update

Phalconのインストール:

sudo apt-get install php-phalcon

RPM ベースのディストリビューション (CentOS、Fedora 等)

リポジトリのインストール

ディストリビューションにリポジトリを追加します。

安定版
curl -s https://packagecloud.io/install/repositories/phalcon/stable/script.deb.sh | sudo bash

または

Nightly リリース
curl -s https://packagecloud.io/install/repositories/phalcon/nightly/script.rpm.sh | sudo bash

Phalcon のインストール

次のコマンドを実行して、Phalcon をインストールします。

PHP 5.x
sudo yum update
sudo yum install php56u-phalcon

PHP 7
sudo yum update
sudo yum install php70u-phalcon

追加のRPM

Remi

Remi Colletは、RPMベースのインストールのための優れたリポジトリをメンテナンスしています。 こちらのディストリビューションを有効にする方法についてはこちらをご覧ください。

それ以降、Phalconをインストールするのは簡単です:

yum install php56-php-phalcon3

追加のバージョンには、アーキテクチャー固有のもの (x86/x64) とPHP固有のもの (5.5,5.6,7.x) があります

FreeBSD

FreeBSDではportsが利用できます。 インストールするには、次のコマンドを発行する必要があります:

pkg_add

pkg_add -r phalcon

ソースコード

export CFLAGS="-O2 --fvisibility=hidden"

cd /usr/ports/www/phalcon

make install clean

Gentoo

Phalconをインストールするためのオーバーレイは、https://github.com/smoke/phalcon-gentoo-overlayにあります。

macOS

macOS では、brewmacports またはソースコードから拡張機能をコンパイルしたりインストールしたりすることが可能です。

必要条件

  • PHP 5.5.x/5.6.x/7.0.x/7.1.x
  • XCode

Brew

homebrew/phpタップが廃止され、削除されているので、Phalconのカスタムリポジトリが作成されました。

PHP 5.5はhomebrew/coreに移植されていないため、存在しなくなりました。 一方、PHP 7.2が追加されました。

brew tap tigerstrikemedia/homebrew-phalconphp
brew install php56-phalcon
brew install php70-phalcon
brew install php71-phalcon
brew install php72-phalcon

MacPorts

sudo port install php55-phalcon
sudo port install php56-phalcon

php.ini ファイルを編集し、末尾に下記を追記します:

extension=php_phalcon.so

Webサーバを再起動します。

Windows

Windows で Phalcon を使用するためには、phalcon.dll をインストールする必要があります。 プラットフォームに応じて、複数の DLL ファイルをコンパイルしています。 Dll は、ダウンロード のページで見つけることができます。

アーキテクチャと同様に、PHP がインストールされているかを識別します。 間違った DLL をダウンロードした場合、Phalcon は動作しません。 この情報は phpinfo() に含まれています。 次の例では、DLLのNTS バージョンを必要としています:

phpinfo

利用可能な DLL は次のとおりです。

アーキテクチャー バージョン タイプ
x64 7.x スレッドセーフ
x64 7.x 非スレッドセーフ (NTS)
x86 7.x スレッドセーフ
x86 7.x 非スレッドセーフ (NTS)
x64 5.6 スレッドセーフ
x64 5.6 非スレッドセーフ (NTS)
x86 5.6 スレッドセーフ
x86 5.6 非スレッドセーフ (NTS)
x64 5.5 スレッドセーフ
x64 5.5 非スレッドセーフ (NTS)
x86 5.5 スレッドセーフ
x86 5.5 非スレッドセーフ (NTS)

php.ini ファイルを編集し、末尾に下記を追記します:

extension=php_phalcon.dll

Webサーバを再起動します。

ソースコードからコンパイル

ソースコードからのコンパイルは、ほとんどの環境 (Linux/macOS) で同様に行えます。

必要条件

  • PHP 5.5.x/5.6.x/7.0.x/7.1.x
  • GCCコンパイラ (Linux/Solaris/FreeBSD) または Xcode (macOS)
  • re2c >= 0.13
  • libpcre-dev

これらのパッケージは、関連するパッケージマネージャーを使用してシステムにインストールできます。 一般的なLinuxディストリビューションの手順は次のとおりです:

Ubuntu

sudo apt-get install php5-dev libpcre3-dev gcc make

Suse

sudo zypper install php5-devel gcc make

CentOS/Fedora/RHEL

sudo yum install php-devel pcre-devel gcc make

Phalconのコンパイル

まず、GitHubのリポジトリからPhalconのソースコードをcloneする必要があります。

git clone https://github.com/phalcon/cphalcon

その後、拡張モジュールをビルドします。

cd cphalcon/build
sudo ./install

次に、PHP ini ファイルにextension=phalcon.so と追記し、拡張モジュールが読み込まれるように、Webサーバを再起動する必要があります。

# Suse の場合: /etc/php5/conf.d/ に下記内容が書いてある phalcon.ini を追加します:
extension=phalcon.so

# CentOS/RedHat/Fedora の場合: /etc/php.d/ に下記内容が書いてある phalcon.ini を追加します:
extension=phalcon.so

# Ubuntu/Debian、Apache2 で構成している場合: /etc/php5/apache2/conf.d/ に、下記内容の 30-phalcon.ini を追加します:
extension=phalcon.so

# Ubuntu/Debian、php5-fpm で構成している場合: /etc/php5/fpm/conf.d/ に、下記内容の 30-phalcon.ini を追加します:
extension=phalcon.so

# Ubuntu/Debian、php5-cli で構成している場合: /etc/php5/cli/conf.d/ に、下記内容の 30-phalcon.ini を追加します:
extension=phalcon.so

高度なコンパイル

Phalcon は自動的にシステムのアーキテクチャを判定しますが、指定したアーキテクチャ向けにコンパイルすることを強制することができます:

cd cphalcon/build

# 次のどれか一つ:
sudo ./install --arch 32bits
sudo ./install --arch 64bits
sudo ./install --arch safe

自動判別インストーラが失敗する場合は手動でビルドしてみます:

git clone https://github.com/phalcon/cphalcon
# cd cphalcon/build/php5/32bits
cd cphalcon/build/php5/64bits

# NOTE: for PHP 7 you have to use
# cd cphalcon/build/php7/32bits
# or
# cd cphalcon/build/php7/64bits

make clean
phpize --clean

export CFLAGS="-O2 --fvisibility=hidden"
./configure --enable-phalcon

make
make install

特定のPHPバージョンを実行している場合:

git clone https://github.com/phalcon/cphalcon
# cd cphalcon/build/php5/32bits
cd cphalcon/build/php5/64bits

# 注: PHP7の場合
# cd cphalcon/build/php7/32bits
# or
# cd cphalcon/build/php7/64bits

make clean
phpize --clean

export CFLAGS="-O2 --fvisibility=hidden"
./configure --enable-phalcon

make
make install

次に、PHP ini ファイルにextension=phalcon.so と追記し、拡張モジュールが読み込まれるように、Webサーバを再起動する必要があります。

Webサーバのルートに次のような小さなスクリプトを作成します:

<?php

phpinfo();

そしてウェブブラウザで読み込みます。 Phalconのセクションがあるはずです。 存在しない場合は、拡張モジュールが正しくコンパイルされていること、php.iniに必要な変更を加えたこと、そしてWebサーバーが再起動されていることを確認してください。

コマンドラインからインストール内容を確認することもできます:

php -r 'print_r(get_loaded_extensions());'

これは次のような内容を出力します:

Array
(
    [0] => Core
    [1] => libxml
    [2] => filter
    [3] => SPL
    [4] => standard
    [5] => phalcon
    [6] => pdo_mysql
)

CLIを使用してモジュールをインストールすることもできます:

php -m