Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php OCI8-如果未在脚本中显式设置TNS_管理环境变量,则oci_connect将失败_Php_Oracle Call Interface_Oci8 - Fatal编程技术网

Php OCI8-如果未在脚本中显式设置TNS_管理环境变量,则oci_connect将失败

Php OCI8-如果未在脚本中显式设置TNS_管理环境变量,则oci_connect将失败,php,oracle-call-interface,oci8,Php,Oracle Call Interface,Oci8,到目前为止,在openSUSE 13.1上安装的PHP5和OCI8运行良好。当我试图在Apache上运行*.php,通过tnsnames.ora文件连接到oracle数据库时,我得到了ora-12154。当我添加行时 putenv("TNS_ADMIN=/usr/lib/oracle/12.1/client"); 一切正常。我查看了phpinfo()并在搜索TNS_ADMIN时得到了3个马赫数: APACHE ENVIRONMENT: TNS_ADMIN /usr/lib/

到目前为止,在openSUSE 13.1上安装的PHP5和OCI8运行良好。当我试图在Apache上运行*.php,通过tnsnames.ora文件连接到oracle数据库时,我得到了ora-12154。当我添加行时

putenv("TNS_ADMIN=/usr/lib/oracle/12.1/client");
一切正常。我查看了phpinfo()并在搜索TNS_ADMIN时得到了3个马赫数:

APACHE ENVIRONMENT: TNS_ADMIN           /usr/lib/oracle/12.1/client
PHP VARIABLES:      _SERVER["TNS_ADMIN"]    /usr/lib/oracle/12.1/client
APACHE ENVIRONMENT: TNS_ADMIN           /usr/lib/oracle/12.1/client
(是的,我在phpinfo()上使用了两次Apache环境,不知道这是否正确。)

谁能帮我让PHP使用这个变量。。。我不想在每个脚本中都使用putenv命令。。。当在机器上本地使用php script.php时,我没有问题,也不必设置这个TNS_ADMIN。。。奇怪,我想


有什么想法吗

检查在生产环境中运行PHP的用户帐户。很可能它没有设置ORACLE_HOME或TNS_ADMIN环境变量。我建议您切换到使用该方法。它完全消除了处理TNSNAMES.ORA文件的麻烦。