我们有一个自定义编译的php(5.6.32),我们想要使用mysqli。我们确实有一个旧的编译版本(5.3.10),运行正常。
我们在
中有一个旧的mysqli.so/usr/lib64/php/modules/mysqli.so
我们正在使用
编译php./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql --with-zlib --with-libdir=lib64 --with-openssl --with-curl --enable-soap --with-mysqli
我也试过
--with-mysqli=/usr/bin/mysql_config
确认
checking for MySQLi support... yes
然而,当我们尝试运行php时,我们会收到错误...
HP Warning: PHP Startup: mysqli: Unable to initialize module
Module compiled with module API=20090626
PHP compiled with module API=20131226
我的猜测是因为之前的编译还有一个旧的mysqli.so文件?
无论我们尝试做什么,都不会在任何地方创建新的mysqli.so文件。
php编译应该创建mysqli.so吗? (如果不是我们如何重新创建它)。或者关于如何解决问题的任何其他想法?
config.nice显示
'./configure' \
'--with-apxs2=/usr/local/apache2/bin/apxs' \
'--with-mysql' \
'--with-zlib' \
'--with-libdir=lib64' \
'--with-openssl' \
'--with-curl' \
'--enable-soap' \
'--with-mysqli' \
"$@"
答案 0 :(得分:0)
我认为这个错误实际上可能是一个红色的鲱鱼,我还在测试。 Mysqli似乎正在工作,一开始就出现错误。
所以现在mysqli可能以某种方式构建到二进制文件中,并且不需要mysqli吗?
所以我只是在php.ini文件中注释掉了mysqli.so。所以错误不再发生(因为我认为它不是在尝试加载旧的.so库)。
我仍然对mysqli现在如何运作感到困惑,所以如果有人有更好的答案,我会很乐意接受。