PHP Oracle Config OCI8 Support หลังจากที่ได้ทำการติดตั้ง Oracle 9i เรียบร้อยแล้วต่อไปก็จะเป็นการ Config ให้ PHP รู้จักกับ Function Library ของ  Oracle ซึ่งผมเองก็ยอมรับเลยครับว่าไม่เคยเขียน PHP กับ Oracle มาก่อนนี้เลยครับ ปัญหาที่ผมเจอนั้นมีมายมายจริง ๆ  ครับ แต่ผมก็พยายามหาคำตอบจนสามารถแก้ปัญหาต่าง ๆ ได้อย่างครบถ้วน ซึ่งถ้าเพื่อนสมาชิกเจอปัญหาไม่สามารถใช้งาน PHP กับ Oracle ได้ ถ้ามาเจอบบทความนี้ก็ขอแสดงความยินดีด้วยครับ เพราะปัญหาเหล่านั้นสามารถแก้ไขได้ด้วยวิธีที่ผมจะแนะนำครับ
ปัญหาที่ผมเจอคือ
oci_connect()
Fatal error: Call to undefined function oci_connect() in C:\AppServ\www\myphp\phpOracleConnect.php on line 7
php_oci8.dll
PHP Warning:  PHP Startup: Unable to load dynamic library 'C:/AppServ\php5\ext\php_oci8.dll' - The specified 
procedure could not be found.\r\n in Unknown on line 0
OCIEnvNlsCreate
Warning: oci_connect() [function.oci-connect]: OCIEnvNlsCreate() failed. There is something wrong with 
your system - please check that PATH includes the directory with 
Oracle Instance Client libraries in C:\AppServ\www\myphp\phpOracleConnect.php on line 7
NLS_LANG
Warning: oci_connect() [function.oci-connect]: ORA-12705: Cannot access NLS data files or invalid environment 
specified in C:\AppServ\www\myphp\phpOracleConnect.php on line 7
เริ่มการ Config เลยน่ะครับ
1.Oracle Instance Client ดาวน์โหลดไฟล์ oraociei10.dll,orannzsbb10.dll,oci.dll ได้ที่
2.Copy .dll ทั้ง 3 ตัว หลังจากดาวน์โหลดแล้ว ผมให้ทำการ Copy
- oraociei10.dll
- orannzsbb10.dll
- oci.dll
ไว้ที่ C:\ociClient and C:\WINDOWS\system32
    
 
หลังจากที่ได้ Copy แล้วให้ทำการสร้างตัวแปร Environment  ดังนี้
คลิกขวาที่ My Computer -> Properties -> Tab Advanced -> Environment Variables
PATH = C:\ociClient
LD_LIBRARY_PATH = C:\ociClient
TNS_ADMIN = C:\ociClient
 
 
3.แก้ไข Registry ชื่อ NLS_LANG
ไปที่ Start -> Run -> Regedit -> HKEY_LOCAL_MACHINE -> SOFTWARE -> ORACLE -> NLS_LANG เมื่อหาเจอแล้วให้ทำการลบหรือทำให้ค่าเป็นว่าง (Delete or Nothing Value)
 
4. ติดตั้ง php_oci8.dll ดาวน์โหลดได้ที่    
ให้ทำการ Copy ไฟล์ php_oci8.dll ไปไว้ในโฟเดอร์ extension ของ php ซึ่งสามารถตรวจสอบได้ที่ php.ini
โดยไปที่ Start -> Run -> php.ini
 
ให้ Copy ไปไว้ใน C:\AppServ\php5\ext
      
และให้เทำการเปิด 
extension=php_oci8.dll
    
5.Restart Apache หรือ Web Server
  
และให้ใช้คำสั่ง
<?php
phpinfo();
?>
  
ก็จะพบว่าตอนนี้ php สามารถเรียกใช้งาน function oci8 ได้เต็มรูปแบบแล้วครับ
เพิ่มเติม Update 30-Jul-2011
จากการ config เพื่อให้ PHP สามารถรู้จักกับ function oci8 ถ้าไม่อยากให้ Set ยุ่งยาก คุณสามารถ Copy ไฟล์
- oraociei10.dll
- orannzsbb10.dll
- oci.dll
ไว้ใน C:\Windows\System32\
Oracle Server Tutorials
              
              
Reference : https://www.thaicreate.com/php-manual/ref.oci8.html