APC (PHP 캐시)를 작동시키는 방법은 무엇입니까?
문제
APC에 대해 여러 PHP 파일 사이트가 속도가 높아짐에 대해 읽었습니다. 따라서 많은 파일이있는 PHP 에이 특정 프로젝트를 가지고 있으며 요구 사항과 클래스 정의 만 (실행하지 않고) 만 파싱하는 데 대부분의 시간이 걸린다는 것을 알게됩니다.
Centos 5 서버에 APC를 설치했습니다. APC.php를 웹 서버로 옮겼다
Hits: 1 (50.0%)
Misses: 1 (50.0%)
Cached Files 1 (281.1 KBytes)
그리고 웹 사이트로 이동하여 하위 페이지를 변경할 수 있으며 APC.PHP는 여전히 캐시 된 파일 하나만 표시됩니까?
그리고 phpinfo ()에서 다음을 보여줍니다.
APC 지원 활성화
나는 무엇을 해야할지 모르겠다. APC가 작동합니까 (phpinfo () SAIS와 같이) 아니면 그렇지 않습니까? 내 웹 사이트의 일부 페이지를 탐색 한 후 캐시 된 파일 하나만별로 없습니다.
그리고 더 많은 오류를 진단하고 APC가 작동하는지 확인하는 방법은 무엇입니까? 나는 탐색했다
apc.mmap_file_mask /tmp/apc.qnlqnf /tmp/apc.qnlqnf
디렉토리 /TMP이지만 PHPINFO에 언급 된 것처럼 APC의 파일이 없습니다.
APC가 작동하는지 확인하십시오. 그렇지 않은 경우 문제가 될 수 있습니다.
해결책
APC 두 가지 방법으로 사용할 수 있습니다.
- Opcode 캐시로. 지원이 활성화되어 있으므로 이것이 작동합니다. 그리고
- 일반적인 캐시로. 당신은 명시 적으로 사용해야합니다 API 이것을 위해.
(1)은 주요 이점입니다. "컴파일"스크립트의 Opcode 결과를 저장하여 스크립트 실행 시간이 줄어 듭니다.
그것이 작동하는 것에 관해서 설치 지침:
메모: Windows에서 APC는 존재하기 위해 온도 경로가 필요하며 웹 서버에서 쓸 수 있습니다. TMP, Temp, UserProfile 환경 변수를 해당 순서대로 확인하고 그 중 어느 것도 설정되지 않은 경우 Windows 디렉토리를 시도합니다.
따라서 Centos에서 필요하지 않거나 활동을 볼 필요는 없습니다.
즉, 요구 사항/포함은 require_once/include_once/autoload보다 낫지 만 수백 파일로 그 일을하는 경우에만 중요합니다.
다른 팁
귀하의 사이트는 기본적으로 다른 파일을 포함하거나 요구하는 하나의 PHP 파일입니까? 단일 파일로 등록 할 수 있습니다. 또한, 내가 아는 한, 조건부로 된 논리를 포함/요구하는 논리는 예상대로 캐시가되지 않을 수 있습니다.
THR 로그 파일을 확인 했습니까? /var/log/apache2/error.log를 살펴 보거나 배포에 명명되었습니다.
또한 2-3 개의 PHP 파일을 만들고 TheBrowser를 가리키 다음 APC 캐시로 캐시 된 PHP 파일 수를 확인하십시오.
APC에 대해서는 확실하지 않지만 EACCELERATOR를 추천합니다 (http://eaccelerator.net/). 나는 얼마 전에 그것을 테스트했고 실제로 차이를 만들었습니다.
APC는 실제로 Proceses간에 캐시를 공유하지 않습니다. PHP 프로세스를 Fork Childs로 구성하고 Master PHP 프로세스가 계속 실행되도록하십시오.
APC 3.1.5dev 지점에서 새로운 옵션이 소개되었습니다 opcode 캐시를 비활성화 할 수 있습니다. 기본적으로 꺼져있는 것 같습니다.
APC 구성 파일에 이것을 추가 해보십시오.
apc.enable_opcode_cache=1
http://www.litespeedtech.com/support/forum/showthread.php?t=3761
"각 PHP 프로세스는 공유되지 않은 자체 캐시 메모리를 사용하기 때문에 APC는 PHP Suexec과 잘 작동하지 않습니다.
PHP Suexec을 사용해야하는 경우 EACCELERATOR + /DEV /SHM을 사용해보십시오. "
똑같은 문제가 생겼습니다. PHP Suexec + APC가 문제가있는 것 같습니다.