- Скачаем архив со скомпилированной версией расширения v8js.so
Получаем рут права
> sudo su
- Создаем временную папку для скачивания и заходим в нее
# mkdir -p /opt/google # cd /opt/google
- Сохраняем архив с расширением для рендеринга на серверной стороне
# wget https://blog.bayrell.org/media/files/archives/v8-ubuntu-18.04-x64-6.4.388.18-2.1.0.tar.gz
- Распаковываем архив тут же
# tar xvf v8-ubuntu-18.04-x64-6.4.388.18-2.1.0.tar.gz
- Далее необходимо скопировать расширение в папку расширений для вашего PHP
Получить папку с расширениями можно следующей командой
# php -i | grep extension_dir
Ниже можно увидеть результат команды
тогда копируем расширение в эту папку, в нашем случае это:
# cp /opt/google/v8/6.4/v8js.so /usr/lib64/php/modules
- А теперь нужно добавить это расширение в ini конфиг php
получаем папку, в которой хранятся дополнительные ini конфиги
# php -i | grep "additional .ini files"
Вывод будет примерно как на скриншоте ниже
Заходим в папку и создаем ini файл для v8js расширения
В нашем случае это:
# cd /etc/php.d # nano 50-v8js.ini
И вставляем в файл следюущий код:
extension=v8js.so
Сохраняем файл (CTRL+O, CTRL+X)
- Теперь можем проверить работоспособность установленного расширения
Переходим в какую то временную папку на сервер и создаем тестовый php файл
# nano test_v8js.php
В который вставляем следующий код:
<?php $v8js = new V8Js(); $JS = <<< EOT var s = 'Hello world'; s; EOT; $r = $v8js->executeString($JS); var_dump($r);
В случае успеха увидим вывод в консоли:
string(11) "Hello world"
Если, в качестве менеджера процессов вы используете, например, php-fpm — необходимо его перезагрузить
# systemctl restart php-fpm
Если у вас PHP 7.4 или инструкции выше не работают, можно обратиться к процедуре компиляции V8Js из официальных репозиториев для Ubuntu 20 или Ubuntu 22