Hola nuevamente,
http://php.net/manual/es/sqlsrv.requirements.php
aunque dice que tiene soporte en linux:
https://docs.microsoft.com/en-us/sql/connect/php/system-requirements-for-the...
anota que soporta estas distros
- Ubuntu 15.04 (64-bit) - Ubuntu 16.04 (64-bit) - Red Hat Enterprise Linux 7 (64-bit)
debes de utilizar la version correctar del driver, en tu phpinfo: te muestra el driver sqlsrv instalado?
Saludos..
El 27 de junio de 2017, 18:21, Elio Bastias, Project Managers < elio.bastias@gmail.com> escribió:
Buenas tardes, Luis, Mira con respecto al error, lo que rescato es "Login timeout", lo que parece que ni encuentra la db, lo que intentaría sería colocar el data source name (dsn), como lo recomienda el sitio ( https://docs.microsoft.com/en-us/sql/connect/php/connection-options), lo importante también es que si se instalo bien el driver ( https://www.microsoft.com/download/details.aspx?id=20098), y saber bien la versión que tenes instalada de PHP, lo que te recomendaría sería ir a PDO, ya que te permite tener una capa de abstracción de las DB, y no preocuparte cuando manejes diferentes tipos de DB ó migres a otro.- También tene en cuenta la sintaxis que te da php:
<?php $serverName = "serverName\sqlexpress"; //serverName\instanceName $connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=> "password"); $conn = sqlsrv_connect( $serverName, $connectionInfo); if( $conn ) { echo "Conexión establecida.<br />"; }else{ echo "Conexión no se pudo establecer.<br />"; die( print_r( sqlsrv_errors(), true)); } ?>
ya que en $serverName, te pide el nombre del servidor y no una IP, por ejemplo por hay no esta resolviendo la IP con el nombre de la Db, ya que por lo que entiendo vos estas en un CentOS y la DB en un windows así que puede llegar a ser ese el problema, para decirte me apoyo en el mensaje de error "Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections"
Espero haberte dado una mano, y sino comenta como lo solucionaste para que otros lo puedan tener en cuenta.- Saludos
El 27 de junio de 2017, 18:24, Luis T reywes@gmail.com escribió:
Estimado Aland,
Gracias por responder, he instalado algunas librerias para ver si
funciona.
El escenario que tengo es por un lado el Server SQL 2014 y por otro el CentOS 7.3 con PHP 7.1 necesito conectarme desde CentOS a la base de
datos
de SQL Server. Probe la conexion remota hacia el SQL Server y funciona OK desde otro Windows. Hice una prueba desde Centos hacia Windows Server con el comando sqlcmd -S <IP> -U <USUARIO> -P <PASSWORD> y se conecta sin problema incluso puedo consultar datos de las tablas. Me presenta el siguiente error:
Conexión no se pudo establecer. Array ( [0] => Array ( [0] => HYT00 [SQLSTATE] => HYT00 [1] => 0 [code]
=>
0 [2] => [unixODBC][Microsoft][ODBC Driver 13 for SQL Server]Login
timeout
expired [message] => [unixODBC][Microsoft][ODBC Driver 13 for SQL Server]Login timeout expired ) [1] => Array ( [0] => 08001 [SQLSTATE] => 08001 [1] => 10013 [code] => 10013 [2] => [unixODBC][Microsoft][ODBC
Driver
13 for SQL Server]TCP Provider: Error code 0x271D [message] => [unixODBC][Microsoft][ODBC Driver 13 for SQL Server]TCP Provider: Error code 0x271D ) [2] => Array ( [0] => 08001 [SQLSTATE] => 08001 [1] =>
10013
[code] => 10013 [2] => [unixODBC][Microsoft][ODBC Driver 13 for SQL Server]A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL
Server
Books Online. [message] => [unixODBC][Microsoft][ODBC Driver 13 for SQL Server]A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL
Server
Books Online. ) )
La conexion PHP que tengo es:
<?php $serverName = "172.10.10.50"; //serverName\instanceName $connectionInfo = array( "Database"=>"TEST", "UID"=>"user", "PWD"=>"123456"); $conn = sqlsrv_connect( $serverName, $connectionInfo); if( $conn ) { echo "Conexión establecida.<br />"; }else{ echo "Conexión no se pudo establecer.<br />"; die( print_r( sqlsrv_errors(), true)); } ?>
Esto se puede deber algun error de sintaxis en el sqlsrv_connect??
Saludos,
Luis
2017-06-27 12:26 GMT-05:00 Aland Laines aland.laines@gmail.com:
Hola Ojo que estas con dos cosas distintas.. has instalado mssql, pero quieres usar sqlsrv_connect, lo cual esta mal, lo correcto es usar http://php.net/manual/es/function.mssql-connect.php, otra cosa revisa
la
version de php que estas usando en el servidor en algunas tiene
problemas
de compatibilidad y en otras esta deprecated.
Un abrazo..
El 23 de junio de 2017, 16:30, Efraín Déctor <
efraindector@motumweb.com>
escribió:
Que raro.
Checa esta respuesta: https://stackoverflow.com/a/43687495
El 23/06/2017 a las 04:20 p. m., Luis T escribió:
Hola Efraín,
Si realice la instalacion de php-mssql. de hecho en CentOS me
aparece
esto:
Inline image 1
Nose si es un error en la sintaxis del sqlsrv_connect aunque ya he probado varios ejemplos que estan en la web y no doy con el error.
Nose
que
pueda estar afectando la conexion.
Saludos,
Luis
2017-06-23 16:11 GMT-05:00 Efraín Déctor <efraindector@motumweb.com mailto:efraindector@motumweb.com>:
Hola. Seguro que instalaste php-mssql (yum install php-mssql) ? Saludos El 23/06/2017 a las 03:13 p. m., Luis T escribió:
Hola Efraín, Gracias por tu respuesta, sabes que sigue todos los pasos pero
no
me permite conectar la base SQL. Habilite la conexion remota
del
SQL, desactive firewall. Probe con las tres opciones de
conexion
pero nada, por telnet si se establece la conexion. Este momento estoy usando esto: <?php $serverName = "172.10.10.50\SQL2014, 1433"; //serverName\instanceName, portNumber (default is 1433) $connectionInfo = array( "Database"=>"PRUEBA", "UID"=>"user1", "PWD"=>"123456"); $conn = sqlsrv_connect( $serverName, $connectionInfo); if( $conn ) { echo "Connection established.<br />"; }else{ echo "Connection could not be established.<br />"; die( print_r( sqlsrv_errors(), true)); } ?> Revise los logs y me aparece esto: PHP Fatal error: Call to undefined function sqlsrv_connect()
in
/var/www/html/prueba.php on line 4 Toda la configuracion la realice tal como esta en el tutorial, nose si hay algun error de sintaxis o es necesario habilitar
algo
en Windows o Centos. Cualquier ayuda de antemano gracias. Saludos, Luis 2017-06-22 14:43 GMT-05:00 Efraín Déctor <efraindector@motumweb.com <mailto:efraindector@motumweb.com
:
Que tal. Primero que nada en Centos necesitas instalar php-mssql que está en el repositorio EPEL. Para la conexion en PHP sigue la documentación oficial: http://php.net/manual/es/function.sqlsrv-connect.php <http://php.net/manual/es/function.sqlsrv-connect.php> Saludos El 22/06/2017 a las 02:36 p. m., Luis T escribió: Estimados, Tengo desarrollado una aplicacion PHP en un Centos 7 y necesito conectarlo a un servidor SQL Server donde tengo una base de datos, para poder almacenar ahi la informacion. He buscando en internet informacion pero todavia no lo tengo bien claro. Alguien que me pueda indicar cual es la mejor forma para realizar esto, de antemano agradezco
sus
respuestas, gracias. Saludos, Luis _______________________________________________ CentOS-es mailing list CentOS-es@centos.org <mailto:CentOS-es@centos.org> https://lists.centos.org/mailman/listinfo/centos-es <https://lists.centos.org/mailman/listinfo/centos-es>
CentOS-es mailing list CentOS-es@centos.org https://lists.centos.org/mailman/listinfo/centos-es
CentOS-es mailing list CentOS-es@centos.org https://lists.centos.org/mailman/listinfo/centos-es
CentOS-es mailing list CentOS-es@centos.org https://lists.centos.org/mailman/listinfo/centos-es
-- Elio Bastias Project Manager Smart - IT |Open Source Innovation | Open Source Communications Estrategia y Management en Comunicaciones e Infraestructurade IT
|Gtalk/Mail: consultor@eliobastias.com.ar
|Soporte & Mantenimiento ->http://goo.gl/BEvg73
|-----------------------------------------------------------
Los precios cotizados por el equipamiento están expresados en Dólares Estadounidenses e incluyen todos los impuestos vigentes que gravan este tipo de operaciones, excepto el Impuesto al Valor Agregado (I.V.A.) que, en caso de corresponder, será adicionado en el porcentaje que establezca la ley al momento de realizar la facturación. Los precios resultantes de la presente serán pagaderos en dólares estadounidenses billete o en su defecto en pesos, según cotización del dólar libre tipo vendedor del Banco de la Nación Argentina del día inmediato anterior al de efectivo pago. Referencia: www.bna.com.ar |-----------------------------------------------------------
Este mensaje y, en su caso, sus archivos adjuntos, son informaión confidencial enviada para uso exclusivo de su destinatario. Está terminantemente prohibida la lectura, copia, duplicado o reenvío de esta información por parte de cualquier persona distinta del destinatario. Si usted ha recibido este mensaje por error, por favor elimínelo e informe de inmediato a su remitente. |-----------------------------------------------------------
Antes de imprimir, pensá en tu responsabilidad y compromiso con el MEDIO AMBIENTE.- _______________________________________________ CentOS-es mailing list CentOS-es@centos.org https://lists.centos.org/mailman/listinfo/centos-es