[php] MAMP에서 PHP 5.5.3에 대한 캐싱 중지

PHP 5.5.3을 사용하여 새 Macbook에 MAMP를 설치했습니다.

새로 고침하고 새로 고침하면 아무것도하지 않습니다. 여전히 아무것도 없습니다. 몇 분 동안 Google에서 무엇이 잘못되었는지 알아 내고 돌아와 새로 고침합니다. 효과가있다. 이런 젠장?

php.ini에 들어가서 새로운 OPcache를 모두 비활성화하고 기본 캐시 시간을 0으로 설정했습니다. 문서에 헤더를 추가하여 캐시를 강제하지 않았습니다. 여전히 같은 문제입니다. 도대체 여기서 무슨 일이 일어나고 있습니까?

네트워크 탭에 HTTP 200 요청이 표시되므로 index.php파일의 모든 새 HTML 은 정상적으로 렌더링되지만 서버에서 렌더링해야하는 새 PHP는 지연되고 미리 정해진 시간이 지날 때까지 렌더링되지 않습니다. 바꾸다. 무슨 일이야?

나는 Safari에서도 이것을 확인했기 때문에 파일이 렌더링되지 않도록하는 것은 확실히 서버 일입니다.

하지만 흥미로운 사실은 MAMP로 가서 PHP 버전을 이전 버전 (PHP 5.2 등)으로 변경하면 “캐싱 문제”없이 정상적으로 렌더링됩니다. PHP 5.5로 전환하면 중단됩니다. MAMP 환경 설정에서 5.5에 대한 캐싱 옵션은 존재하지 않으며 자동으로 비활성화됩니다.



답변

OPCache 비활성화

MAMP는 이제 기본적으로 OPCache를 켭니다. php.ini 파일을 편집하여 비활성화 할 수 있습니다. 올바른 php.ini를 편집했는지 확인하십시오.

나도 같은 문제에 봉착했다. PHP 버전 5.5.3이있는 MAMP는 기본적으로 OPcache를 실행하지만 이전 PHP 버전 5.2.17에서와 같이 GUI에서 끌 수 없습니다. php.ini 파일 (MAMP / bin / php / [version] /conf/php.ini) 끝에있는 모든 OPcache 줄을 수동으로 주석 처리하고 서버를 중지하고 시작하여 변경 사항을 적용해야합니다. 효과.

URI를 업데이트했는데 변경 사항은 php 폴더 아래의 / conf / 변경하여 반영 될 수 있지만 MAMP는 다시 시작한 후이를 무시하는 것 같습니다 .


답변

나는 opcache_reset ();을 추가 했습니다. 이 캐싱을 중지하려면 내 주요 PHP에서.

그것을 제거하는 php5.5.3/conf/php.ini것은 나에게 아무런 영향을 미치지 않았습니다.

편집하다

또한 /Applications/MAMP/bin/php/php5.5.3/conf/php.ini. 내가 거기에 주석을 달면 작동합니다.


답변

1) /Applications/MAMP/bin/php/php5.5.3/conf/php.ini
2) set opcache.revalidate_freq = 0
3) MAMP 다시 시작


답변

그것이 MAMP 문제라는 것을 알아내는 데 너무 오래 걸렸습니다! 웹 사이트를 테스트하는 데 사용되는 앱에서 OPcache가 기본적으로 활성화되고 비활성화하려면 php.ini 땜질이 필요한 이유는 무엇입니까? 어쨌든 나는이 전체 스레드를 읽고 다양한 솔루션을 시도했습니다.

다음은 각 솔루션의 작동 방식에 대한 메모와 솔루션 선택을위한 고려 사항입니다.

각 솔루션은 자체적으로 작동합니다. 중복이 필요하지 않습니다.


웹 페이지 코드 솔루션

opcache_reset ();

<?php opcache_reset(); ?>
  • 웹 페이지 코드에 추가해야합니다.
  • 모든 스크립트를 강제로 다시로드합니다.
  • MAMP 서버를 다시 시작하지 않고 작동합니다.

서버 구성 솔루션

중요 : 사용 php.ini에 파일 /Applications/MAMP/bin/php/php5.5.3/conf/php.ini및 없습니다
/Applications/MAMP/conf/php5.5.3/php.ini. 다른 버전의 PHP를 사용하는 경우 적절하게 조정하십시오.

활성화 = 0

[OPcache]
zend_extension="/Applications/MAMP/bin/php/php5.5.3/lib/php/extensions/no-debug-non-zts-20121212/opcache.so"
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
enable=0
  • [OPcache]에서 아래 에 추가해야합니다 php.ini.
  • OPcache를 비활성화합니다.
  • MAMP 서버를 다시 시작해야합니다.

opcache.revalidate_freq = 0

[OPcache]
zend_extension="/Applications/MAMP/bin/php/php5.5.3/lib/php/extensions/no-debug-non-zts-20121212/opcache.so"
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=0
opcache.fast_shutdown=1
opcache.enable_cli=1
  • 수정 opcache.revalidate_freq아래 [OPcache]에서 php.ini.
  • 60 초가 아닌 0 초마다 OPcache가 업데이트를 확인합니다.
  • MAMP 서버를 다시 시작해야합니다.

[OPcache] 주석 처리

;[OPcache]
;zend_extension="/Applications/MAMP/bin/php/php5.5.3/lib/php/extensions/no-debug-non-zts-20121212/opcache.so"
;opcache.memory_consumption=128
;opcache.interned_strings_buffer=8
;opcache.max_accelerated_files=4000
;opcache.revalidate_freq=60
;opcache.fast_shutdown=1
;opcache.enable_cli=1
  • 에서 전체 [OPcache]섹션을 주석 처리 하십시오 php.ini.
  • PHP 서버에서 OPcache를 제거합니다.
  • MAMP 서버를 다시 시작해야합니다.

고려 사항

다음과 같은 경우 웹 페이지 코드 솔루션을 선택하십시오.

  • 특정 프로젝트에 대해 스크립트 새로 고침을 강제하면됩니다.
  • MAMP 서버를 다시 시작하고 싶지 않습니다.
  • php.ini를 편집하고 싶지 않습니다.

다음과 같은 경우 서버 구성 솔루션을 선택하십시오.

  • 모든 프로젝트에서 캐싱을하는 대신 기본적으로 캐싱을 비활성화하고 싶습니다.
  • php.ini 편집에 익숙합니다.

enable=0저에게 가장 간단한 솔루션이기 때문에 개인적으로 선호 하며 기본적으로 캐싱을 비활성화해야합니다.


참고 문헌


답변

OS X 용 MAMP 3.0.7.2

이것이 마침내 GUI 옵션 인 것 같습니다. MAMP 3.0.7.2 for Mac OS X.


답변

그게 뭔지 알아 내려고 약 1 시간을 보내는 것은 고통스러운 일이었습니다.

코드 끝에 이것을 추가하고 MAMP를 다시 시작했습니다.

  opcache.revalidate_freq=0
  opcache_reset();


답변

“/Applications/MAMP/conf/php5.5.3/php.ini”를 편집하고 [OPcache]를 검색하고 바로 아래에이 코드를 추가합니다.

opcache.enable=0

이것은 MAMP 서버에서 PHP를 사용할 때 opcache를 비활성화합니다.