Tôi đang chạy nhiều ứng dụng PHP trên máy Mac, chạy OS X 10.5.6, Apache 2, PHP 5. Tôi có thiết lập tên miền phụ cho từng dự án, mục lưu trữ tệp cho từng miền phụ và khối Thư mục ảo trong cấu hình Apache. Vì vậy,Làm cách nào để giới hạn các ứng dụng PHP vào các thư mục của riêng chúng và php.ini của riêng chúng?
project1.localhost đi vào/Library/WebServer/Documents/Project1
project2.localhost đi vào/Library/WebServer/Documents/project2
vv ...
Tuy nhiên, phương pháp này không thực sự "cô lập" các ứng dụng web. Ví dụ: nếu tôi bao gồm một tập lệnh như vậy:
<?php
include("/includes/include.php");
?>
Nó tham chiếu tập lệnh từ thư mục cơ sở của máy tính của tôi. Vì vậy, nó truy cập
C: /includes/include.php
Có cách nào cho tôi để làm cho nó tham khảo
C: /Library/WebServer/Documents/Project2/includes/include.php
Về cơ bản , làm cho nó để nó không nhận thức được bất cứ điều gì bên ngoài thư mục riêng của nó. Ngoài ra, có cách nào để sử dụng php.ini trên một cơ sở cho mỗi tên miền phụ?
Ý bạn là gì theo "cách này bạn có thể tùy chỉnh open_basedir và những người khác". Open_basedir có phải là thiết lập INI không? –
có, và đó là lý do tại sao sử dụng 'php_admin_value open_basedir "/ path"' cũng hoạt động –