oci_connect() ne fonctionne qu'à partir de la ligne de commande

OK, donc j'ai ce problème terrible avec bec, apache, php et suse. Tout d'abord, les versions:

PHP 5.3.15 (cli)
Apache/2.2.22 (Linux/SUSE)
OCI8 1.4.9
SUSE 12.2 32 bit
Oracle client 10.2.0.4

Problème

J'ai vraiment simple fichier php:

<?php
    error_reporting(E_ALL);
    ini_set('display_errors', '1');
    oci_connect('user', 'passwd', 'host/sid');
?>

Quand je le lance en ligne de commande, il exécute amende:

machine:~ # php oci.php
machine:~ #

Mais lorsque je l'exécute dans le navigateur, il me donne:

Warning: oci_connect() [function.oci-connect]: OCIEnvNlsCreate() failed. There is something wrong with your system - please check that ORACLE_HOME and LD_LIBRARY_PATH are set and point to the right directories

De configuration d'Apache

J'ai été aux prises avec ce problème pour un certain temps maintenant, et je suis sûr que mon apache configuration est correcte.

Je exporter toutes les variables requises avant tout processus apache est lancé - je ajouté

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/oracle/home/lib; export LD_LIBRARY_PATH
ORACLE_HOME=/path/to/oracle/home; export ORACLE_HOME
TNS_ADMIN=/path/to/oracle/home/network/admin; export TNS_ADMIN
NLS_LANG=POLISH_POLAND.EE8MSWIN1250; export NLS_LANG

au début de /etc/init.d/apache2 script (démarrage d'apache par /etc/init.d/apache2 start).

Apache s'exécute à partir de wwwrun de l'utilisateur, qui est en oinstall et dba groupes:

machine:~ # cat /etc/apache2/uid.conf
User wwwrun
Group www
machine:~ # id wwwrun
uid=30(wwwrun) gid=8(www) groups=8(www),113(oinstall),114(dba)
machine:~ # l $ORACLE_HOME
total 216
drwxr-xr-x 48 oracle oinstall 4096 Jan 25 17:07 ./
drwxrwxr-x  3 oracle oinstall 4096 Jan 25 17:01 ../
...
machine:~ #

Problème Possible

Je n'ai pas toutes les variables d'environnement dans Environment section dans phpinfo(); de sortie - ce que cela pourrait être le problème? Si oui, comment puis-je résoudre ce problème? Est-il une sorte de problème de sécurité? J'ai lu sur des problèmes comme ça avec SELinux est activé, mais je ne l'ai pas, mon pare-feu est désactivé.

Solution?

Toute aide serait grandement appréciée!

InformationsquelleAutor maialithar | 2013-01-30