PHP模块编译API不正确(无法初始化)

And*_*gel 8 php sql-server

我正在尝试在RHEL5盒子上安装freetds和php-mssql.我已成功完成(似乎是)所有事情.但是,当PHP尝试加载模块时,我收到以下错误:

PHP Warning:  PHP Startup: mssql: Unable to initialize module
Module compiled with module API=20090626, debug=0, thread-safety=0
PHP    compiled with module API=20050922, debug=0, thread-safety=0
These options need to match
Run Code Online (Sandbox Code Playgroud)

我一直在努力弄清楚为什么他们有不同的价值,但没有成功.

在最新的尝试中,我下载了我正在运行的版本的php源码(php-5.3.8),进入了ext/mssql文件夹并运行了phpize,configure,make,make install.

我验证了mssql.so文件在相应的文件夹中,并且该php正在尝试加载它.

phpize -v
Configuring for:
PHP Api Version:         20050922
Zend Module Api No:      20090626
Zend Extension Api No:   220090626
Run Code Online (Sandbox Code Playgroud)

jap*_*968 12

RHEL有一个较旧版本的php(5.1.x),安装较新的php版本(如5.3.x)意味着一些变化.如果从非官方的repos安装,你会看到名为php-*和php5-*的软件包.两个版本都可以成为问题的根源.

看起来你的系统正在从之前的php安装中访问一些配置文件.

看看: - /etc/php.d确保你没有旧版本的元素 - 看看/ usr/bin/php-config*,如果你有php-config和php-config5,删除(重命名)/ usr/bin/php-config并对新的符号链接进行符号链接:

# mv /usr/bin/php-config /usr/bin/php-config_old
# ln -s /usr/bin/php-config5 /usr/bin/php-config
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助