Pour rémi :
Comme tu as vu, j'ai forcé dans le code php les varaibles d'environnement, et j'obtiens un warning. D'apres ce que j'ai pu lire, ce n'est pas une bonne méthode car il faut que les varaibles d'environnement soit fixéees avant que le processus apache soit lancé :
Problem Description
-------------------
When using the OCILogon function in PHP to connect to an ORACLE server you
may get, "Warning: _oci_open_server: ORA-12154: TNS:could not resolve
service name in file.php on line xx "
Solution Description
--------------------
Oracle-related environment variables must be set *before* you start the
apache process! Do not use SetEnv in httpd.conf not PutEnv() in your
php-script to set eny of those.
The problem can also be worked around by using the entire entry from
tnsnames.ora instead of just the ALIAS in your connect function, for example:
$db = "(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = db.ip.address)(PORT = db.port)) )
(CONNECT_DATA = (SID = MEZZITEST) ) )";
$con = OCILogOn("officina", "officina",$db);
Explanation
-----------
PHP Bug
ID: 4307
Status: Closed
Bug Type: Oracle related
J'ai donc areté mon service apache. J'ai remis pour la 10000000000000000000 eme fois les variables d'environnement 😉 en root. J'ai enlevé le code qui mettait ces meme variables dans mon code php, par contre, j'ai laissé le code avec les "getenv("ORACLE_HOME")".
J'ai en fait laissé : readfile( getenv("ORACLE_HOME")."/network/admin/tnsnames.ora" );
J'ai ensuite relancé mon processus php.
Et la ....
:-D il me dit que le fichier n'existe pas, et il dit qu'il va le chercher à la raciune du site, c'est donc que la variable "ORACLE_HOME" ne contient rien, et donc, que j'ai beau faire des export, le procesus apache ne les voit pas. Il n'y a pas de bash_profile pour l'utilisateur apache. comment dois-je faire ?
J'ai vu que mon user apache a pour repertorie perso :/var/www et comme shell de connexion : /sbin/nologin.
Je peux faire des chose de ce coté ?