Tôi đang sử dụng cakephp để chạy một ứng dụng nhiều người thuê. Chỉ có 1 ví dụ của ứng dụng, sự khác biệt duy nhất là cơ sở dữ liệu mà mỗi ứng dụng kết nối. Ngoài ra, ứng dụng là giống hệt nhau.Cách ly bộ nhớ cache APC trong một thiết lập nhiều kích thước (cakephp)
thiết lập của tôi:
- Apache 2.2
- Php 5.3
- bánh 1.3.10
máy chủ 2K3 Win
Tôi có ứng dụng được triển khai dưới docroot apache (chỉ 1 phiên bản của ứng dụng đang chạy). Gần đây tôi đã chuyển từ Tệp thành bộ nhớ cache APC. Các tiền tố tệp để lưu vào bộ nhớ cache giống nhau cho cả hai ứng dụng. Sử dụng Apache Máy chủ ảo để quyết định ứng dụng nào sẽ đến. Tôi nhớ đệm tĩnh html/js/css/gif nhưng không php (thông qua mod_expires apache)
Vấn đề:
tôi nhận thấy rằng một số giá trị cache được nghĩa vụ phải được cung cấp cho APP 1 đã được hiển thị trong trình đơn thả xuống cho Ứng dụng 2.Tôi đã bị sốc khi thấy điều này xảy ra.
Tôi làm cách nào để thêm cách ly trong lớp bộ nhớ cache APC giữa các ứng dụng?
UPDATE: Vấn đề xảy ra ngay cả khi tôi tạo một bản sao mới của ứng dụng và đặt nó trong docroot riêng của mình !!!
UPDATE2
Kịch bản 1) 1 ví dụ mà có tất cả perm/comb
Nếu tôi có mã php như
if(client=="client1") {
$options = array(opt1,opt2);
}else if(client=="client2") {
$options = array(opt3,opt4);
}
và mã này được chia sẻ bởi cả khách hàng 1 và khách hàng 2, bộ nhớ đệm APC sẽ ảnh hưởng như thế nào đến điều này?
Kịch bản 2) 2 Ví dụ mỗi tùy chỉnh cho mỗi khách hàng
client1.php
$options = array(opt1,opt2);
client2.php
$options = array(opt3,opt4);
cách thực hiện điều này ảnh hưởng đến APC bộ nhớ cache? Nếu tôi hiểu đúng, đối với Kịch bản 1, có thể kết hợp dữ liệu client1 với khách hàng 2 (rất xấu) Đối với kịch bản 2, miễn là tôi sử dụng các khóa bộ nhớ cache khác nhau, tôi có chắc chắn không bao giờ có một bản mix không?
Cảm ơn memcache cho mỗi IP: ý tưởng cổng, tuy nhiên bộ nhớ cache opcode thì sao? – aks