我已经为ARM平台编译了PHP。我现在正试图通过PHP.ini(extension = ...)动态加载我为ARM编译的扩展。但是,未加载扩展名且未报告错误。
我检查过的事情:
使用以下选项编译PHP:
./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
这是否与--disable-all选项有关?我是否需要做一些事情来启用动态扩展(即使使用enable_dl,我也无法从命令行运行dl(...))?我是否必须将我的扩展名静态编译为PHP?
编辑:静态链接扩展工作正常。这不是扩展的问题。但是能够动态加载扩展会更加理想。
答案 0 :(得分:1)
当您尝试交叉编译PHP时,配置脚本将禁用扩展的支持接缝。
您可以查看交叉编译的CLI
:~>php -i |grep Dynamic
Dynamic Library support not available<br />.
如果您想使用扩展程序,您有两种方法: - 破解配置脚本以手动启用扩展程序的支持,绕过检查 - 为目标系统使用本机编译器
我使用了第二个,使用本机编译的PHP 5.3.28成功加载Arm上的扩展
原生编译CLI
:~>php -i |grep Dynamic
Dynamic Library Support => enabled
答案 1 :(得分:0)
针对freetz php包交叉编译为mips时遇到相同的问题,并且 终于找到了busybox Patch
他们的解决方案是
此外,我还开始了第3968行 php-5.6.40 / aclocal.m4:
Date Year
2000 2000
1998年4月第11次印刷 1998
01 November, 2005 2005
出版日期:2008-06 2008
(June 22, 2000) 2000
...解决了这个问题-经过长时间的搜索。 希望可以通过在这里发布来帮助其他人。 欢呼,Thorsten