Tôi cần xóa tất cả các mục bộ đệm APC khi tôi triển khai một phiên bản mới của trang web. APC.php có một nút để xóa tất cả bộ đệm opcode, nhưng tôi không thấy các nút để xóa tất cả các mục nhập của người dùng hoặc tất cả các mục hệ thống hoặc tất cả các mục nhập theo thư mục. Có thể xóa tất cả các mục bộ đệm thông qua dòng lệnh, hoặc một số cách khác? Câu trả lời: Bạn có thể sử dụng hàm PHP Gọi Tôi không tin bất kỳ câu trả lời nào trong số này thực sự hoạt động để xóa bộ đệm APC khỏi dòng lệnh. Như Frank Farmer đã nhận xét ở trên, CLI chạy trong một quy trình tách biệt với Apache. Giải pháp của tôi để xóa khỏi dòng lệnh là viết một tập lệnh sao chép tập lệnh xóa APC vào
Tôi biết nó không dành cho tất cả mọi người nhưng: tại sao không thực hiện khởi động lại Apache duyên dáng? Ví dụ: trong trường hợp của Centos / RedHat Linux:
Ubuntu:
Điều này không được nêu trong tài liệu, nhưng để xóa bộ đệm opcode bạn phải làm:
EDIT: Điều này dường như chỉ áp dụng cho một số phiên bản cũ hơn của APC .. Cho dù bạn đang sử dụng phiên bản nào, bạn cũng không thể xóa bộ đệm APC mod_php hoặc fastcgi khỏi tập lệnh php cli vì tập lệnh cli sẽ chạy từ một quy trình khác như mod_php hoặc fastcgi. Bạn phải gọi apc_clear_cache () từ bên trong tiến trình (hoặc tiến trình con) mà bạn muốn xóa bộ đệm cho. Sử dụng curl để chạy một tập lệnh php đơn giản là một cách tiếp cận như vậy. Nếu bạn muốn xóa bộ nhớ cache apc trong lệnh: (sử dụng sudo nếu bạn cần) APCu
APC
Nếu bạn đang chạy trên ngăn xếp NGINX / PHP-FPM, cách tốt nhất của bạn là có thể chỉ cần tải lại php-fpm
Như được định nghĩa trong Tài liệu APC: Để xóa bộ nhớ cache chạy:
Một khả năng khác cho việc sử dụng dòng lệnh, chưa được đề cập, là sử dụng curl. Điều này không giải quyết vấn đề của bạn cho tất cả các mục trong bộ đệm nếu bạn đang sử dụng tập lệnh stock apc.php, nhưng nó có thể gọi một tập lệnh phù hợp hoặc tập lệnh khác mà bạn đã đặt. Điều này xóa bộ nhớ cache opcode:
Thay đổi tham số OB thành 3 để xóa bộ đệm người dùng:
Đặt cả hai dòng trong một tập lệnh và gọi nó với $ PASSWORD trong env của bạn. Nếu bạn muốn theo dõi kết quả qua json, bạn có thể sử dụng loại tập lệnh này:
Như đã đề cập trong các câu trả lời khác, tập lệnh này sẽ phải được gọi qua http hoặc curl và bạn sẽ phải được bảo mật nếu nó được hiển thị trong thư mục gốc của ứng dụng. (bằng ip, mã thông báo ...) apc_clear_cache () chỉ hoạt động trên cùng một php SAPI mà bạn muốn xóa bộ nhớ cache. Nếu bạn có PHP-FPM và muốn xóa bộ đệm apc, bạn đã thực hiện thông qua một trong các tập lệnh php, KHÔNG phải dòng lệnh, vì hai bộ đệm được tách ra. Tôi đã viết CacheTool , một công cụ dòng lệnh giải quyết chính xác vấn đề này và với một lệnh bạn có thể xóa bộ đệm APC PHP-FPM khỏi dòng lệnh (nó kết nối với php-fpm cho bạn và thực thi các hàm apc) Nó cũng hoạt động cho opcache. Xem cách thức hoạt động tại đây: http://gordalina.github.io/cachetool/ Tính ổn định của APC đang có tùy chọn xóa bộ nhớ cache trong chính giao diện của nó. Để xóa các mục đó, bạn phải đăng nhập vào giao diện apc. APC đang có tùy chọn để đặt tên người dùng và mật khẩu trong tệp apc.php. nếu bạn chạy fpm trong ubfox, cần chạy mã bên dưới (kiểm tra vào ngày 12 và 14)
apc.ini apc.stat = "1" sẽ buộc APC thống kê (kiểm tra) tập lệnh trên mỗi yêu cầu để xác định xem nó đã được sửa đổi chưa. Nếu nó đã được sửa đổi, nó sẽ biên dịch lại và lưu trữ phiên bản mới. Nếu cài đặt này bị tắt, APC sẽ không kiểm tra, điều này thường có nghĩa là để buộc APC kiểm tra lại các tệp, máy chủ web sẽ phải được khởi động lại hoặc bộ đệm sẽ phải được xóa thủ công. Lưu ý rằng cấu hình máy chủ web FastCGI có thể không xóa bộ nhớ cache khi khởi động lại. Trên một máy chủ sản xuất nơi các tệp tập lệnh hiếm khi thay đổi, có thể đạt được mức tăng hiệu suất đáng kể nhờ các số liệu thống kê bị vô hiệu hóa. Giao diện quản trị APC mới có các tùy chọn để thêm / xóa bộ đệm người dùng và bộ đệm opcode, Một chức năng thú vị là thêm / làm mới / xóa thư mục khỏi opCode Cache Tài liệu quản trị APC Một giải pháp tốt cho tôi là chỉ đơn giản là không sử dụng bộ đệm người dùng đã lỗi thời nữa sau khi triển khai. Nếu bạn thêm tiền tố vào mỗi khóa, bạn có thể thay đổi tiền tố khi thay đổi cấu trúc dữ liệu của các mục lưu trữ. Điều này sẽ giúp bạn có được các hành vi sau khi triển khai:
Điều này chỉ có thể cho bộ nhớ cache của người dùng. Tạo tập tin APC.php
Chạy nó từ trình duyệt của bạn. Công việc xây dựng Symfony của tôi có rất nhiều phiên bản tại cùng một máy chủ: Bước 1. Tạo trình kích hoạt hoặc một cái gì đó để đặt cờ tệp (ví dụ: lệnh Symfony) sau đó tạo
Bước 2. Trên tệp chỉ mục khi bắt đầu thêm mã xóa và xóa
Bước 2. Chạy ứng dụng. Chúng tôi đã gặp sự cố với APC và liên kết tượng trưng đến liên kết tượng trưng đến tệp - dường như bỏ qua các thay đổi trong chính tệp. Bằng cách nào đó thực hiện liên lạc trên các tập tin chính nó đã giúp. Tôi không thể biết sự khác biệt giữa sửa đổi tệp và chạm vào tệp, nhưng bằng cách nào đó, điều đó là cần thiết ... |