2012-12-20 21 views
6

Tôi đã cài đặt APC PHP trong máy chủ của mình. PHPinfo đang hiển thị nó. Nhưng chỉ có một câu hỏi là tôi hơi bối rối ...APC hoạt động trong php

các yêu cầu PHP mới đến máy chủ sẽ bắt đầu sử dụng APC tự động hay mã php cũng cần được sửa đổi để sử dụng APC? Bạn có thể vui lòng cung cấp một số manh mối.

Cảm ơn

+0

tôi đã nhìn thấy một số tốc độ tăng khiêm tốn chỉ bằng cách cài đặt mô-đun cho các yêu cầu trang đơn giản và số tiền chuyển/giây. Nhưng bạn sẽ không biết chắc chắn trừ khi bạn làm một số xét nghiệm có và không có. Kiểm tra tiện ích Apache Bench http://httpd.apache.org/docs/2.0/programs/ab.html Bạn cũng có thể lưu vào bộ nhớ cache bằng tay ... http://php.net/manual/en/ book.apc.php – antman

Trả lời

0

Nếu apc hiện diện, nó sẽ được sử dụng. Trừ khi giá trị mặc định của apc.enabled là False, hãy kiểm tra nó trong phpinfo.

Nếu cài đặt được bật là OK, việc sử dụng apc đầu tiên sẽ là opcode tho. Lưu trữ một phiên bản "biên dịch" của tập lệnh php của bạn. Bây giờ hành vi này có thể được cải thiện rất nhiều bằng cách bật một số cài đặt của apc (như tránh kiểm tra các sửa đổi mã nguồn ở mỗi truy cập tệp).

Ngoài ra còn có một chức năng lớn thứ hai trong APC đang sử dụng nó như là một lưu trữ persitence/cacche cho ứng dụng của bạn. Nhưng những điều này cần các hướng dẫn ứng dụng cụ thể trong ứng dụng của bạn 'như thể bạn đang sử dụng một cơ sở dữ liệu. Kiểm tra these functions.

Để thực sự kích hoạt APC tối ưu hóa, bạn nên xem xét tất cả cài đặt APC. apc.shm_sizeapc.shm_segments là hữu ích nhất để kiểm tra cài đặt cho kích thước bộ nhớ APC và được chia sẻ cho tất cả các bậc thầy. Nhưng sau khi thiết lập các vấn đề cơ bản ở đây là một số thứ bạn nên kiểm tra cho virtualhost/application (nơi bạn sẽ sử dụng lệnh php_value) - hoặc trong php.ini-- toàn cục, đây là trích xuất cấu hình sản xuất:

Lưu ý rằng bạn nên hiểu mỗi thiết lập kích hoạt và read the documentation, nếu không bạn sẽ kết thúc trong mất giờ phát triển như mã nguồn của bạn những thay đổi sẽ không được đọc bởi php

# Activate apc 
apc.enabled =1 
# Optimisation of include/require_once calls 
apc.include_once_override =1 
# transform paths in absolute ones (no effect if apc.stat is not 0), 
# files from stream wrappers (extended includes) 
# won't be cached if this is activated as they cannot be used with php's realpath() 
apc.canonicalize =1 
# In production set it to 0, then file changes won't be observed before 
# apache is restarted, 
# significant boost, else file time is stated at each access (needed at 1 in dev) 
apc.stat =0 
# avoid problems with rsync or svn not modifying mtime but only ctime 
# so if you're in production set this to 0, like for the previous one 
apc.stat_ctime =0 

# deprecated option: apc.optimization not available anymore 
# apc.optimization =0 

# inform apc on number of files of the application 
apc.num_files_hint =2000 

# inform apc on the number of cache variables 
apc.user_entries_hint =100 

# cache lifetime managmenent ---------------- 
# time (s) we can stay on the cache even when the cache is full -- Cache full count -- 
# that means Garbage Collector is never inactivating theses datas before this time is over 
# >0 -> old data could stay in the cache while new data want's to come, if no data is deprecated 
# 7200 -> entries older than 2 hours will be thrown to make some place 
# 0 -> emptying full cache when full 
apc.ttl =0 
apc.user_ttl =0 
# this one is the same but you should note this this prevent Garbage collecting 
# after each source change. 
apc.gc_ttl =0 

# What to cache ? ---------------------------- 
# could be used to prevent some caching on specific files 
# but it's better to cache often used files, isn't it? at least in production 
#apc.filters ="-config.php-.ini" 
# default to 1M, files bigger than that won't be cached 
apc.max_file_size ="5M" 

# various things ------------------------------- 
# only one process caching a same file (beter than apc.slam_defense) 
php_fla apc.write_lock =1 
# prevents caching half written files (by cp for example) by waiting x seconds 
# for new files caching. set it to 0 if using only rsync or mv 
apc.file_update_protection =2 
# newest versions of APC only 
# adding a lazy loading capabilities, so you can parse a lot of files 
# and only used things are cached 
#apc.lazy_functions =1 
#apc.lazy_classes =1 
2

PHP sẽ tự động sử dụng nó. Bạn không cần phải thay đổi mã của mình để sử dụng bộ tăng tốc bộ nhớ đệm.

1

APC đang chạy tự động. Module chạy mã của bạn và chuyển nó sang bytecode. Khi bạn gọi lại tập lệnh, máy chủ web của bạn không chạy lại tập lệnh thay vì thực thi mã bytecode.

Nếu bạn có nhiều lưu lượng truy cập, nó sẽ tiết kiệm rất nhiều hiệu suất.

Chức năng thứ hai là bạn có thể lưu các giá trị trong bộ nhớ dùng chung từ APC nếu muốn. Đối với điều này, bạn nên đọc tài liệu.

http://php.net/manual/de/book.apc.php