Trois mots qui ont dû faire grincer quelques dents lorsque les gens ont essayé de les associer.
Donc voici la technique pour donner à PHP le pouvoir de se connecter à un serveur SQL Server depuis Linux CentOs.
D’abord installer le paquet : php-mssql
Ensuite, configurer le fichier freetds.conf (placé dans /etc) en ajoutant deux sous-parties.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| # Serveur SQL Server 2000
[MSSQL_SQL2000]
host = ip_adress
# instance par défaut
port = 1433
# si pas instance par défaut,
# - commenter la ligne port
# - dé-commenter la ligne instance
#instance = MY_INSTANCE
# version relative à SQL Server 2000
tds version = 8.0
# Serveur SQL Server 2005
[MSSQL_SQL2005]
host = ip_adress
# instance par défaut
port = 1433
# si pas instance par défaut,
# - commenter la ligne port
# - dé-commenter la ligne instance
#instance = MY_INSTANCE
# version relative à SQL Server 2005
tds version = 9.0
|
Après cela, on va essayer de se connecter en ligne de commande :
1
| tsql -S MSSQL_SQL2005 -U sa
|
Normalement, la ligne de commande devrait vous demander un mot de passe. Ensuite, rentrer une requête pour tester, et taper un Ctrl+C pour quitter.
1
2
3
4
5
6
7
8
9
10
| [billy@foo ~]$ tsql -S MSSQL_SQL2005 -U sa
locale is "en_US.UTF-8"
locale charset is "UTF-8"
Password:
1> SELECT DB_NAME(dbid) as 'Database Name',
2> COUNT(dbid) as 'Total Connections'
3> FROM master.dbo.sysprocesses WITH (nolock)
4> WHERE dbid > 0
5> GROUP BY dbid
6> go
|
Dès lors, un redémarrage d’Apache suffit :
1
| /etc/init.d/httpd restart
|
Et vous pouvez l’utiliser dans PHP :
1
2
3
4
5
6
7
8
9
| <?php
$hMSSQLCnx= mssql_connect('MSSQL_SQL2005', 'sa', 'password');
if(!$hMSSQLCnx) {
echo 'Could not connect';
} else {
echo 'Successful connection';
}
mssql_close($hMSSQLCnx);
?>
|
Et voilà, vous voilà connecter à SQL Server depuis Linux Centos.
Lien : http://www.freetds.org/