Ubuntu上的PHP从命令行加载MSSQL扩展,但在通过Apache运行时不加载

时间:2016-07-16 15:18:34

标签: php linux apache ubuntu

我一直在寻找并尝试了很长一段时间才找到答案,所以最后会问这里。

我从Turnkey LINUX安装了UBUNTU,PHP Ver 5.6.23。 我已经编译并启用了mssql.so,因为我需要连接到MSSQL服务器。

我的简单连接PHP脚本是这样的:

$server = 'rslocal';

$connect = mssql_connect($server, 'sqluser', 'sqlpassword');

if (!$connect) {
    echo 'can not connect';
}

我可以从命令行运行上面的PHP脚本并且成功。
我也可以运行FreeTDS tsql实用程序并从命令行连接和查询服务器

当我从浏览器通过Apache运行它时,它告诉我 致命错误:调用未定义的函数mssql_connect()...

我已经检查过php -ini(cli)和phpinfo()(浏览器)都报告了正在使用的相同ini文件。

我没有运行SELinux,所以setbool命令在这里不相关,但SELinux WAS问题的其他人所说的问题与我的完全相同,所以也许这是一个开始的地方。

我的感觉是,这是一个安全策略或某些东西阻止扩展加载任何想要与外部服务器通信的功能,但我被卡住了。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我找到了#34;答案"。在这个发行版,Ubuntu 14.x,命令

sudo apachectl restart

似乎不足以重新加载php。 php.ini更改,特别是添加extension = mssql.so时,在通过apache运行时尚未应用。这引出了一个问题:如何"硬"重启Apache,所以php.ini改变了,但这是一个不同的问题。我只是注意到重启后它才有效。