linux下php+oracle環境

2012 ワード

私の苦労を記録するのは面倒ですまずphpのコンパイルはoracleの環境変数を設定した後でORACLE_BASE=/opt/oracle; export ORACLE_BASEORACLE_HOME=$ORACLE_BASE/product/10.2.0.1/db_1; export ORACLE_HOMEがphpをコンパイルするときに--with-oci 8の後のエラーOCIEnvNlsCreate() failed を加えるのは面倒なことだphpinfo()のoci 8にoracleが見えるのにhomeはあいにく使う时多くのドキュメントを见つけることができなくて何度も试みました最后に私の方法は10 gならまず
chmod -R a+x 
$ORACLE_HOME
chmod -R o+rx $ORACLE_HOMEは更にテストを書きます//PHP连接Oracle函数
function php_conn_ora(){
$username='your username';
$passwd='your password';
$protocol='TCP';
$SERVICE_NAME='you service_name or SID';
$ORACLE_SERVER_IP_ADDRESS='your oracle ip';
$Port='1521';
PutEnv("NLS_LANG=SIMPLIFIED CHINESE_CHINA.AL32UTF8");
if(!$conn = oci_pconnect($username, $passwd, "(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = $protocol)(HOST = $ORACLE_SERVER_IP_ADDRESS)(PORT = $Port)) ) (CONNECT_DATA = (SERVICE_NAME = $SERVICE_NAME) ) )")) echo("Error in Connecting to DataBase");
return $conn;
}
//Query 函数
function ora_query($sql){
global $conn_ora;
$result=oci_parse($conn_ora,$sql);
oci_execute($result,OCI_DEFAULT);
return $result;
}
//Echo 环境变量
$ORACLE_HOME = getenv("ORACLE_HOME");
echo "ORACLE_HOME=$ORACLE_HOME
/n";
$LD_LIBRARY_PATH = getenv("LD_LIBRARY_PATH");
echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH
/n";
$PATH = getenv("PATH");
echo "PATH=$PATH
/n";
//连接测试
$conn_ora=php_conn_ora();
$sql="select * from sometable where rownum<=2";
$result=ora_query($sql);
oci_fetch_all($result,$array);
echo "<pre>";
var_dump($array);
echo "</pre>"; ?>次に、環境変数apachectlapacheユーザのbash/etc/profileをOCIEnvNlsCreate() failed


http://blog.cn-ic.org/?p=94に報告しないまで3つの場所で順番に追加してみることができます.