Est-il possible de configurer PHP pour utiliser un magasin de mots de passe externe sécurisé, comme décrit dans http://download.oracle.com/docs/cd/B19306_01/network.102/b14266/cnctslsh.htm?
Réponses:
2 pour la réponse № 1Oui c’est possible, vous devez:
1 - créer un portefeuille (comme expliqué dans votre lien)
2 - placez le client instantané Oracle et les fichiers du portefeuille quelque part sur le serveur avec Apache + PHP (par exemple, / opt / instantclient et / opt / wallet)
3 - démarrez Apache avec les variables suivantes:
ORACLE_HOME=/opt/instantclient
LD_LIBRARY_PATH=/opt/instantclient
TNS_ADMIN=/opt/wallet
4 - Dans / opt / wallet, créez un fichier tnsnames.ora avec ce contenu:
WALLET_NAME =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = DB_IP)(PORT = DB_PORT))
(CONNECT_DATA = (SID = DB_SID))
)
où WALLET_NAME correspond au nom du portefeuille choisi lors de sa création, DB_IP à l’adresse IP ou au nom d’hôte de la base de données, DB_PORT au "port de base de données" et DB_SID au "sid" de la base de données
5 - Dans / opt / wallet, créez un fichier sqlnet.ora avec ce contenu:
WALLET_LOCATION =
(SOURCE =
(METHOD = FILE)
(METHOD_DATA =
(DIRECTORY = /opt/wallet)
)
)
SQLNET.WALLET_OVERRIDE = TRUE
6 - redémarrer Apache
Du côté du code PHP, vous pouvez maintenant vous connecter à la base de données en ouvrant une connexion avec le code suivant:
$conn = oci_connect("/", "", "WALLET_NAME", null, OCI_CRED_EXT);
vous pouvez utiliser sinon le oci_pconnect, pour les connexions persistantes, et la même syntaxe
J'espère que cela aide et je n'ai rien oublié