PHP open_basedir là gì
Nó giới hạn các tệp có thể được truy cập bằng PHP ở mức được chỉ định
cây thư mục, bao gồm cả tệp. Chỉ thị này không phải
bị ảnh hưởng bằng cách bật hoặc tắt Chế độ an toàn.
Khi tập lệnh cố gắng truy cập hệ thống tệp, chẳng hạn như sử dụng
bao gồm hoặc fopen(), vị trí của tệp được chọn. Khi mà
tệp nằm ngoài cây thư mục đã chỉ định, PHP sẽ từ chối
Truy cập nó. Tất cả các liên kết tượng trưng đã được giải quyết, vì vậy không thể
tránh hạn chế này với một liên kết tượng trưng. Nếu tệp không tồn tại thì
liên kết tượng trưng không thể được giải quyết và tên tệp được so sánh với (a
đã giải quyết) open_basingir.
open_basedir có thể ảnh hưởng đến nhiều thứ hơn là chỉ các chức năng của hệ thống tập tin; vì
ví dụ nếu MySQL được cấu hình để sử dụng trình điều khiển mysqlnd, LOAD DATA
INFILE sẽ bị ảnh hưởng bởi open_basingir. Phần lớn mở rộng
chức năng của PHP sử dụng open_basingir theo cách này.
Giá trị đặc biệt. chỉ ra rằng thư mục làm việc của tập lệnh
sẽ được sử dụng làm thư mục cơ sở. Tuy nhiên, đây là một chút
nguy hiểm vì thư mục làm việc của tập lệnh có thể dễ dàng thay đổi
với chdir().
Trong httpd.conf, có thể tắt open_basedir (ví dụ: đối với một số ảo
hosts) giống như bất kỳ lệnh cấu hình nào khác với
"php_admin_value open_basingir không".
Trong Windows, tách các thư mục bằng dấu chấm phẩy. Trên tất cả các khác
system, hãy phân tách các thư mục bằng dấu hai chấm. Là một mô-đun Apache,
đường dẫn open_basingir từ thư mục mẹ giờ đây sẽ tự động
thừa hưởng.
Hạn chế được chỉ định với open_basingir là tên thư mục, không phải là
tiếp đầu ngữ.
Mặc định là cho phép mở tất cả các tệp.
Tham khảo PHP.NET, 1
Phần kết luận
Bạn đã sử dụng open_basingir và bạn chưa cập nhật đường dẫn.
Ngoài ra, tôi tin rằng bạn nên hỏi Câu hỏi này trên Superuser, vì bằng chứng cho tôi biết rằng bạn không sử dụng môi trường Liên quan đến Doanh nghiệp.
php.ini (trên Debian 10)
; open_basedir, nếu được đặt, giới hạn tất cả các hoạt động của tệp đối với thư mục đã xác định
; và dưới đây. Chỉ thị này có ý nghĩa nhất nếu được sử dụng trong mỗi thư mục
; hoặc tệp cấu hình máy chủ web per-virtualhost.
; Lưu ý: vô hiệu hóa bộ đệm realpath
; http://php.net/open-basedir
;open_basedir=
Ví dụ ở trên là cài đặt MẶC ĐỊNH trên Debian 10, cài đặt này thường cũng là cài đặt mặc định trên php.net. Điều đó có nghĩa là bạn đã thay đổi nó thủ công. Hoặc những gì tôi tin, vì tên đường dẫn bao gồm "panel_ssl_site" là tôi nghĩ bạn đang sử dụng Bảng điều khiển quản trị và điều này dẫn đến, Câu hỏi này chuyển sang NGOÀI CHỦ ĐỀ. Tuy nhiên, mọi bảng Quản trị cũng có thể thay đổi cài đặt này, Xem liên quan Tham khảo StackOverflow cho cùng một vấn đề