1

我们在windows环境下开发了一个php web应用程序,可以远程联系sql server。现在,如果我们尝试在 linux 环境(Centos)中托管相同的应用程序,它不会通过我的 php 应用程序连接到 sql server。请找到以下配置..

视窗:

应用:PHP(版本:5.3.8)

服务器:Wamp 服务器

数据库:远程连接到 SQL Server 2008 R2

用于连接的代码:sqlsrv_connect(安装和连接的 Sql 驱动程序)

使用的 DLL:所有 php_sqlsrv_53_ts.dll 文件

还安装了 SQL Server 2012 本机客户端

现在我怎么能用上面(配置)提到的 php 应用程序在 centos 中托管我的网站???

Linux(Centos):

甚至我们尝试在 centos 中使用免费的 TDS。这有助于远程联系 SQL 服务器,但我们的 php 应用程序不支持此功能。我知道 dll 文件和激活这些激活对于远程连接 sql server 和 php 应用程序起着重要作用。但是 DLL 文件不能用于 linux 环境。那么有什么建议可以解决这个问题吗?

任何建议/解决方案将不胜感激。谢谢你。

4

1 回答 1

2

对于 Microsoft 的 php_sqlsrv 驱动程序,不存在 Linux 驱动程序。从文档中:

支持的操作系统:Windows 2000 Service Pack 4;Windows Server 2003 服务包 2;视窗服务器 2008;Windows 小型企业服务器 2003;Windows Vista 服务包 1;Windows XP 服务包 2

虽然驱动程序的源代码可用,但尚未移植到 Linux。您可以通过以下选择将 Web 应用程序移植到 Linux:

  • 尝试使用 mssql 驱动程序(如果可能)
  • 尝试使用 odbc 驱动程序(如果可能)
  • 迁移到不同的数据库,如 mysql、postgres ...
  • 自己将驱动程序移植到 Linux(硬)
  • 使用 Windows ;)

另一种(非常hacky)方式(如果你真的需要这个)可能是:wine在CentOS上安装以及将php作为fcgi运行,其中解释器是一个wine应用程序。然后你可以使用 php_sqlsrv Windows dll。我没有对此进行测试,但它可能会起作用。

于 2013-01-10T12:03:14.953 回答