phpv8 / v8js

V8 Javascript Engine for PHP — This PHP extension embeds the Google V8 Javascript Engine
http://pecl.php.net/package/v8js
MIT License
1.84k stars 200 forks source link

CentOS 7 & PHP 5.6.18 Unable to load dynamic library '/usr/lib64/php/modules/v8js.so #236

Closed keepitsimple closed 8 years ago

keepitsimple commented 8 years ago

Hello, I can't use v8js; It doesn't work

Any help will be highly appreciated

PHP v8js version 0.6.3 PHP version 5.6.18 Cent OS 7 (64 bit)

Error: Unable to load dynamic library '/usr/lib64/php/modules/v8js.so' - /usr/lib64/php/modules/v8js.so: undefined symbol: _ZN2v814ObjectTemplate11SetAccessorENS_5LocalINS_6StringEEEPFvS3_RKNS_20PropertyCallbackInfoINS_5ValueEEEEPFvS3_NS1_IS5_EERKNS4_IvEEESB_NS_13AccessControlENS_17PropertyAttributeENS1_INS_17AccessorSignatureEEE in Unknown on line 0 PHP Fatal error: Class 'V8Js' not found in /vagrant/frontend/www/test.php on line 5 PHP Stack trace: PHP 1. {main}() /vagrant/frontend/www/test.php:0

teameh commented 8 years ago

You followed this guide https://github.com/phpv8/v8js/blob/master/README.Linux.md and not the php7 branch (https://github.com/phpv8/v8js/blob/php7/README.Linux.md) and building gave you no other errors?

teameh commented 8 years ago

Took some time to compile everything but I'm having the same problem. It seems as if the extension was not moved to the right directory after compilation.. If I add this to my php.ini everything works fine..

extension=/tmp/v8js/.libs/v8js.so

but I suppose that that is not the way to do it..

Maybe anyone from v8js could help us out ?

teameh commented 8 years ago

Oh and here's my installation log (only the v8js part, first part got chopped off by iTerm.. https://gist.github.com/tiemevanveen/7afece87cb39f2f012ed84a6db43b952

This line indeed indicates the the extension installed in the tmp folder right? Is that supposed to happen at that point? https://gist.github.com/tiemevanveen/7afece87cb39f2f012ed84a6db43b952#file-v8js-install-sh-L214

I was building V8 v5.1.99 btw (had even more problems with latest version..)

stesie commented 8 years ago

@keepitsimple did make test work or did it output any errors? If so, where did you install V8 to (and how? pre-compiled package or compiled yourself?), ... please provide the output of ldd /usr/lib64/php/modules/v8js.so

stesie commented 8 years ago

@tiemevanveen did you run sudo make install? Can't see it from the Gist (it ends with the result of make test)

... and after all that make install step should install the library to /usr/lib/php/nnn

teameh commented 8 years ago

Yes, followed this, which did work for me in the past (is already running in production :)).

phpize
./configure
make
make test
sudo make install

That should install in /usr/lib/php/nnn but it did not, trying another time again now..

teameh commented 8 years ago

I'm flabbergasted.. just tried it again with v8 5.1.99 and it's working.

Okay I got one idea.. maybe copy pasting, and then the prompt at the end of test result screwed things up?

Thanks a lot for helping!

stesie commented 8 years ago

... by the way, you can export NO_INTERACTION=1 and make test won't interactively ask ;-)

AlexMasterov commented 8 years ago

@keepitsimple comrade, I checked just now.

PHP  7.0.8
V8   5.3.310
V8Js 1.3.0

This even works on Alpine in Docker. Just use Docker!

keepitsimple commented 8 years ago

Ok. But in my project I use PHP 5.x. RIght now we can't migrate to PHP7.

Our devops found some workaround which works. I propose to close this issue for now.

smebberson commented 8 years ago

@AlexMasterov, can you share how you got V8 to compile on Alpine Linux?

AlexMasterov commented 8 years ago

@smebberson alpine-v8-lib

smebberson commented 8 years ago

@AlexMasterov thank you, thank you, thank you! I'll have a good look :)