Categories: server

php e Microsoft SQL Server (MSSQL)

Reading Time: 2 minutesAggiungi ai preferiti

Php e Microsoft SQL Server (MSSQL) è la soluzione web client/server utilizzata quando ci si trova a lavorare ci si trova a lavorare su server windows

  1. perché ci si deve interfacciare ad un  gestionale che gira su database Microsoft SQL Server
  2. perché si dispone di Microsoft SQL Server e non si può o non si vuole installare MySQL piuttosto che PostgresSQL

Recentemente ho avuto necessità di interfacciarmi ad un SQL Server remoto, ossia ospitato su una macchina diversa da quella su cui stavo sviluppando la mia applicazione.

In pratica ho dovuto mettere un’applicazione web su un server e da questa collegarmi ad un Microsoft SQL Server ospitato su un altro server.

La situazione nel dettaglioo:

  • Applicazione Web scritta in PHP su Mac OSX Mountain Lion con web server Apache 2.4, Php 5.3.15 e ip 192.168.0.1
  • Database Microsoft SQL Server 2008 su macchina con Windows Server 2012 Enterprise e ip 10.0.0.15

Premesso che non sto qui a spiegare come si fa, devo precisare che è necessario configurare Windows 2012 e SQL Server affinché accettino connessioni in entrata sulla porta del SQL Server, in genere la 1433.

Sul server web, dato che non era presente, ho installato il modulo freetds per php in questo modo

  1. ho scaricato il pacchetto tramite  wget ftp.ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz
  2. ho scompattato il pacchetto con tar jxvf freetds-stable.tgz
  3. cd freetds-0.91/
  4. ho configurato con ./configure –prefix=/private/etc/freetds –with-tdsver=8.0 –sysconfdir=/private/etc/freetds/conf
  5. make
  6. sudo make install
  7. sono andato nei sorgenti della versione di php utilizzata con cd php-5.3.15
  8. mi sono spostato nella directory dell’estensione msssql con cd ext/mssql/ quindi ho dato i seguenti comandi
  9. phpize
  10. ./configure –with-php-config=/usr/bin/php-config –with-mssql=/private/etc/freetds
  11. make
  12. make test
  13. ho copiato il modulo cosi compilato nella directory del php con cp modules/mssql.so /usr/lib/php/extensions/no-debug-non-zts-20090626/
  14. ho editato il file php.ini aggiungendo la direttiva extension=mssql.so
  15. ho riavviato apache
  16. ho decommentato sudo vim /private/etc/freetds/conf/freetds.conf  la riga 13

A questo punto ho testato la connessione

 $myServer = "ip:1433";
     $myUser = "username";
     $myPass = "password";
     $myDB = "database";
    
    //connessione al database
    $dbhandle = mssql_connect($myServer, $myUser, $myPass) or die(mssql_get_last_message());

ed ha funzionato!

 

wallaceer

Recent Posts

Esclusione di prodotti da una regola a catalogo in Magento 2

Reading Time: < 1 minute Esclusione di una serie di prodotti selezionati tramite l'apposito menù…

2 anni ago

Traduzione di testo con googletranslate

Reading Time: < 1 minute Nel video che vedete di seguito, a titolo di esempio,…

2 anni ago

Restart di php-fpm con capistrano dopo un deploy

Reading Time: 2 minutes Vediamo come è possibile fare il restart di php-fpm con capistrano…

3 anni ago

Manifesto per lo Sviluppo Agile di Software

"Stiamo scoprendo modi migliori di creare software,sviluppandolo e aiutando gli altri a fare lo stesso.Grazie…

3 anni ago

Security patch for Shopware 6

Shopware ha rilasciato una security patch in grado di colmare alcune lacune di sicurezza per…

3 anni ago

E-commerce ed omnicanalità

Il tema e-commerce ed omnicanalità ha sostituito l'ormai obsoleta multicanalità, vediamo di cosa si tratta.…

3 anni ago