Extensions

De Wiki de Jordan LE NUFF
< Technique‎ | PHP
Révision datée du 24 juillet 2020 à 14:53 par Jordan (discussion | contributions) (Page créée avec « ==Présentation== Cette page a pour objet de présenter certaines extensions de PHP. == OCI8 == === Présentation === ''Cette extension apportent des fonctions qui permet… »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Sauter à la navigation Sauter à la recherche

Présentation

Cette page a pour objet de présenter certaines extensions de PHP.

OCI8

Présentation

Cette extension apportent des fonctions qui permettent d'accéder aux bases de données Oracle 19c, 18c, 12c, 11g, 10g, 9i et 8i. Elles supportent les commandes SQL et PL/SQL. Les fonctions de base incluent le contrôle de transaction, la liaison de variables PHP avec des conteneurs Oracle, le support des types de grands objets (LOB) et des collections. Les fonctions d'extensibilité de Oracle, telles que de Database Resident Connection Pooling (DRCP) et le cache de résultats sont aussi supportés.

Plus d'informations sur https://www.php.net/manual/fr/book.oci8.php.

Prérequis

La présence des librairies de l'Instant Client d'Oracle est obligatoire pour l'installation de l'extension oci8.

Installation

Par le gestionnaire de paquets

Valable uniquement si PHP a été installé par le gestionnaire de paquet également.

Lancer la commande :

yum install php-oci8

Cela aura pour effet d'installer oci8 en tant que module partagé. Pour l'activer, modifier le fichier php.ini et ajouter/modifier la ligne suivante :

extension=oci8.so

Lors de la compilation de PHP

Lors de la configuration de la compilation de PHP, ajouter la ligne suivante :

...
--with-oci8=instantclient,/usr/lib/oracle/10.2.0.4/client64/lib \
...

Remplacer /usr/lib/oracle/10.2.0.4/client64/lib par le chemin correspondant à la version d'Instant Client d'installée.

Avec PECL

Indiquer à PECL la localisation du fichier php.ini :

pear config-set php_ini /local/php/php-5.6.40/php.ini

Mettre à jour la base PECL :

pecl channel-update pecl.php.net

Voici le détail du package oci8 : https://pecl.php.net/package/oci8.

Grâce à ces informations, il faut choisir la version du package PECL oci8 correspondant à la version de PHP.

Par exemple, pour PHP 5.6.40, il faut lancer la commande suivante :

pecl install oci8-2.0.12

Alors que pour la version 7.4.7, il faudra simplement lancer la commande :

pecl install oci8

Exemple de retour :

Putty icon.png Console SSH

SQL Server

Pour pouvoir communiquer avec les serveurs SQL Server de Microsoft depuis un serveur Linux avec PHP, il est nécessaire d'installer les pilotes ODBC pour SQL Server.

Pour ce faire, installer le dépôt Microsoft pour la version de Linux nécessaire :

curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo

Ensuite, installer la version désirée du pilote ODBC MicroSoft : ACCEPT_EULA=Y yum install msodbcsql17

Une fois le pilote installé, il faut ensuite installer l'extension nécessaire dans PHP.

PHP 7

Pour pouvoir communiquer avec les serveurs SQL Server de Microsoft avec PHP 7, il faut installer l'extension sqlsrv ou son homologue en PDO pdo_sqlsrv.

Pour ce faire, il est possible de l'installer via le gestionnaire de paquets (moyennant l'ajout du dépôt correspondant), ou de recompiler intégralement PHP, ou de compiler uniquement l'extension grâce à PECL.

Pour une installation au travers de PECL, lancer les commandes suivantes :

pecl channel-update pecl.php.net
pecl install pdo_sqlsrv

PHP 5

Pour pouvoir communiquer avec les serveurs SQL Server de Microsoft avec PHP 5, plusieurs solutions sont possibles.

Les différentes solutions sont résumées sur un article sur le blog de Rémi : https://blog.remirepo.net/post/2016/09/20/Microsoft-SQL-Server-depuis-PHP

Avec PDO

Pour pouvoir faire du PDO sur des serveurs SQL Server depuis un serveur Linux avec PHP 5, il faut, au choix :

  • Installer le paquet mssqlodbc depuis le repository de Rémi (voir lien ci-dessus)
  • Recompiler PHP

Dans les deux cas, le paquet unixODBC est nécessaire.

Pour installer les prérequis nécessaire à la recompilation de PHP, lancer la commande suivante :

yum install unixODBC-devel msodbcsql17

Lancer ensuite la recompilation de PHP en y ajoutant l'option suivante :

...
--with-pdo-odbc=unixODBC,/usr \
...

Voici un exemple de code PHP fonctionnel pour se connecter à un SQL Server 2014 :

<?php
try {
	$dbh = new PDO('odbc:DRIVER={ODBC Driver 17 for SQL Server};Server=MyServer\MyInstance,MyPort;UID=MyUserName;PWD=MyPassword;');
} catch (PDOException $exception) {
      echo $exception->getMessage();
      exit;
}
var_dump($dbh);
unset($dbh);
echo "Connexion OK !";
?>