Question

Mise à jour (21/05/2010) SUCCÈS!

Alors après beaucoup de BANDEAUX $> Bureau () 'ing, je l'ai résolu.

Rappelez-vous les enfants, méfiez-vous de la version client instantanée que vous utilisez, en fonction des paramètres de virtualisation!

J'avais l'installation du client instantané générique (pas au courant de nos serveurs ESX sont assis sur des processeurs AMD, et non Intel) et qui a bien fonctionné en interne (CentOS INSTALL 32 bits depuis nos serveurs ESXi internes ne sont pas 64 bits) . Eh bien lo-et-voici, même si vous avez une installation 32 bits en cours d'exécution sur un serveur virtualisé qui est assis sur un AMD64, il importe encore ce client instantané que vous installez.

Ce fut la dernière chose que je pensais à vérifier, mais comme il semble, tout fonctionne bien maintenant.

Je tiens à remercier tout le monde qui m'a aidé à courir à travers tous les tests possibles pour comprendre cela, mais à la fin, ce fut ma faute pour ne pas se rendre compte des différences dans les virtualizations.


Mise à jour (21/05/2010) Je pensais que ce bug me avait échappé quand je l'ai installé sur une nouvelle machine virtuelle à l'intérieur mais je l'ai maintenant trouvé un lien rétrécissant.

Je suis en train d'installer sur notre serveur de production quand je posté. Après une semaine d'aucun progrès et dans le besoin de revenir au développement, j'Aménagée une machine virtuelle sur notre serveur interne avec une toute nouvelle installation de Merde ... CentOS, et les nouvelles installations de client instantanée et oci8.

A travaillé parfaitement.

Cependant nous venons de mettre en ligne une copie exacte de la machine virtuelle à nos serveurs de production et magie ne fonctionne plus. réinstallant tout essayé, sans succès.

Alors, les seules choses que je pourrais le réduire à un problème de pare-feu (même si je reçois la même question lors d'une tentative 127.0.0.1) ou peut-être un ESX (nos serveurs de production) problème de serveur, les serveurs internes sont en cours d'exécution ESXi.

Toutes les pensées?

Mise à jour (3/8/2010) J'ai installé Xdebug et l'ont suivi mon code. Ceci est la sortie que je reçois:

TRACE START [2010-03-08 17:53:05]
    0.2090     327864   -> {main}() /data/aims3/http/octest.php:0
    0.2091     327988     -> ini_set(string(14), string(1)) /data/aims3/http/octest.php:3
    0.2093     327920     -> error_reporting(long) /data/aims3/http/octest.php:4
    0.2094     328048     -> oci_connect(string(8), string(8), string(25)) /data/aims3/http/octest.php:6

La trace arrête à ce moment-là.

J'ai installé tout de même sur un serveur local et il fonctionne très bien. Dire que je suis à une perte complète mettrions légèrement.


* NOTE : Je courus make test et il est revenu FAIL sur tous les tests. Je ne ai jamais couru ceci sur ma machine de travail pour voir si elle rapporte les mêmes erreurs. Toute idée pourquoi make test ferait rapport FAIL mais faire ne signale pas d'erreur?

J'ai installé Oracle instantclient sans erreurs signalées avec le paquet OCI8 PECL et à une perte. Chaque fois que je tente d'ouvrir une connexion avec oci_connect, il arrête tout mon script PHP.

Exemple:

<?php
ini_set ("display_errors", "1");
error_reporting(E_ALL);
echo "before";
$conn = oci_connect("username", "password", "host");
echo "after";
?>

Retourne une page blanche complète. Le module est chargé (vu dans phpinfo) et tout installé sans erreur.

Je suis à une perte complète.

CentOS: 5.4

Apache: 2.2.3

PHP: 5.3.1

instantclient: 11.2

oci8: 1.4.1

Toutes les pensées?

NOTES

Apache Error Log rapporte rien

Tentative de débogage:

1:

<?php
ini_set ("display_errors", "1");
error_reporting(E_ALL);
echo "before";
if(!function_exists('oci_connect')) die('Oracle Not Installed');
echo "after";
?>

Renvoie:

beforeafter

2:

Modification hôte // hôte

Renvoie:

même erreur

Était-ce utile?

La solution 5

Il a été corrigé. Voir haut pour plus de détails, mais voici les notes de la falaise. Environnements virtualiztion importance

Autres conseils

Y at-il dans Apache error_log? Est-ce mod_php ou FastCGI ou PHP normal CGI? Qu'est-ce qui se passe si vous exécutez le script via la ligne de commande?

Vous pouvez également essayer de définir erreur de PHP journal et à la recherche là-bas.


EDIT1 : Essayez:

echo "before";
if(!function_exists('oci_connect')) die('Oracle Not Installed');

afficher les résultats ...


EDIT2: Je ne suis vraiment pas sûr. Mon meilleur pari est cette info de le manuel PHP :

  

Le problème le plus commun avec   l'installation OCI8 est de ne pas avoir la   environnement Oracle correctement défini. Cette   généralement apparaît comme un problème en utilisant   oci_connect () ou oci_pconnect (). le   erreur peut être une erreur de PHP comme Call   à oci_connect de fonction non définie (),   une erreur Oracle, comme ORA-12705, ou   même un accident Apache. Vérifiez Apache   les fichiers journaux pour les erreurs de démarrage et de voir   les sections ci-dessus pour résoudre ce   problème.

Quelqu'un d'autre a des idées pour aider Bryan?

Bryan,

Je vais être honnête: J'ai essayé il y a deux ans et a lamentablement échoué. :) Je ne pouvais pas les fonctions du BEC de travailler pour quoi que ce soit par moi-même la compilation.

Mais dans l'intérêt de l'obtenir fait, je cherchais une solution de rechange et trouvé dans Zend Core for Oracle. Tout ce que je ne faisais que télécharger, exécuter le programme d'installation, et il a été fait. Il installe Apache / PHP, MySQL (en option), et le instantclient pour vous.

Maintenant que Zend Server, il est essentiellement le même produit. Je me rends compte que cela ne peut être la solution que vous espériez, mais si cela fonctionne ...

Zend Server

vous connectez à distance ou db local? Je pense que, pour localhost vous devez remplacer « hôte » par « false ». Je l'espère, cela vous aidera à ...

edit: je pense, il vous manque un paramètre ... mes dernières suggestions sont les suivantes: 1. Vous devez définir le port par défaut (1521) ET / OU 2. Vous devez entrer db nom et / ou que vous devez définir l'instance nom (le paramètre ORACLE_SID)

Vous ne vérifie jamais la valeur de retour de oci_connect () ou appelez oci_error (), mais il ne semble pas pertinent à votre problème puisque vous semblez souffrir d'un accident de PHP. Il y a un bug ouvert pour RHEL qui peut vous affecter aussi:

http://pecl.php.net/bugs/bug.php ? id = 16626

Avez-vous construit le paquet oci8-vous? Utilisez-vous un binaire tiers?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top