문제

문서에서 "대부분 디버깅에 사용되는"라고 생각할 것 "이라고 생각하는"문제가없고 디버깅을해야 할 필요가 없다 "고 생각할 수 없었습니다.그것은 "opcache.enable_cli 1"하지만 왜?나는이 문제에 관한 정보를 찾을 수 없었으므로 아무도 알고 있으면 문서가 기본적으로 0을 유지한다고 말하는 경우 왜 그렇게 할 수 있습니까?

도움이 되었습니까?

해결책

꺼내십시오.Opcache 자체로 문제를 디버깅하는 동안 주로 사용하기 위해 거기입니다.

opcache.enable_cli 옵션을 사용하면 명령 줄에서 PHP 스크립트를 실행할 때 PHP Opcache가 가능합니다 (php 명령 사용).그러나 PHP 5.x의 경우 opcache 확장은 현재 프로세스의 메모리 의 메모리 에 캐시 된 opcode를 저장함으로써 작동합니다.이는 PHP를 실행중인 프로세스가 웹 서버 또는 FastCGI에서와 같이 이러한 opcode를 재사용 할 수있는 여러 요청을 처리 할 때만 유용합니다.하나의 "요청"을 실행하고 종료하는 PHP CLI와 같은 프로세스의 경우 메모리와 시간을 낭비합니다.

다른 팁

PHP7 및 파일 기반 캐싱을 사용하면 CLI에 대해 Opcache를 사용할 수 있도록 이제는 의미가 있습니다. 가장 좋은 가능성은 다음과 같은 구성으로 CLI에 대해 별도의 php.ini를 갖는 것입니다.

opcache.enable=1
opcache.enable_cli=1
opcache.file_cache="/tmp/php-file-cache"
opcache.file_cache_only=1
opcache.file_cache_consistency_checks=1
.

opcache.file_cache_only=1는 메모리 내 Opcache가 비활성화되고 파일 만 사용되는지 확인하십시오. 이는 CLI에 대해 원하는 것입니다. 이것은 실행 시간을 훨씬 조금 증가시켜야합니다.

FPM의 php.ini에서 동일한 설정을 가지지 만 opcache.file_cache_only=0를 사용하므로 메모리가있는 Opcache가 사용되고 파일 캐시는 폴백으로 사용됩니다 (파일 캐시 때문에 FPM을 더 빨리 만듭니다). 캐시 된 파일이 남아 있기 때문에 FPM이 다시 시작되거나 Opcache가 재설정 될 때 예비 시간을 줄입니다.

이렇게하면 CLI 및 FPM이 파일 캐시를 공유하고 FPM에는 최대 속도를 위해 메모리 내 캐시가 두 번째 기본 캐시로되어 있습니다. PHP7의 큰 개선! CLI와 FPM이 쓸 수있는 opcache.file_cache의 디렉토리를 선택하고 동일한 사용자가 쓰기 / 읽기를 수행 할 수 있습니다.

2017

FPM을 더 이상 FPM으로 사용하지 않는 것이 좋습니다 (CLI에만 사용하십시오). PHP-FPM이 변경 사항을 인식하지 못하면 캐시를 재설정 할 수있는 방법이 없으므로 PHP-FPM이 변경되지 않습니다. 또는 완전한 PHP-FPM 재시작도 파일 캐시에 영향을주지 않으며 파일 캐시에 해당하는 것은 없으므로 변경된 스크립트는 절대로 눈치 채지 못합니다. " 버그 "/ " 피쳐 요청 "2016 년 3 월에 현재 문제가되지 않습니다. opcache.validate_timestamps=0를 사용하는 경우에만주의하십시오!

PHP 문서 :

opcache.enable_cli boolean CLI 버전의 PHP에 대한 opcode 캐시를 활성화합니다.이것은 주로 테스트 및 디버깅에 유용합니다.

정말로 필요하지 않으면 비활성화되어야합니다.

명령 줄에서 실행되는 장기적인 마이그레이션 프로세스 (개인적으로 일부 광범위한 마이그레이션 스크립트를 실행함으로써 CLI를 위해 Opcache V7.0.3을 테스트했습니다)에서 유용 할 수 있습니다.).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top