{"id":1834,"date":"2019-04-02T17:20:04","date_gmt":"2019-04-02T22:20:04","guid":{"rendered":"http:\/\/creativapixel.com\/?p=1834"},"modified":"2019-04-02T17:32:08","modified_gmt":"2019-04-02T22:32:08","slug":"conectar-php-con-sql-server-desde-centos-6-5","status":"publish","type":"post","link":"https:\/\/creativapixel.com\/blog\/conectar-php-con-sql-server-desde-centos-6-5\/","title":{"rendered":"Conectar PHP con SQL Server desde CentOS 6.5"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">En mayo 2017 tuve un nuevo requerimiento de un cliente. Tenemos lo siguiente:<br> \u2022    01 pc con windows 7 y sql server 2012<br> \u2022    01 servidor Centos con Apache y PHP5.4<br>Necesitamos obtener una lista de pacientes de la base de datos en sqlserver y mostrarla en una aplicaci\u00f3n web que esta alojado en Centos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Buscando en san google, links por aqu\u00ed, por all\u00e1 y luego de varios quebraderos de cabeza la soluci\u00f3n se resume en un post muy bueno que encontr\u00e9:<br><a href=\"http:\/\/scriptinside.blogspot.com.es\/2013\/04\/error-unable-to-connect-to-server.html\">http:\/\/scriptinside.blogspot.com.es\/2013\/04\/error-unable-to-connect-to-server.html<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Instalar en este orden<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>> yum update\n> yum groupinstall Development Tools\n> yum install httpd\n> yum install freetds\n> yum install freetds-devel\n> yum install php php-devel php-mssql\n> service httpd restart\n> php -m (verifico que m\u00f3dulos tiene instalado el php, alli debe figurar php-mssql)\n> vi \/etc\/freetds.conf<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">a\u00f1adimos una conexi\u00f3n personalizada<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#mi conexion sqlserver\n[sqlserver2012]\nhost = IP de destino\nport = 1433\ntds version = 8.0<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">grabamos y salimos.\nprobamos la conexi\u00f3n<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>> tsql -S sqlserver2012 -p 1433 -U sa<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">si hay problemas como este:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Error 20009 (severity 9): Unable to connect: Adaptive Server is unavailable or does not exist OS error 110, Connection timed out<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Este es el error t\u00edpico de que el firewall del servidor SQL no est\u00e1 permitiendo las conexiones entrantes.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Error 20009 (severity 9):\nUnable to connect: Adaptive Server is unavailable or does not exist\nOS error 111, Connection refused<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Este error significa que te estas conectando mal al servidor SQL, por ejemplo puedes estar conectandote por IP (tsql -H) con los datos por defecto en vez de conectarte utilizando tsql \u2013S.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tener en cuenta que este deshabilitado el firewall de windows, si todo va bien creamos el php de prueba<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\n$msconnect=mssql_connect(\"sqlserver2012\",\"sa\",\"clave\");\n$msdb=mssql_select_db(\"nombrebd\",$msconnect);\n$msquery = \"select titleofcourtesy,firstname,lastname from employees\";\n$msresults= mssql_query($msquery);\nwhile ($row = mssql_fetch_array($msresults)) {\necho $row['titleofcourtesy'];\n}\n\n?><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">sqlserver2012: es el nombre de la conexi\u00f3n en freetds.conf<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En mayo 2017 tuve un nuevo requerimiento de un cliente. Tenemos lo siguiente: \u2022 01 pc con windows 7 y sql server 2012 \u2022 01 servidor Centos con Apache y &#8230;<\/p>\n","protected":false},"author":1,"featured_media":1836,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17,40,41],"tags":[],"class_list":["post-1834","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-centos","category-php","category-sql-server"],"_links":{"self":[{"href":"https:\/\/creativapixel.com\/blog\/wp-json\/wp\/v2\/posts\/1834","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/creativapixel.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/creativapixel.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/creativapixel.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/creativapixel.com\/blog\/wp-json\/wp\/v2\/comments?post=1834"}],"version-history":[{"count":1,"href":"https:\/\/creativapixel.com\/blog\/wp-json\/wp\/v2\/posts\/1834\/revisions"}],"predecessor-version":[{"id":1835,"href":"https:\/\/creativapixel.com\/blog\/wp-json\/wp\/v2\/posts\/1834\/revisions\/1835"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/creativapixel.com\/blog\/wp-json\/wp\/v2\/media\/1836"}],"wp:attachment":[{"href":"https:\/\/creativapixel.com\/blog\/wp-json\/wp\/v2\/media?parent=1834"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/creativapixel.com\/blog\/wp-json\/wp\/v2\/categories?post=1834"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/creativapixel.com\/blog\/wp-json\/wp\/v2\/tags?post=1834"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}