Necesito instalar una demostración de una aplicación PHP que hace uso delControlador de servidor SQL para PHP. El servidor es una máquina antigua que ejecuta Windows 2000 Server SP4. He instalado toda la pila sin problemas:
- Apache 2.2.14
- PHP 5.3.1
- SQL Server 2005 Edición Express
- Estudio de administración de SQL Server Express
Pero hay un componente que no funciona como se esperaba: elCliente nativo de SQL Server. Recibo un mensaje de error tan pronto como llamo a sqlsrv_connect(). Encontré cuatro versiones diferentes y ninguna funciona:
Si no lo instalo o instalo la versión 2005:
- ESTADOSQL: IMSSP
- código: -49
- mensaje: El controlador de SQL Server para PHP requiere el controlador ODBC de cliente nativo de SQL Server 2008 (SP1 o posterior) para comunicarse con SQL Server. Ese controlador ODBC no está instalado actualmente. Acceda a la siguiente URL para descargar el controlador ODBC de SQL Server 2008 Native Client para x86:http://go.microsoft.com/fwlink/?LinkId=163712
Si instalo la versión 2008:
- ESTADOSQL: IM003
- código: 160
- mensaje: El controlador especificado no se pudo cargar debido al error del sistema 127 (SQL Server Native Client 10.0).
ElRequisitos del sistema para el controlador SQL Server para PHP.1.1 incluye Windows 2000 Service Pack 4. Sin embargo, elRequisitos del sistema para SQL Server 2008 Native Clientmenciona Windows Server 2003 Service Pack 2 o superior.
¿Alguna idea?
Respuesta1
No creo que el cliente nativo SQL 2008 sea compatible con Windows 2000. ¿Tiene un sistema Windows 2003 en el que pueda instalar esta aplicación?
Respuesta2
Tengo más información de Serban Iliescu en elforo oficial:
Tras una investigación más profunda, descubrí que SQL Server Native Client 2008 (también conocido como SNAC 10) no se carga en Windows 2000 porque el sistema operativo no satisface algunas dependencias de dll. Actualmente hay un defecto registrado en SNAC 10 para resolver este problema mediante una degradación adecuada, pero ese defecto aún no se ha solucionado. Mientras tanto, puede probar la versión anterior del controlador PHP (es decir, la versión 1.0) que está vinculada a SNAC 9 (SQL Server Native Client 2005) y se supone que SNAC 9 funciona en Windows 9.
Para resumir:
- El controlador SQL Server para PHP 1.1 requiere SQL Server Native Client 2008
- SQL Server Native Client 2008 tiene un error conocido y no se carga en Windows 2000
- SQL Server Native Client 2005 funciona bien en Windows 2000
- El controlador SQL Server para PHP 1.0 solo requiere SQL Server Native Client 2005
Instalé la versión anterior del controlador PHP junto con la versión 2005 del Native Client. También tuve que degradar PHP de 5.3 a 5.2.
Mi aplicaciónparecepara trabajar con la versión anterior del controlador PHP. Así que la demostración por fin está funcionando.