Comparaison PHP/apache vs. script PHP et OCI8

ManuTheFil
Invité n'ayant pas de compte PHPfrance

16 avr. 2010, 13:27

Bonjour,
J'utilise PHP5.3.2 compilé avec l'instantClient oracle
J'ai un probleme d'exécution de script :
J'ai ecrit un programe qui accede à une DB Oracle, et qui tourne sans probleme si je l'execute à partir d'une page installée sur mon serveur apache (sous linux)
Le module OCI8 est actif, les appels aux fonctions de connexion et de requetes fonctionnent.
Si je reprends le même programme et que je l'exécute directement en PHP en ligne de commande, les fonctions OCI8 ne sont plus reconnues. Les autres appels à fonction sont reconnus, y compris ceux appelés à partir de classes définies dans un auter fichier PHP.
J'en conclue qu'il doit y avoir a configurer PHP pour qu'il puisse acceder aux fonctions OCI8 en dehors d'apache, mais je ne sais pas comment faire cela, et je n'ai pas trouvé de topic sur aucun forum à ce sujet
Quelqu'un aurait-il une idée ?

ViPHP
ViPHP | 5462 Messages

16 avr. 2010, 14:29

hello,
affiche toutes les erreurs (dans ton phh.ini)

Code : Tout sélectionner

error_reporting = E_ALL | E_STRICT display_errors = On display_startup_errors = On
relance ton serveur et ré-exécute ton script

ManuTheFil
Invité n'ayant pas de compte PHPfrance

16 avr. 2010, 14:56

Bonjour,
J'obtiens l'erreur que j'avais vu et qui est à l'origine de mon soucis.
J'ajoute que j'ai aussi essayé l'alias oci_connect() sans plus de succes
PHP Fatal error: call to undefined function ocilogon() in ...
Cette fonction marche toujours par un appel à travers Apache...
C'est déconcertant ...
J'ai ajouté la ligne
extension=oci8.so
dans mon php.ini et placé la librairie dans le répertoire des extensions mais ca ne change rien et le script fonctionnait sans ça par appel apache...
Je perds mes cheveux !

ViPHP
ViPHP | 5462 Messages

16 avr. 2010, 16:11

oui mais est ce que t'as le fichier oci8.so ?
regarde dans ton phpinfo les extensions liées a Oracle

reagardes par ici sinon
http://www.php.net/manual/fr/oci8.requirements.php

Petit nouveau ! | 2 Messages

19 avr. 2010, 12:50

Oui, j'ai bien le fichier oci8.so dans le répertoire des extentions défini dans php.ini.
J'ai aussi défini le LD_LIBRARY_PATH mentionné dans le lien indiqué, j'ai mis le ld.so.conf à jour avec le chemin des extensions au cas ou, et j'ai toujours la même erreur.
Et ca marche toujours bien par un appel apache.
Pour info, il s'agit d'un script qui scanne régulièrement la présence de nouveaux fichiers dans un répertoire, et qui accede ensuite à une base Oracle qui contient des infos sur ce fichier. Je ne suis pas à l'origine de l'application Oracle, juste je détecte les fichiers crées par cette application tierce qui utilise cette base. La version par le serveur de ce script donne un bouton sur une page php et il faut cliquer pour le lancer, et je voulais automatiser cet appel de façon régulière (toutes les heures) à travers un appel cron de ce script.
Je pourrai contourner le probleme en faisant un appel automatique au script via le serveur Apache, mais je ne sais pas comment lancer une tache comme ca sur ce serveur sans action d'un utilisateur.

ViPHP
ViPHP | 5462 Messages

19 avr. 2010, 13:08

et dans ton phpinfo ?

Petit nouveau ! | 2 Messages

19 avr. 2010, 13:12

Si ca prouve pas que je suis un débutant ...
En fait j'avais la ligne
extension=oci8.so dans mon fichier php.ini, mais ensuite un autre fichier oci8.ini contenant une seule ligne :
extention=oci8.so AVEC LA P... DE FAUTE t AU LIEU DE s QUI M'A FAIT PERDRE JOURS...
AARGHHH !
Merci beaucoup pour ton aide, stealth35 : ca m'a obligé à vérifier et vérifier et vérifier encore...
Probleme résolu !

ViPHP
ViPHP | 5462 Messages

19 avr. 2010, 13:14

arf :mrgreen: