2012-08-29 55 views
1

我试图在运行CentOS 5.8和PHP 5.3.5的服务器上为PHP安装mssql模块。我能够在运行CentOS 5.2和PHP 5.2.6的开发服务器上工作,并且一切似乎都匹配(FreeTDS已安装,模块文件夹中的模块,extension = mssql.so已添加到php.ini中)。但是,插件不会加载;不会在phpinfo()中显示,并且在测试脚本中出现未定义的函数错误。MSSQL.so for PHP 5.3不加载(CentOS 5.8)

另外值得注意的是:phpinfo()在configure命令下列出'--with-mssql = shared,/ usr',这真让我困惑。

回答

0

你确定mssql正在运行吗?编辑php.ini后,您需要重新加载Apache配置。请尝试重新启动Apache的:

service httpd restart 

您可以检查在PHP中加载的模块:

php -m 

您需要检查Apache和PHP日志中/var/log

尝试启用php.ini中的错误报告。

我还建议你为新的PHP和MySQL添加epel存储库。版本5.2太旧了。

+0

那么你知道什么: “PHP启动:无法加载动态库'/usr/lib64/php/modules/mssql.so' - /usr/lib64/php/modules/mssql.so:错误的ELF类:ELFCLASS32未知在线0“ 现在就研究它。 –

+0

所以,我猜这意味着我真的需要64位时将它编译为32位?如果是这样,我怎么编译它为64位? –

1

已解决。不是100%是什么修复,但我很确定这是修复它。

首先,它可能没有帮助我试图编译从PHP 5.3.16而不是5.3.6的副本。即使那样,我也遇到了编译它的错误。我发现了一个修复,建议把从php_mssql.h的文件夹中删除此行它phpized后:

typedef unsigned char *LPBYTE; 

我当时安倍做make && make install并没有错误,现在加载。