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