前回、PHP 6のソースコードをCVSリポジトリから取得しましたが、さすがに2週間もたてば、PHP 6の開発もだいぶ進行していることでしょう。まず、手元にあるPHP 6のソースコードを、最新の状態に更新しましょう。

$ cvs -d :pserver:cvsread@cvs.php.net:/repository login
$ cvs -d :pserver:cvsread@cvs.php.net:/repository update php6

それでは、早速PHP 6をビルドしてみましょう。

前提条件として、Apache 2、MySQL、PostgreSQLが、それぞれヘッダファイルやクライアントライブラリ込みでインストール済みであるものとします。

また、ユニコード文字処理ライブラリのICUや、XMLライブラリのlibxml2も必要です。具体的には、CentOS等のRPM系のLinuxでしたら、httpd、httpd-devel、mysql、mysql-server、mysql-devel、postgresql、postgresql-server、postgresql-devel、icu、libicu、libicu-devel、libxml2、libxml2-develといったパッケージ群がインストールされていればOKでしょう。

環境が整ったら、「buildconf」を実行してビルドに必要な基本的な設定ファイルを生成します。

$ cd php6
$ ./buildconf
using default Zend directory
buildconf: checking installation...
buildconf: autoconf version 2.59 (ok)
buildconf: Your version of autoconf likely contains buggy cache code.
           Running cvsclean for you.
           To avoid this, install autoconf-2.13.
rebuilding aclocal.m4
rebuilding configure
rebuilding acconfig.h
rebuilding main/php_config.h.in
:
:

なにやらたくさんWARNINGが表示されますが、とりあえず見なかったことにして先に進みましょう。

次は「configure」で、ビルドのオプションを設定します。

ここでは、主にPHPに組み込む「エクステンション」、つまり今後動かすアプリケーションに必要な「拡張機能」を指定します。

例えば、PHPからMySQLデータベースに接続する場合は「--with-mysqli」や「--with-pdo-mysql」といったオプションを、PostgreSQLを使う場合は「--with-pgsql」や「--with-pdo-pgsql」を指定します。

蛇足ですが、「--with-pdo~」は、PHP 5から正式に追加されたデータベース抽象化レイヤ「PDO(PHP Data Object)」を利用する場合に必要なオプションです。PDOについても、おいおい詳しく説明しましょう。

閑話休題。「configure」で指定可能なオプションの一覧は、

$ ./configure --help | less

で参照できます。いきなりたくさんの機能を詰め込もうとするとややこしくなりますので、最初は必要最低限の機能を付加するようにしましょう。

今回は、以下のようなオプションで、configureを実行することにしました。

$ ./configure 
> --with-apxs2=/usr/sbin/apxs       ……(1)
> --with-mysqli                     ……(2)
> --with-pgsql                      ……(3)
> --enable-zend-multibyte           ……(4)
> --enable-mbstring=japanese        ……(5)

(1) --with-apxs2

apxsは、「APache eXtenSion」の略で、WebサーバApacheの拡張機能を司るプログラムです。このオプションを指定することで、PHPをApacheのDSO(Dynamic Shared Object)モジュールとしてWebサーバに組み込むことができます。

(2) --with-mysqli

MySQLデータベースに接続するための拡張を有効にします。

(3) --with-pgsql

PostgreSQLデータベースに接続するための拡張を有効にします。

(4) --enable-zend-multibyte

個人的にはさほど重要ではないのですが、これを有効にしておくことで、PHPスクリプトをShift_JISコードでも記述できるようになります。

(5) --enable-mbstring=japanese

日本語のマルチバイト文字を扱う際に便利な拡張機能です。

configureが無事正常に終了すると、「Thank you for using PHP.」というメッセージが表示されます。エラーが表示される場合は、エラーの原因をよく読み取って、ひとつずつ潰していきましょう。

ここまでくれば、あとはソースコードをコンパイルして実行ファイルを生成し、適切な場所にインストールするだけですね。「make」、「make test」、「make install」を順番に実行しましょう。なお「make install」は一般ユーザに書き込みが許可されないディレクトリにもファイルをコピーしますので、「su」でroot権限を取得してから実行する必要があります。

$ make
$ make test
$ su
# make install

最後に、設定ファイル「php.ini」を/usr/local/lib/php.iniとして作成します。PHP 6のソースコードには、php.iniのひな形が2つ「php.ini-dist」「php.ini-recommended」として用意されていますが、今回はテスト的に導入するだけなので、いろいろな制限が緩く設定されているphp.ini-distを利用します。

# cp php.ini-dist /usr/local/lib/php.ini

これでようやく、PHP 6を動かしてみる準備がほぼ整いました。

次回は、基本的な設定だけ行ってPHPを起動し、徐々に最新の機能を試していくことにしましょう。