linux下php+oracle環境

來源:互聯網
上載者:User

挺麻煩的
記錄一下我的折騰過程
首先是php的編譯
在設定完oracle的環境變數以後
ORACLE_BASE=/opt/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0.1/db_1; export ORACLE_HOME
編譯php的時候加上
--with-oci8

後面的錯誤OCIEnvNlsCreate() failed 就是一個很麻煩的事
明明phpinfo()裡的oci8裡可以看到oracle_home
可偏偏在用的時候找不到
看了好多文檔 試了多次
最後我的方法

如果是10g
首先
chmod -R a+x 
$ORACLE_HOME
或者
chmod -R o+rx $ORACLE_HOME

再寫個測試
<?php
//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>";

?>

然後可以在3個地方輪著試試 添加環境變數

apachectl

apache使用者的bash

/etc/profile
直到不報
OCIEnvNlsCreate() failed 這個錯誤為止

參考文章
http://blog.cn-ic.org/?p=94

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.