
Ubuntu(16.04LTS) にPECL拡張モジュールv8jsをインストールする。
githubのv8jsの説明ページを読むと、
最低要件として、libv8(V8 Javascript Engine library「 V8 4.6.76以上」)とPHP 7.0.0以上が必要。
そんで、Ubuntuに前もってこれらをインストールする必要(とても重要)があるらしい。
また、aptでゲットできるlibv8は古いらしく説明ページを読むと、
For Ubuntu @pinepain has PPAs for V8 5.1 and 5.2. You might want to install these (and compile V8Js based on them).
要は、@pinepainさんが作ったPPAs(Personal Package Archive)のlibv8バージョンをインストールして、それでV8Jsをコンパイルしろと書いてある。
ということで、まず、必要になりそうな基本パッケージを入れておく。
1 |
#>sudo apt install php7.0 php7.0-dev php-pear build-essential re2c |
なお、以下のパッケージは、Webで調べた際に必要そうなので、念のためにインストールすることにした。
(色々やり方があって迷ったけど、おそらく必要ということでそうした。)
build-essential : C/C++コンパイラ、Make等の標準開発ツール一式
re2c : 処理が高速な字句解析ツール
次に、@pinepainさんが作ったlibv8をインストールできるように、pinepainさんのlibv8-5.2にしたがって、aptのリポジトリを追加して、aptでインストールする。
1 2 |
#>sudo add-apt-repository ppa:pinepain/libv8-5.2 #>sudo apt-get update |
1 |
#>sudo apt install libv8-5.2 |
libv8-5.2のインストールが無事済んだら、peclで拡張モジュールv8jsをインストールする。
1 2 3 4 5 6 7 |
#>sudo pecl install v8js //途中で、以下のようにlibv8のパスを聞かれるので、「/usr/lib/」を入力する。 Please provide the installation prefix of libv8 [autodetect] : /usr/lib/ //すると、v8jsのビルドやインストールが始まり、いろいろなメッセージが出て、最後に以下のメッセージで終了。 install ok: channel://pecl.php.net/v8js-1.3.5 configuration option "php_ini" is not set to php.ini location You should add "extension=v8js.so" to php.ini |
そんで、php.iniに「extension=v8js.so」を追記して拡張モジュールが実行できるようにする。
php.iniの場所は、コマンドラインとWebサーバー(cgi、php-fpm)などでそれぞれ違う。
コマンドラインなら以下で、
1 |
#>php -i | grep php.ini |
Webサーバーなら、以下のようなファイルを作って確認すればいい。
(Nginxの場合、そのインストールは、このページを参照。)
1 2 3 |
<?php //info.php phpinfo(); |
なお、Webサーバーの場合は、php7.0-fpmやwebサーバーの再起動後に反映される。
最後に、
http://php.net/manual/en/v8js.examples.php
のサンプルスクリプトが動けば、OKである。