Подключение из PHP к базе данных Oracle с помощью Oracle Wallet - PullRequest
0 голосов
/ 25 августа 2011

Можно ли настроить PHP для использования безопасного внешнего хранилища паролей, как описано в http://download.oracle.com/docs/cd/B19306_01/network.102/b14266/cnctslsh.htm?

1 Ответ

2 голосов
/ 25 июля 2012

Да, это возможно, вам нужно:
1 - создать кошелек (как объяснено в вашей ссылке)
2 - поместить сервер Oracle Instant и файлы кошелька где-нибудь на сервер с Apache + PHP (например, / opt / instantclient и / opt / wallet)
3 - запустить Apache со следующими переменными:

ORACLE_HOME=/opt/instantclient   
LD_LIBRARY_PATH=/opt/instantclient   
TNS_ADMIN=/opt/wallet  

4 - В / opt / wallet создайте файлы tnsnames.ora с таким содержимым:

WALLET_NAME =  
  (DESCRIPTION =  
    (ADDRESS = (PROTOCOL = TCP)(HOST = DB_IP)(PORT = DB_PORT))    
    (CONNECT_DATA = (SID = DB_SID))    
  )   

где WALLET_NAME - это имя кошелька, выбранного при создании кошелька, DB_IP - это IP-адрес базы данных или имя хоста, DB_PORT - это порт db, а DB_SID - это sid базы данных.
5 - В / opt / wallet создайте файлы sqlnet.ora с таким содержимым:

WALLET_LOCATION =    
   (SOURCE =     
     (METHOD = FILE)     
     (METHOD_DATA =     
       (DIRECTORY = /opt/wallet)     
     )      
    )     

SQLNET.WALLET_OVERRIDE = TRUE  

6 - перезапустить Apache

На стороне кода PHP теперь вы можете подключиться к базе данных, открыв соединение со следующим кодом:

$conn = oci_connect("/", "", "WALLET_NAME", null, OCI_CRED_EXT);

в противном случае вы можете использовать oci_pconnect для постоянных соединений и тот же синтаксис
Надеюсь, это поможет, и я ничего не забыл

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...