Tuesday, 12 February 2019

How to use dynamically loaded extensions on cross-compiled PHP?

I have compiled PHP for the ARM platform. I'm now trying to dynamically load an extension I've compiled for ARM via PHP.ini (extension=...). However, the extension is not loaded and no errors are reported.

Things I've checked:

  • PHP is reading in the correct PHP.ini file
  • I can see changes made to the PHP.ini file with the -i option
  • -d "extension=...", no extension loaded, no error.
  • enable_dl=1, dl(...) from command line doesn't work ("dynamic modules are not supported in command line code")

PHP was compiled with the following options:

./configure --host=arm-linux --target=arm -prefix=/php-5.5.8/_install --with-sqlite3 --without-pdo-sqlite --without-pear --disable-mbregex --enable-sockets --enable-fpm --enable-json --enable-session --enable-filter --disable-opcache --disable-libxml --disable-simplexml --without-zlib --disable-all

Does this have something to do with the --disable-all option? Is there something I have to do to enable dynamic extensions (even with enable_dl, I can't run dl(...) from command line)? Do I have to statically compile my extension into PHP?

EDIT: Statically linking extension works fine. It's not a problem with the extension. But it would be much more ideal to be able to dynamically load extension.



from How to use dynamically loaded extensions on cross-compiled PHP?

No comments:

Post a Comment