目的
PHPのフレームワークの中でも高速と言われている「Phalcon」のセットアップを行う
ベース環境
OS : Amazon Linux 2
nginx : 1.12
php : 7.2
※ 以下ページで作成した環境をベースとする
https://qiita.com/knymssh/items/15bb876da0688db5feb1
※ EC2インスタンスタイプは「t2.micro」だとソースコードからのコンパイル時にメモリ不足となるため、「t2.medium」で実行
Phalcon(3.4)のインストール
ソースコードからコンパイル
※ 手順は公式サイトを参考
https://docs.phalconphp.com/ja/3.4/installation#installation-sources
コンパイルに必要なパッケージをインストール
sudo yum install -y gcc make php-devel git
ソースコード取得、コンパイル実行
git clone https://github.com/phalcon/cphalcon
cd cphalcon/build
sudo ./install
/etc/php.d/phalcon.ini (新規ファイル)
モジュール読み込みの設定を追加
echo 'extension=phalcon.so' | sudo tee /etc/php.d/phalcon.ini
/etc/nginx/conf.d/phalcon.conf (新規ファイル)
※ 公式サイトの記載を参考に設定
https://docs.phalconphp.com/ja/3.4/webserver-setup#nginx
サービス再起動
$ sudo systemctl restart php-fpm
$ sudo systemctl restart nginx
確認
phalconモジュールが正常に組み込まれていることを確認
$ php -r 'print_r(get_loaded_extensions());' | grep phalcon
[34] => phalcon
また、ブラウザからphpinfoにアクセスして、「phalcon」のセクションが追加されていることを確認
補足
phalconはremiリポジトリからもインストールできますが、
今回のベース環境ではphalconが有効にならなかったため、この手順は使用していません。
# 外部リポジトリを追加(epel,remi)
$ sudo amazon-linux-extras install -y epel
$ sudo yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
# リポジトリ確認
$ ll /etc/yum.repos.d/ | grep remi-php72
-rw-r--r-- 1 root root 1314 6月 19 17:28 remi-php72.repo
# Phalconのパッケージ検索
$ yum search --enablerepo=remi-php72 phalcon | grep php72
php72-php-phalcon3.x86_64 : Phalcon Framework
# Phalconのバッケージをインストール
$ sudo yum install -y --enablerepo=remi-php72 php72-php-phalcon3
# インストール確認
$ yum list installed | grep phalcon
php72-php-phalcon3.x86_64 3.4.1-2.el7.remi @remi-safe
参考サイト
https://docs.phalconphp.com/ja/3.4/installation
https://docs.phalconphp.com/ja/3.4/webserver-setup
https://blog.apibank.jp/make_php_framework_phalcon/