ฉันติดตั้งเว็บเซิร์ฟเวอร์ Apache บนเซิร์ฟเวอร์ Ubuntu ของฉัน 18.04 โดยมีการกำหนดค่าโฮสต์เสมือนจำนวนมาก ฉันใช้ open_baseir ที่แตกต่างกันสำหรับแต่ละ vhost เมื่อเร็ว ๆ นี้ฉันต้องเปลี่ยน php7.2 ปกติเป็น php-fpm เพื่อให้สามารถเปิดใช้งาน http2 ได้เนื่องจาก mpm_prefork ไม่เข้ากัน ด้วย http2 ดังนั้นฉันจึงปิดการใช้งานและใช้ mpm_event และ php fast cgi ประเด็นที่นี่: ฉันต้องเปลี่ยน open_baseir ไวยากรณ์จาก:
php_admin_value open_baseir /path
ไวยากรณ์นี้:
SetEnv PHP_ADMIN_VALUE "open_basedir = /เส้นทาง"
ฉันสังเกตเห็นว่าไวยากรณ์ใหม่ทำงานได้ไม่ดี เว็บไซต์หลายแห่งใช้งานไม่ได้ บันทึกข้อผิดพลาดของ apache แสดงให้เห็นว่าหน้าที่เสียหายบ่นว่าไม่ได้รับอนุญาตให้เข้าถึงไฟล์ อ้างอิงถึงการตั้งค่าที่ไม่ถูกต้อง เช่น หน้าในไซต์ 1 ไม่ทำงานเนื่องจากพวกเขา เส้นทางไม่ได้รับอนุญาตในไซต์ 2 มีการทับซ้อนกันและฉันไม่แน่ใจว่าจะแก้ไขได้อย่างไร
บันทึกแสดงบางอย่างเช่น:
[วันพุธที่ 25 ส.ค. 18:18:29.814771 2021] [proxy_fcgi:ข้อผิดพลาด] [pid 24671:tid
139761735845632] [ไคลเอนต์ xx.x.x.x:5539] AH01071: มีข้อผิดพลาด 'PHP
ข้อความ: คำเตือน PHP: ไม่รู้จัก: ข้อ จำกัด ของ open_basedir มีผลบังคับใช้
ไฟล์ (/var/www/site2/landing.php) ไม่อยู่ในเส้นทางที่อนุญาต:
(/var/www/site1/:/tmp/) ในข้อความ Unknown on line 0PHP: คำเตือน PHP:
ไม่รู้จัก: ไม่สามารถเปิดสตรีม: การดำเนินการไม่ได้รับอนุญาตใน Unknown on
บรรทัด 0ไม่สามารถเปิดสคริปต์หลัก: /var/www/site2/landing.php
(ไม่อนุญาตให้ดำเนินการ)'