En determinadas ocasiones puedes necesitar conectarte a una BD de Microsoft SQL Server desde un servidor Linux por ODBC.
En este post explico como configurar el driver y la conexión para que puedas conectarte en una pagina web en PHP desde un servidor Ubuntu
Lo primero que debemos hacer es instalar los paquetes necesarios:
1 |
apt-get install freetds-bin freetds-common freetds-dev tdsodbc odbcinst unixodbc unixodbc-dev odbcinst1debian2 php7.1-odbc |
1 2 |
mv /etc/odbcinst.ini /etc/odbcinst.ini.bak cp /usr/share/tdsodbc/odbcinst.ini /etc/ |
Una vez instalados los paquetes necesarios ahora toca editar los ficheros de configuracion.
1 |
nano /etc/freetds/freetds.conf |
Añadimos al final del fichero:
1 2 3 4 5 6 7 |
# Servidor Microsoft SQL Server [MSSQlServer] host = IP_Servidor_SQL_Server port = 1433 tds version = 8 client charset = UTF-8 |
Luego editamos este fichero de configuración del driver:
1 |
nano /etc/odbcinst.ini |
Y ponemos la siguiente información
1 2 3 4 5 6 |
[FreeTDS] Description=TDS driver (Sybase/MS SQL) Driver=/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so Setup=/usr/lib/x86_64-linux-gnu/odbc/libtdsS.so CPTimeout = CPReuse |
Y por último editamos este fichero:
1 |
nano /usr/local/etc/odbc.ini |
Y añadimos la siguiente información:
1 2 3 4 5 6 7 8 |
[FreeTDS-MyDB] Driver = FreeTDS Description = MS SQL conexion a tu BD Trace = No ServerName = IP_De_Tu_Servidor_SQL_Server Port = 1433 Database = Nombre_BD TDS_Version = 8 |
Ahora ya nos queda probar la conexion desde nuestra pagina en PHP:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
try { //connection params $dbCon = new PDO('odbc:Driver=FreeTDS; Server=my_server_host; Port=1433; Database=my_database; TDS_Version=7.4; ClientCharset=UTF-8', 'my_login', 'my_pass'); //test query $result = $dbCon->query('SELECT TOP 10 * FROM dbo.my_table'); //show the results foreach ($result as $row) { print_r( $row ); } //close the connection $dbCon = null; } catch (PDOException $e) { //show exception echo $e->getMessage(); } |
Deja una respuesta