Appearance
Install required dependencies
bash
sudo apt-get install php7.2-dev
sudo apt-get install build-essential curl git python libglib2.0-devInstall depot_tools first (needed for source checkout)
bash
cd /tmp
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
export PATH=`pwd`/depot_tools:"$PATH"Download v8
bash
fetch v8
cd v8
# php7.4
git checkout 7.4.288.21
# php8.1
git checkout 10.0.139.17
gclient syncSetup GN
bash
tools/dev/v8gen.py -vv x64.release -- is_component_build=true use_custom_libcxx=falseBuild
bash
ninja -C out.gn/x64.release/Install to /opt/v8/
bash
sudo mkdir -p /opt/v8/{lib,include}
sudo cp out.gn/x64.release/lib*.so out.gn/x64.release/*_blob.bin \
out.gn/x64.release/icudtl.dat /opt/v8/lib/
sudo cp -R include/* /opt/v8/include/
sudo apt-get install patchelf
for A in /opt/v8/lib/*.so; do sudo patchelf --set-rpath '$ORIGIN' $A; done
cd /tmp
git clone https://github.com/phpv8/v8js.git
cd v8jsphp7.4
bash
git checkout php7 && phpize7.4
./configure --with-php-config=/usr/bin/php-config7.4 --with-v8js=/opt/v8php8.1
bash
git checkout php8 && phpize8.1
./configure --with-php-config=/usr/bin/php-config8.1 --with-v8js=/opt/v8build
bash
make
make test
sudo make installPhp.ini
ini
extension=v8js.so