Phalconインストール(CentOS7.2 + PHP7.0)

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です。
phpinfo()のPhalconセクション

※画面が見れない場合は、centOS7のfirewallの設定の可能性があります。firewallかiptablesの設定で、80又は443ポートが開放されていない可能性があるので確認してください。

ちなみに、firewallで80番ポートを開放する場合は以下のコマンドで可能です。

$ firewall-cmd --add-service=http --zone=public --permanent

以上で、インストールまで完了になります。
お疲れさまでした。

実際に動かしてみるのは、以下のチュートリアルを参考に!
Phalconチュートリアル実装

Phalconチュートリアル実装(PHP Framework)

Phalconのマニュアルにあるチュートリアルを実装し、画面に「Hello!」が表示されるところまで行います。
Phalconのインストールは以下の内容で済んでいる前提です。

Phalconインストール(CentOS7.2 + PHP5.4)
または
Phalconインストール(CentOS7.2 + PHP7.0)

Phalconのサンプルソース取得

以下のマニュアルを参考にチュートリアルのソースを取得し、「Hello!」を表示します。
https://docs.phalconphp.com/ja/latest/reference/tutorial.html#id3

今回は、「/var/www/html/」配下にサンプルソースを配置します。
git cloneすることで、html下にtutorialフォルダが作成されます。

$ cd /var/www/html/
$ git clone https://github.com/phalcon/tutorial.git

Nginxの設定

以下のマニュアルを参考にnginx.confまたは、conf.d配下のconfファイルにnginxの設定を行います。
https://docs.phalconphp.com/ja/latest/reference/nginx.html

今回は、マニュアルの「$_SERVER[‘REQUEST_URI’] をURIsとする場合」の設定を使用します。
プロジェクトフォルダは「/var/www/html/tutorial/」です。
rootに設定するディレクトリは「/var/www/html/tutorial/public」ですので、ご注意を!

server {
    listen      80;
    server_name localhost;
    root        /var/www/html/tutorial/public;
    index       index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php;
    }

    location ~ \.php$ {
        try_files     $uri =404;

        fastcgi_pass  127.0.0.1:9000;
        fastcgi_index /index.php;

        include fastcgi_params;
        fastcgi_split_path_info       ^(.+\.php)(/.+)$;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location ~ /\.ht {
        deny all;
    }
}

設定が完了したら、Nginxを再起動します。

$ /bin/systemctl restart nginx

以上で完了です。
ブラウザでアクセスすると、「Hello!」が表示されると思います。
お疲れさまでした。

Phalconインストール(CentOS7.2 + PHP5.4)

Phalconについて

Phalconはphpのフレームワークです。
Phalconは最適化された高速なフレームワークで、C拡張として実装されています。
C拡張として実装されているので、かなり高速なようです。

Phalconインストール

前提

以下の環境でPhalconをインストールします。

  • ConoHa(クラウドサービス)
  • CentOS7.2
  • PHP5.4(php-fpm)
  • Nginx1.6

以下インストールのコマンドはrootユーザで実行するのを前提にしています。
必要に応じてsudoでコマンド実行してください。

Phalconのバージョンは、2.0.13です。
※2016年5月にインストールを実行した際のバージョン

Nginxインストール

WebサーバとしてNginxを使用します。
以下コマンドでインストール

$ yum -y install nginx

PHPインストール

Nginxではphp-fpmを使用するので、php-fpmをインストールします。
以下コマンドでインストール

$ yum -y install php-fpm

gitインストール

Phalconをインストールするのに、gitが必要なのでインストールします。

$ yum -y install git

Phalconインストール

以下のマニュアル通りでインストールできます。
https://docs.phalconphp.com/ja/latest/reference/install.html

ここにもインストールのコマンドを載せておきます。

必要なパッケージをインストール

$ yum install php-devel pcre-devel gcc make

コンパイル

git cloneでソースを持ってきます。
今回は「/var/www/html/」下にソースを配置します。

$ cd /var/www/html
$ git clone --depth=1 git://github.com/phalcon/cphalcon.git
$ cd cphalcon/build
$ ./install
・・・・・・・
Thanks for compiling Phalcon!
Build succeed: Please restart your web server to complete the installation

拡張モジュール追加

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のモジュールが読み込まれないという問題
以下コマンドでエラーの内容が出てきました。

$ php-fpm -v
NOTICE: PHP message: PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/phalcon.so' - /usr/lib64/php/modules/phalcon.so: undefined symbol: php_pdo_get_dbh_ce in Unknown on line 0
PHP 5.4.16 (fpm-fcgi) (built: May 12 2016 13:47:35)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

php-pdoが足りないようなので、php-pdoをインストールして解決できました。

$ yum -y install php-pdo

これで、phalconのモジュールが読み込まれインストール完了です。

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です。
phpinfo()のPhalconセクション

※画面が見れない場合は、centOS7のfirewallの設定の可能性があります。firewallかiptablesの設定で、80又は443ポートが開放されていない可能性があるので確認してください。

ちなみに、firewallで80番ポートを開放する場合は以下のコマンドで可能です。

$ firewall-cmd --add-service=http --zone=public --permanent

以上で、インストールまで完了になります。
お疲れさまでした。

実際に動かしてみるのは、以下のチュートリアルを参考に!
Phalconチュートリアル実装

ConoHaの500エラーページが・・・

ConoHaは、GMOが提供するクラウドサービスです。
ConoHaのコントロールパネルで500のInternalServiceErrorが発生すると、以下の画面が表示されます。

ConoHaの500エラーページ

萌えーなキャラが表示されるんです!
こうゆう遊び心いいですねー♪

妖怪ウォッチぷにぷにのツチノコ出現場所

妖怪ウォッチぷにぷにのツチノコについて

通常ステージでまれに出現するキャラで、倒すと経験値が多くもらえます。
なかなか出現せず、仲間にするのも大変です。
必殺技は、「Yマネーアップ」なのでYマネー稼ぎに良いかもしれません。

出現場所

  • ステージ118

※随時更新