Tôi đã cài đặt máy chủ web Apache trên máy chủ Ubuntu 18.04 với nhiều máy chủ ảo được định cấu hình, tôi sử dụng các open_basedir khác nhau cho mỗi vhost, gần đây tôi phải thay đổi php7.2 bình thường thành php-fpm để có thể bật http2 do mpm_prefork không tương thích với http2 vì vậy tôi đã tắt nó và sử dụng mpm_event và php fast cgi. Vấn đề ở đây: Tôi đã phải chuyển cú pháp open_basedir từ:
php_admin_value open_basingir/đường dẫn
Theo cú pháp này:
SetEnv PHP_ADMIN_VALUE "open_basedir = /path"
Tôi nhận thấy cú pháp mới không hoạt động tốt, nhiều trang web bị hỏng, nhật ký lỗi apache cho thấy các trang bị hỏng phàn nàn về việc không được phép truy cập tệp, khiến tôi bị cài đặt dựa trên sai, chẳng hạn như các trang trên site1 sẽ không hoạt động vì chúng đường dẫn không được phép trong site2, một số chồng chéo đã xảy ra và tôi không biết cách khắc phục.
Nhật ký hiển thị một cái gì đó như:
[Thứ Tư ngày 25 tháng 8 18:18:29.814771 năm 2021] [proxy_fcgi:error] [pid 24671:tid
139761735845632] [máy khách xx.x.x.x:5539] AH01071: Gặp lỗi 'PHP
thông báo: Cảnh báo PHP: Không xác định: hạn chế open_basingir có hiệu lực.
Tệp (/var/www/site2/landing.php) không nằm trong (các) đường dẫn được phép:
(/var/www/site1/:/tmp/) trong thông báo 0PHP dòng Unknown: Cảnh báo PHP:
Không xác định: không thể mở luồng: Thao tác không được phép trong Không xác định trên
dòng 0Không thể mở tập lệnh chính: /var/www/site2/landing.php
(Không được phép vận hành)'