LaravelのHomesteadにv8jsが使えるようにする。
Laravelは公式でHomesteadと呼ばれるVagrantが準備されています。
基本的なものはインストールされているのですが、それ以外のものをインストールしようとした時にハマった話です。。
Homesteadのインストール方法は Laravel Homestead - Laravel - The PHP Framework For Web Artisans を参考にして下さい。
ある程度準備が完了すると、~/.homesteadが出来ると思います。
今回は ~/.homestead/after.sh にv8jsインストール用のシェルスクリプトを記載します。
以下をコピペ
#!/bin/sh sudo apt-get -y install g++ cd /tmp if [ ! -e depot_tools ]; then git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git fi export PATH=`pwd`/depot_tools:"$PATH" if [ ! -e v8 ]; then fetch v8 cd /tmp/v8 git checkout 3.32.6 gclient sync make native library=shared snapshot=off -j8 sudo mkdir -p /usr/lib /usr/include sudo cp out/native/lib.target/lib*.so /usr/lib/ sudo cp -R include/* /usr/include sudo ar -M <<SCRIPT create /usr/lib/libv8_libplatform.a addlib out/native/obj.target/tools/gyp/libv8_libplatform.a save end SCRIPT fi if ! pecl list | grep -q v8js; then sudo pecl install v8js-1.0.0 << END_OF_INPUT END_OF_INPUT fi if [ ! -e /etc/php/mods-available/v8js.ini ]; then echo "extension=v8js.so" > /etc/php/mods-available/v8js.ini sudo ln -s /etc/php/mods-available/v8js.ini /etc/php/7.0/cli/conf.d/20-v8js.ini sudo ln -s /etc/php/mods-available/v8js.ini /etc/php/7.0/fpm/conf.d/20-v8js.ini fi sudo service php7.0-fpm restart sudo service nginx restart
詳細な説明は省きます。(ちょっとifの分岐がまだ完全じゃないです。)