APC(Alternative PHP Cache)는 무료이며 공개적으로 최적화된 PHP용 코드 캐시입니다. 이는 PHP 중간 코드를 캐싱하고 최적화하기 위한 강력한 개방형 무료 프레임워크를 제공하는 데 사용됩니다.
APC의 공식 웹사이트는 http://pecl.php.net/package/apc 입니다.
Windows의경우
확장 모듈 다운로드 주소는 http://www.sitebuddy.com/php/accelerators/apc_windows_binaries_builds입니다.
c:tmp 디렉터리가 필요하며 해당 디렉터리는 웹 서버 프로세스에서 쓸 수 있어야 합니다.
1.PHP 확장으로
설치
2.
apc.enabled 부울
apc.optimization 최적화
옵션을 구성합니다.
PHP.ini 구성 옵션에 대한 자세한 설명
[APC]
대체 PHP 캐시는 PHP 중간을 캐시하고 최적화하는 데 사용됩니다
.code
apc.cache_by_default = On
;SYS
; 기본적으로 모든 파일에 대해 버퍼링을 활성화할지 여부.
; Off로 설정하고 더하기 기호로 시작하는 apc.filters 지시문과 함께 사용하면 파일은 필터와 일치하는 경우에만 캐시됩니다.
apc.enable_cli = Off
;SYS
; CLI 버전에 대해 APC 기능을 활성화할지 여부는 테스트 및 디버깅 목적으로만 이 명령을 활성화합니다.
apc.enabled = On
; APC를 활성화할지 여부. APC가 PHP로 정적으로 컴파일되어 이를 비활성화하려는 경우 이것이 유일한 방법입니다.
apc.file_update_protection = 2
;SYS
; 실행 중인 서버에서 파일을 수정할 때는 원자성 작업을 수행해야 합니다.
; 즉, 먼저 임시 파일에 쓴 다음 파일 이름을 최종 이름으로 변경(mv)합니다.
; cp 및 tar와 같은 텍스트 편집기 및 프로그램은 이러한 방식으로 작동하지 않으므로 불완전한 파일을 버퍼링할 가능성이 있습니다.
; 기본값 2는 파일에 액세스할 때 수정 시간이 액세스 시간보다 2초 미만인 것으로 확인되면 버퍼링이 수행되지 않음을 의미합니다.
; 불운한 방문자는 콘텐츠가 손상될 수 있지만 캐싱으로 인해 나쁜 영향이 증폭되지는 않습니다.
; 모든 업데이트 작업이 원자적으로 이루어지도록 보장할 수 있으면 0으로 이 기능을 끌 수 있습니다.
; 과도한 IO 작업으로 인해 시스템 업데이트가 느리게 진행되는 경우 이 값을 늘려야 할 수도 있습니다.
apc.filters =
;SYS
; 쉼표로 구분된 POSIX 확장 정규식 목록입니다.
; 소스 파일 이름이 패턴과 일치하면 파일이 캐시되지 않습니다.
; 일치하는 데 사용되는 파일 이름은 절대 경로가 아니라 포함/요구에 전달된 파일 이름입니다.
; 정규식의 첫 번째 문자가 "+"이면 해당 표현식과 일치하는 모든 파일이 캐시된다는 의미입니다.
; 첫 번째 문자가 "-"이면 일치하는 항목이 캐시되지 않습니다. "-"는 기본값이며 생략 가능합니다.
apc.ttl = 0
;SYS
; 캐시 항목이 버퍼에 머무를 수 있는 시간(초)입니다. 0은 시간 초과가 발생하지 않음을 의미합니다. 권장값은 7200~36000입니다.
; 0으로 설정하면 버퍼가 이전 캐시 항목으로 채워져 새 항목이 캐시되지 않을 수 있습니다.
apc.user_ttl = 0
;SYS
; apc.ttl과 유사하지만 각 사용자에 대해 권장되는 값은 7200~36000입니다.
; 0으로 설정하면 버퍼가 이전 캐시 항목으로 채워져 새 항목이 캐시되지 않을 수 있습니다.
apc.gc_ttl = 3600
;SYS
; 캐시 항목이 가비지 수집 테이블에 존재할 수 있는 시간(초)입니다.
; 이 값은 캐시된 소스 파일을 실행하는 동안 서버 프로세스가 충돌하고
소스 파일이 수정된 경우에도 이 TTL 값에 도달할 때까지 이전 버전에 할당된 메모리를 회수하지 않도록 안전 조치를 제공합니다.
; 이 기능을 비활성화하려면 0으로 설정하세요.
apc.include_once_override = 꺼짐
;SYS
; 꺼진 상태로 유지하세요. 그렇지 않으면 예상치 못한 결과가 발생할 수 있습니다.
apc.max_file_size = 1M
;SYS
; 이 크기보다 큰 파일이 캐시되지 않도록 합니다.
apc.mmap_file_mask =
;
--enable-mmap을 사용하여 APC용으로 MMAP 지원을 컴파일한 경우(기본적으로 활성화됨),
여기서 값은 mmap 모듈에 전달된 mktemp 스타일 파일 마스크입니다(권장 값은 "/tmp"). /apc.XXXXXX").
; 이 마스크는 메모리 매핑된 영역이 파일 기반인지 공유 메모리 기반인지 결정하는 데 사용됩니다.
; 직접 파일 기반 메모리 매핑의 경우 "/tmp/apc.XXXXXX"(정확히 6개의 X)로 설정합니다.
; POSIX 스타일 shm_open/mmap을 사용하려면 "/apc.shm.XXXXXX"로 설정해야 합니다.
; 익명으로 매핑된 메모리에 대해 커널의 "/dev/zero" 인터페이스를 사용하려면 "/dev/zero"로 설정할 수도 있습니다.
; 이 지시문을 정의하지 않으면 익명 매핑이 사용됩니다.
apc.num_files_hint = 1000
; SYS
; 웹 서버에 포함되거나 요청될 수 있는 대략적인 소스 파일 수(권장 값은 1024~4096).
; 확실하지 않은 경우 0으로 설정하세요. 이 설정은 주로 수천 개의 소스 파일이 있는 사이트에 사용됩니다.
apc.optimization = 0
; 최적화 수준(권장 값은 0)
; 양의 정수 값은 더 공격적인 최적화를 사용하여 더 높은 값으로 최적화 프로그램을 활성화합니다.
; 값이 높을수록 속도 향상이 매우 제한될 수 있지만 현재는 실험적입니다.
apc.report_autofilter = Off
;SYS
; 초기/늦은 바인딩으로 인해 자동으로 캐시되지 않은 모든 스크립트를 기록할지 여부.
apc.shm_segments = 1
;SYS
; 컴파일러 버퍼에 할당된 공유 메모리 블록 수(권장 값은 1).
; APC에 공유 메모리가 부족하고 apc.shm_size 지시어가 시스템에서 허용하는 최대값으로 설정된 경우
이 값을 늘려볼 수 있습니다.
apc.shm_size = 30
; SYS
; 각 공유 메모리 블록의 크기(MB 단위, 권장 값은 128~256)
; 일부 시스템(대부분의 BSD 변형 포함)은 기본 공유 메모리 블록 크기가 매우 작습니다.
apc.slam_defense = 0
;SYS (이 명령어의 사용에 반대하므로 apc.write_lock 명령어를 사용하는 것이 좋습니다)
; 사용량이 많은 서버에서는 서비스를 시작하거나 파일을 수정하는 경우
발생할 수 있습니다
.여러 프로세스가 동시에 파일을 캐시하려고 하면 경쟁 조건이 발생합니다.
; 이 지시어는 캐시되지 않은 파일을 처리할 때 프로세스가 캐싱 단계를 건너뛰는 비율을 설정하는 데 사용됩니다.
예를 들어, 75로 설정하면 캐시되지 않은 파일이 발견될 때 캐시되지 않을 확률이 75%이므로 충돌 가능성이 줄어듭니다.
; 이 기능을 비활성화하려면 0으로 설정하는 것이 좋습니다.
apc.stat = On
;SYS
; 스크립트 업데이트 확인 활성화 여부.
; 이 지시문 값을 변경할 때는 매우 주의하십시오.
; 기본값인 On은 APC가 스크립트가 요청될 때마다 업데이트되었는지 여부를 확인함을 나타냅니다.
; 그러나 그렇게 하면 성능에 부정적인 영향을 미칩니다.
; Off로 설정하면 검사를 수행하지 않으므로 성능이 크게 향상됩니다.
; 하지만 업데이트된 내용을 적용하려면 웹 서버를 다시 시작해야 합니다.
; 이 지시어는 include/require 파일에도 유효합니다. 그러나
상대 경로를 사용하는 경우 APC는 포함/요구할 때마다 파일 위치를 확인해야 합니다.
; 절대 경로를 사용하면 검사를 건너뛸 수 있으므로 포함/요구 작업에는 절대 경로를 사용하는 것이 좋습니다.
apc.user_entries_hint = 100
;SYS
; num_files_hint 지시문과 유사하지만 사용자마다 다릅니다.
; 확실하지 않은 경우 0으로 설정하세요.
apc.write_lock = On
;SYS
; 쓰기 잠금 활성화 여부.
; 매우 바쁜 서버에서는 서비스를 시작하거나 파일을 수정하는 경우
여러 프로세스가 동시에 파일을 캐시하려고 하면 경쟁 조건이 발생할 수 있습니다.
; 경쟁 조건을 방지하려면 이 지시문을 활성화합니다.
apc.rfc1867 = 꺼짐
;SYS
; 이 지시어를 켜면 파일 필드 바로 앞에 APC_UPLOAD_PROGRESS 필드가 포함된 업로드된 각 파일에 대해
APC는 자동으로 upload_(즉, APC_UPLOAD_PROGRESS 필드 값)를 위한 사용자 캐시 항목을 생성합니다.
3. 함수
apc_cache_info - APC의 데이터 저장소에서 캐시된 정보(및 메타데이터)를 검색합니다.
apc_clear_cache - APC 캐시를 지웁니다.
apc_define_constants - 나중에 검색하고 대량 정의하기 위한 상수 세트를 정의합니다.
apc_delete - 캐시에서 저장된 변수를 제거합니다.
apc_fetch - 캐시에서 저장된 변수를 가져옵니다.
apc_load_constants - 캐시에서 상수 세트를 로드합니다.
apc_sma_info - APC의 공유 메모리 할당 정보를 검색합니다.
apc_store - 데이터 저장소에 변수를 캐시합니다.
apc의 사용법은 아래 나열된 몇 가지 기능만으로 비교적 간단합니다.
apc_cache_info()는 캐시 정보를 반환합니다.
apc_clear_cache()는 apc 캐시 내용을 지웁니다.
기본적으로(매개변수 없음), 시스템 캐시만 삭제됩니다. 사용자 캐시를 삭제하려면 'user' 매개변수를 사용하세요.
apc_define_constants (문자열 키, 배열 상수 [, bool case_sensitive]) 배열 상수를 캐시에 상수로 추가합니다.
apc_load_constants(문자열 키).
상수 캐시를 제거합니다.
apc_store(문자열 키, 혼합 var [, int ttl]).
캐시에 데이터를 저장합니다.
apc_fetch(문자열 키).
apc_store 에 저장된 캐시 콘텐츠 apc_delete(문자열 키)를 가져옵니다
.
apc_store에 저장된 콘텐츠를 삭제합니다.
APC 관리:
pecl.php.net에 가서 apc 소스코드 패키지를 다운로드하면 apc.php가 있고, 웹서버가 접속할 수 있는 곳에 복사한 후 찾아 접속한다.
관리 인터페이스 기능은 다음과 같습니다.
1. 데이터 새로 고침
2. 호스트 통계 보기
3. 시스템 캐시 항목
4. 사용자 캐시 항목
5. 버전 확인