Solapas principales

Imaginemos el siguiente escenario:

Tenemos una web en PHP en un servidor Linux con Apache y tenemos una base de datos en un servidor SQL alojado en una máquina Windows. La base de datos tiene todos los registros de clientes con sus datos y facturación. Queremos que al hacer login en la web esta haga consultas a la base de datos de Microsoft SQL server.

VERFICADO y TRABAJANDO EN DEBIAN 6-7-8 Y CENTOS 7 CON PHP 5 

------------------------------------------------------------------------------------------------------------------------------------------------

(CON PHP 7 PROCEDIMIENTO PARA PHP 7.Debian 9 Stretch, PHP 7 and Microsoft SQL Server access

Requisitos del sistema para los controladores de Microsoft para PHP para SQL Server )

------------------------------------------------------------------------------------------------------------------------------------------------

Para poder hacer la conexión entre PHP y MS SQL utilizaremos Freetds (set de librerías Linux & Unix) y la extensión MS SQL. En la familia Debian lo instalamos así:

DEBIAN

----------------------------------------------------------------------------------------------------------------------------

sudo apt-get install freetds-common freetds-bin unixodbc php5-sybase

-----------------------------------------------------------------------------------------------------------------------------

CENTOS

---------------------------------------------------------------------------------------------------------------------------------------

Añadir repositorio EPEL

## RHEL/CentOS 7 64-Bit ##
  
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm

----------------------------------------------------------------------------------------------------------------------------------------

sudo yum update

-----------------------------------------------------------------------------------------------------------------------------

sudo yum install php-mssql

------------------------------------------------------------------------------------------------------------------------------

Running transaction
  Instalando    : unixODBC-2.3.1-11.el7.x86_64                             
  Instalando    : freetds-0.95.81-1.el7.x86_64                             
  Instalando    : php-mssql-5.4.16-7.el7.x86_64                            
  Comprobando   : unixODBC-2.3.1-11.el7.x86_64                             
  Comprobando   : php-mssql-5.4.16-7.el7.x86_64                            
  Comprobando   : freetds-0.95.81-1.el7.x86_64                            

 

Reiniciamos apache:

DEBIAN

sudo /etc/init.d/apache2 restart

CENTOS

service apache2 restart
 

El archivo de configuración de FREETDS:

DEBIAN

nano /etc/freetds/freetds.conf

CENTOS

nano /etc/freetds.conf
 

 

Podemos ver en phpinfo si tenemos la libreria freetds activa: Para comprobarlo creamos un archivo de nombre info.php con el siguiente contenido:

<?php phpinfo(); ?>

CLICK EN LA IMAGEN PARA VER INSTRUCCIONES PARA ESTABLECER LA CONEXIÓN EN PHP-7:

Si tenemos xampp movemos el archivo info.php al directorio /opt/lampp/htdocs o si tenemos apache instalado en sistema en /var/www/html. Si tenemos webmin/virtualmin encontraremos nuestro public_html en la carpeta /home ahí estará la carpeta con el nombre del dominio del servidor virtual ejemplo: /home/marspain.sytes.net/public_html/.

Abrimos el navegador y en la url :

http://localhost/info.php

Ahora desde la terminal podemos testear si conecta con Ms sql.

Abrimos una terminal:

tsql -H mi_servidor_sql -p puerto -U usuario_sql -P contraseña -D base_de_datos

Ejemplo:

tsql -H 192.168.1.221 -p 1433 -U sa -P sql123 -D EMPRESA

También podemos utilizar este código php para comprobar la conexión.

Igual que con el info.php el archivo test.php lo copiamos al directorio web y llamamos al archivo desde la url del navegador:

Creamos un archivo test.php con el siguiente código:

<?php
 
$link = mssql_connect('192.168.1.221', 'sa', 'sql123');
    if(!$link) {
             echo 'Could not connect';
             die('Could not connect: ' . mssql_error());
                    
    }
    echo'Successful Sql Connection';
    msssql_close($link);
    
?>
En la linea :
$link = mssql_connect () sustituimos "192.168.1.221" por la ip de la máquina windows con el servidor sql apuntando a la instancia SQL, por ejemplo:
 
192.168.1.130\VIRTUAL
 
"VIRTUAL" es el nombre de la instancia SQL del servidor MSSQL. Depende de la configuración. Puede ser directamente en la ip o dominio.
 
"sa" es el usuario admin de SQL, lo sustituimos por el usuario que tenemos en SQL asociado y con permisos a la base de datos.
 
"sql123" es la contraseña. Sustituimos por la nuestra.

Si la conexión se establece con éxito podremos ver en el navegador:

Successful Sql Connection

Adjunto archivos info.php y test.php en zip a pie de post. 

TRABAJANDO EN DEBIAN 6-7-8 

 

TRABAJANDO EN CENTOS 7 

ip servidor linux-> 172.16.52.130

ip servidor windows-> 172.16.52.128

CONFIGURAR-HABILITAR CONEXIONES ENTRANTES EN MICROSOFT SQL SERVER:

HABILITAR CONEXIONES ENTRANTES EN SQL SERVER CONFIGURACIÓN

 

Contenido por etiquetas

Linux Linux Tips Solución Linux Help Drupal Arch-Linux Media Front Terminal Hacking Shell Videos Linux seguridad Manjaro Mac OSX Servers Linux-Distro Consola Linux Guías Comandos Android Screencast Ubuntu Drush Windows MacOS Joomla Backtrack Cracking Command Line Debian Xampp Compiz Fusion Skype Drupal 7 Instalación Servidor Local Seguridad Telefonía ROOT Virtualmin Media Youtube Antergos Sysmonitor CyanogenMod KDE Elastix PDF Libros Kali Linux ownCloud Samba Server Descargar error Joomla Seguridad Setup Webmin Grub ClamAv Nivo Slider Drush_Make Escritorio Views Xampp 1.8.1 Whatsapp Kali SCP SSH Unix servidor web apache Noticias PHP Rootear mysql dd Líder red Virtual url Limpias Katana Drush Windows Chrome ROM Top 500 Metasploit SEO url canonica Boot Asterisk Joomla 3.0 XFCE Centos Distros Youtube Iphone TinyMCE dselect Xwinwrap Views Horizontal Slider Webform_Layout GCP Driver r8168 grep Triple-Boot Webform CKEditor IMCE DARKY´S ROM Telegram Sigram duff Fish ncdu PBX g729 Códec Imagesloaded String htaccess Tails SA-CORE-2013-003 Prestashop Papá FINK youtube-dl Sox Redgum Archserver Secure Copy Shutter Encriptar Gimp Enlaces Externos Atraci Alsi scanner bmon pipenv Python Django Homebrew Mounty Java6 Windows 10 MS-SQL SQL Streaming Kingsoft Office 1and1 VMplayer Inyection SQL Viber Recovery Galaxy S4 Wake On Lan Wol Drupal 8 Real Estate WPS .make Nube FTP bitacora fallo firestarter Galaxy S3 vs Iphone 5 Webform Layout Horizontal Slider Media Vimeo MediaFront Acquia Tilt 3D Cain & Abel sistema Office gh22ns50 Metasploitable LPS Conky CryptKeeper Rarcrack Open DNS exec: 90: : Permission denied Galaxy S (bootstrap) winAUTOPWN Joomla 2.5 firewall Arranque Wine Line Redes Fing Overlook Fing PhpMyadmin internal server error 500 Cerebro FDesktopRecorder Piropos Geek Texto compartir Sustituir 10 Millones Ahorra Migrar Munich Aircrack-ng LAMP Supercomputadoras sniffing Script Google-Earth Jdownloader fruteroloco