ขอความช่วยเหลือเรื่อง config Oracle TNS Listener ครับ

[size=“4”]ผมทำการติดตั้ง Oracle กับ perl ครับ

แล้วลอง connect Database ด้วย command line บนเครื่อง server พบว่า สามารถ connect และ query ได้ปกติดี

โค้ด

ผลลัพธ์ใน command line

แต่เมื่อเปิดด้วยเว็บบนเครื่อง client พบว่า ไม่สามารถเปิดได้

หน้าตา error ขึ้นว่า

เมื่อตรวสอบ apache error log พบ error log ของ apache ว่า[/size]

 ERROR OCIEnvNlsCreate. Check ORACLE_HOME (Linux) env var  or PATH (Windows) and or NLS settings, permissions, etc.

[size=“4”]

ดูที่ listener log ก็พบว่า ไม่เข้าเลย

จึงสงสัยว่าจะเป็นที่ tnsnames.ora กับ listener.ora

แต่ ผมไม่มีความรู้เรื่อง set TNS เลยครับ

จึงรบกวน ผู้มีความรู้ในนี้ ช่วยเรื่อง set TNS และ Listener เพื่อให้รองรับการใช้งานจาก เว็บไซต์ด้วยครับ

ขอบคุณครับ[/size]

============================ tnsnames.ora =============================================



XE =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = XE)

    )

  )



EXTPROC_CONNECTION_DATA =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))

    )

    (CONNECT_DATA =

      (SID = PLSExtProc)

      (PRESENTATION = RO)

    )

  )




============================ listener.ora ==============================================



SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (SID_NAME = PLSExtProc)

      (ORACLE_HOME = /usr/lib/oracle/xe/app/oracle/product/10.2.0/server)

      (PROGRAM = extproc)

    )

  )



LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))

      (ADDRESS = (PROTOCOL = TCP)(HOST = CentOra)(PORT = 1521))

    )

  )



DEFAULT_SERVICE_LISTENER = (XE)

ผมว่าเป็นที่ permission ของ file perl ไหมครับ ลอง chmod เป็น 777 แล้วลองดูหน่อยครับ

มันเหมือนกับกระทู้ก่อนหน้านี้ปล่าวครับ

อันเดียวกันครับ

แต่แก้ไปแก้มาเจอ error log เปลี่ยน

คิดว่า ชัดเจนมากขึ้น ปัญหาน่าจะมาจาก TNS and listener ครับ

เอาไฟล์ tnsnames.ora ไปวางไว้ตรงไหนนิครับ?

เรื่อง path หรือเปล่า ที่ทำให้เวลาเรียก test.pl จาก web มันหาไฟล์ tnsnames.ora ไม่เจอ เพราะว่า environment variable ของ web กับ shell มันไม่เหมือนกันนะครับ

ทางที่ดี ลอง su ให้เป็น user ที่ใช้ run web นี่ แล้วลอง execute test.pl อีกรอบครับ

หาเครื่องอื่นมาลอง connect ดูครับว่าได้ไหม

คุณยังไม่ได้ retrun http header ออกมาก่อน แบบนี้มันก็ต้อง error อยู่แล้วครับ

โอ ไม่ได้คิดถึงข้อนี้เลยนะนี่