PHP V3 et ORACLE 11G

Petit nouveau ! | 4 Messages

23 mai 2013, 10:58

Bonjour,
Je travaille pour un client qui possède actuellement 2 sites en PHP Version 3 qui se connectent à une "vielle" base oracle installé sur un serveur (je n'ai pas encore la version d'oracle).
Le client compte migrer de serveur et de base de données vers la dernière version d'ORACLE (11GR2 si je ne me trompe pas).
Je voulais savoir si le fait de changer de version de la base de données, il faut changer les lignes de codes qui concernent les accès à la base.
Bien sûr il faudra changer les paramètres d'accès (nom de la base, adresse IP, ...).
Mon souci est plus vers les fonctions d'accès, comme "ora_login"...
Est-ce que ces fonctions "fonctionneront" toujours ?

Par avance merci.
Cordialement.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

23 mai 2013, 20:17

salut,


Cela dépend de la version du client utilisée pour la compilation de php la première fois.

les clients oracle sont 'normalement' compatible pour 2 versions au dessus et 3 en dessous ( le 8i et compatible 5 et 10).

donc si le client oracle n'est pas compatible avec la version de la future base il faut installer la nouvelle version et recompiler php avec le nouveau client.

Attention il faut recompiler la version de php installer, ne surtout pas prendre une version plus récente sinon c'est certain qu'il faudra toucher au code XD


@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 4 Messages

24 mai 2013, 13:06

Salut Moogli,
Merci pour ces informations !

Juste une chose, une fois le nouveau client oracle installé (à installer sur le serveur, on est d'accord ?), comment se passe la "recompilation de la version de php installer" ?
Y a t il des tutos ? Faut-il des applications spécifiques ? C'est la première fois que j'entends parler de "php installer"...

Encore merci d'avance !

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

24 mai 2013, 13:23

ben c'est une compilation au sens unix 'classique' à partir des sources.
Après ça dépend de l'installation de base, si c'est avec des paquets d'une distrib ça peux être plus complexe mais dans tout les cas il faut que le module oci que tu utilise soit compiler pour la versionde php et la versin du client oracle que tu utilise.


@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 4 Messages

24 mai 2013, 13:35

Le serveur est un Windows. La compilation est différente j'imagine.
Et justement, les "modules oci" ne sont pas utilisés que si dans le code php on utilise les fonctions de connexion à la base de style oci_xxx ?
Car dans le code des applications, les connexions se font avec ora_login, ora_xxx.
Ou bien le modile oci est utilisé pour toutes les fonctions, y compris oci_xxx et ora_xxx ?

Sachant qu'il s'agit de la version 3 de PHP et de Oracle 11GR2, où puis-je avoir des infos pour savoir quel module utiliser ?
Merci encore !

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

24 mai 2013, 23:49

- les fonctions oracle de php dépendent de l'extension php oci8 (ou php_oci8_11g).

Sous windows la seule chose à faire est d'installer le client oracle (et que les variables d'environnement associées existe, genre oracle_home)

php_oci_11g existe que depuis php5.3 donc pas moyen d'utiliser avec php3.

La du coup je te conseil d'installer un client oracle 10g qui doit être compatible 11g (2 versions au dessus) et d'utiliser l'extension php_oci8.dll (qui doit déja être configurée).

reste a voir si la dll de ta version de php peu l'utiliser (a priori oui mais faut tester et pas sur un serveur de prod ;) ).

Avant toute chose assure toi d'avoir l'installeur du client existant pour le réinstaller :)

des instructions de base dans la doc http://php.net/manual/en/oci8.installation.php

pour info la première version de php 4 date de mai 2000, et la dernière release de php 3 d'octobre 2000 (à priori) ton client n'a que 13 ans d'évolution de retard il va être de plus en plus difficile de maintenir un tel environnement ;)


@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 4 Messages

28 mai 2013, 17:02

Bonjour,
J'ai pu voir concrètement les machines hier.
Bilan, plus de peur que de mal.
Alors, les sites PHP sont sur du serveur windows 2003, avec IIS, et PHP est en version 5.2.11.
Oracle passe de la version 8i à 11g.

Du coup, décommenter la ligne "extension=php_oci8_11g.dll" du fichier php.ini est-il suffisant ?

Par avance merci.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

28 mai 2013, 20:10

cela dépend su client oracle installé, tu peux le voir dans un phpinfo() dasn la section oci (cherche oracle sur la page)

Après il faut vérifier la chose avant de toucher la prod, avec des doc oracle comme http://www.oracle.com/technetwork/datab ... 83849.html

Mais le plus important c'est de monter un serveur identique à la prod et de changer la version de la dll pour essayer l'accès aux bases 11g ;)


@+
Il en faut peu pour être heureux ......