ฉันมีสภาพแวดล้อม CentOS ที่ทำงานในฐานะแขกของ VM มันทำงานและฐานข้อมูล Oracle 12.1 พร้อมกับ PHP 5.4.16 บน Apache 2.0
ฉันได้ทำตามขั้นตอนการติดตั้งเพื่อให้แน่ใจว่ามีการติดตั้งไดรเวอร์ OCI ที่ถูกต้อง ผมใช้รุ่น 2.0.10 ตามคำสั่งที่นี่: นี่ >>$ORACLE_HOME
และชี้ไปทางที่ถูกต้อง
ตามที่คุณเห็นจากphpinfo()
หน้าจอส่วนขยาย oci จะโหลดจากไดเรกทอรีส่วนขยาย:
อย่างไรก็ตามไม่มีรายการ OCI8 ที่สอดคล้องกันในส่วนที่เหลือของphpinfo()
หน้า (ตามที่อธิบายไว้ที่นี่ >> )
เนื้อหาของ/etc/php.d/oci8.ini
เป็นดังนี้:
; Created by me: 2016-02-08
extension=oci8.so
ไดเรกทอรีส่วนขยายของฉันคือ:
และไฟล์ในไดเรกทอรีนี้ดูเหมือนจะถูกต้องเกี่ยวกับสิทธิ์และบริบทของ SELinux (ตามที่คุณเห็นที่นี่):
เมื่อฉันโหลดindex.php
ไฟล์ของฉันในเบราว์เซอร์ดูเหมือนว่าการโหลดส่วนใหญ่จะประสบความสำเร็จยกเว้นว่าการอ้างอิงใด ๆ กับรหัส OCI (ตัวแปรค่าคงที่ฟังก์ชั่น) มีข้อผิดพลาด (ความหมายแน่นอนว่าส่วนขยายไม่ได้ลงทะเบียนภายใน PHP):
ใครบ้างมีความคิดเกี่ยวกับสิ่งที่ฉันควรทำเพื่อลงทะเบียนส่วนขยาย OCI8 ภายใน PHP อย่างถูกต้องหรือไม่
=== แก้ไข / แก้ไข? ===
ฉันปิด SELinux ( ดูวิธีการนี้ ) และทันใดนั้น OCI ก็ดูเหมือนจะทำงานได้ มันไม่ได้เป็นโซลูชั่นที่สมบูรณ์แบบไม่ว่าด้วยวิธีใดเนื่องจากจะทำให้ระบบปฏิบัติการทั้งหมดมีความเสี่ยงมากขึ้น แต่มันจะทำเพื่อความต้องการของฉันในขณะนี้
ในทางกลับกันถ้าใครรู้วิธีเปิดใช้งาน SELinux และให้มันทำงานกับ OCI8 ความคิดเห็นของคุณจะได้รับการชื่นชมมาก!