かばだんなさん かく語りぬ Header Image

Zephir をWindows(64bit)に導入する。(環境構築編)

さて、Zephir の評価をしています。

Zephir というのはPHPのextentionを作成するための言語とツールのセットです。言語としての見た目は PHP に近いため PHP のエンジニアにも取っつきやすく、ツールとしてはこのZephirで書いたプログラムをC言語のプログラムに変換(プリコンパイル)してくれるツールがセットになっています。
つまりコンセプトとしては「PHPの拡張機能を C言語で作るのは敷居が高いので、PHPに近い言語で作れるようにしよう」というものです。

ところがこの Zephir、まだ情報が少なくて、特に Windows環境でのコンパイルについては、コチラに書かれているとはいえ、説明がちょっと不親切というか言葉足らずなため、HelloWorldを作ろうとしただけで四苦八苦です。
ということで、今日は私のやり方で Zephir の環境構築からコンパイルまで。

環境

私の環境は Windows7 (64bit)環境です。

必要な物

PHP

今回はPHP5.6 NTS(Non Thread Safe) 64bit版を使っています。作成する拡張機能はこのバージョンに最適化されますので、実際に拡張機能が稼働する環境のバージョンに合わせておいた方が良いでしょう。

もしあなたの環境にPHPがまだ入っていないなら、Windows版PHPダウンロードサイトからPHPをダウンロードしましょう。今回の例なら「php-5.6.xx-nts-Win32-VC11-x64.zip」です。これを適当な場所(例えば「C:\php-5.6-nts」)に解凍して、PATHを張りましょう。

setx path "%path%;C:\php-5.6-nts\"

とすると、PATHに追加されます。(SETXなので一度このコマンドを叩けば永続的に設定されます。)

PHP Developer Pack

Windows版PHPダウンロードサイトから、PHP Developer Pack をダウンロードしましょう。

バージョンやアーキテクチャーは導入されているPHPと一致させる必要があります。今回の環境でしたら、「php-devel-pack-5.6.xx-nts-Win32-VC11-x64.zip」になります。

もしご自身のPHPの構成が分からなければ、コマンドプロンプトから「php -i」と入力してPHPの情報を表示しましょう。下記項目の内容を見れば、どのファイルをダウンロードすれば良いか分かります。

PHP Version => 5.6.18          ← バージョン5.6系
Compiler => MSVC11 (Visual C++ 2012)  ← VC11
Architecture => x64          ← x64(64bit)か x32(32bit)
Thread Safety => disabled      ← NTS(Non Thread Safe)

ダウンロードしたら適当な場所(例えば「C:\php-5.6.18-devel-VC11-x64」)に解凍して、コマンドプロンプトで

setx php_devpack "C:\php-5.6.18-devel-VC11-x64"

と入力して環境変数を設定しましょう。コマンドプロンプトから

dir %php_devpack%\phpize.bat

と入力して、ファイルが存在すればOKです。

PHP SDK

コチラからダウンロードします。
現時点で最新は「php-sdk-binary-tools-20110915.zip」です。
(日付を見て私も怪しんだのですが、ホントにこれが最新でした。)

ダウンロードしたら適当な場所(例えば「C:\php-sdk-binary-tools」)に解凍して、コマンドプロンプトで

setx php_sdk "C:\php-sdk-binary-tools"

と入力して環境変数を設定しましょう。
(パスを張るのが目的ではありませんので、C:\php-sdk-binary-tools\bin はNGです。)

正しく導入できていれば、コマンドプロンプトから

dir %php_sdk%\bin\re2c.exe

と入力するとファイルが存在しているはずです。

Zephir 本体

Zephirで書いたプログラムを、C言語のプログラムに変換(プリコンパイル)するツールです。ZephirはGitHubで版管理されていますので、最新版をCloneすることも、リリースバージョンをダウンロードすることもできますが、個人的には今の開発スピードを見ると、Cloneして随時最新版を更新していった方が良い気がします。
フォルダを適当な場所(例えば「C:\zephir」)に配置したら、コマンドプロンプトから

setx path "%path%;C:\zephir\bin"

と入力します。(こちらはbinにパスを張ります。)

正しく導入できれば、コマンドプロンプトから

zephir  version

と入力するとバージョン番号が表示されます。

Visual Studio

いよいよC言語のソースをコンパイルするためのコンパイラです。必要なVisualStudio(以降「VS」)のバージョンは、PHPのバージョンに依存します。具体的にはPHPをコンパイルしたのと同じバージョンのコンパイラです。
PHPのバージョンごとに、必要なVSは下記の通りです。

てっとり早くVSのバージョンを知りたい方は、先ほどのphpinfoで

Compiler => MSVC11 (Visual C++ 2012)

に表示された VisualC++を導入します。

※ VSのバージョンに関しては大は小を兼ねませんので、「新しいVSが入っているから大丈夫」ということはありません。正しいバージョンをインストールしましょう。私も既にVS2015がインストールされていたのに、このためにVS2012を追加インストールしました。後から古いバージョンをインストールして大丈夫かちょっと不安でしたが、今の所問題なく動いています。

以上で導入は終わりです。続いてはHelloWorldを作ってビルドするまでを。


コメントを残す