MAMP에서 PHP 5.5.3에 대한 캐싱 중지


123

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에 대한 캐싱 옵션은 존재하지 않으며 자동으로 비활성화됩니다.


4
나는 이것이 당신의 문제에 대한 해결책이 아니라는 것을 알고 있지만, 개인적으로 MAMP의 열렬한 팬은 아닙니다. 특히 커스텀 스택을 설치하는 것이 그렇게 쉬운 경우는 아닙니다 .- 여기 homebrew를 사용하여 스택을 설치하는 매우 빠른 가이드가 있습니다 : github .com / josegonzalez / homebrew-php
mewm 2013 년

@mewm 나는 그것이 그렇게 쉬울 수 있다는 것을 깨닫지 못했습니다. 건배! 몇 번의 키 입력만으로 nginx를 사용하기 위해 이것을 사용했습니다. learnaholic.me/2012/10/10/...
willdanceforfun

답변:


207

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는 다시 시작한 후이를 무시하는 것 같습니다 .


4
나는 같은 문제가 있었고 opcache 라인을 주석 처리하여 수정했습니다. 이것을 변경하기 위해 php.ini 파일로 이동해야한다는 것은 일종의 수수께끼입니다. MAMP-> Preferences 드롭 다운 상자에 모든 캐싱 옵션이있는 것처럼 보이기 때문에 실제로 오해의 소지가 있습니다.
JaredH 2010 년

17
이 "멋진 기능"을 추가하면서 MAMP 제작자가 생각하기 위해 신체의 어느 부분을 사용했는지 궁금합니다.
Sergii

ModX 설치에 문제가 있다고 생각했지만 아니요, 귀하의 대답은 문제를 해결 한 것 같습니다. 감사. 또한 이전 버전으로 되돌 렸습니다. 이제 훨씬 더 잘 실행됩니다.
vr_driver

67
점을 유의 php.ini편집 할 파일, / bin에 있습니다 없습니다 / conf의에. 내 전체 경로는 /Applications/MAMP/bin/php/php5.5.3/conf/php.ini.
Husky

버그 보고서를 제출했습니다. 향후 버전에서는 버그 보고서가 기본적으로 비활성화되기를 바랍니다. bugs.mamp.info/view.php?id=4296
Husky

38

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

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

편집하다

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


1
/ bin 디렉토리에서 OPcache를 주석 처리하면 저에게 효과적이었습니다! 감사합니다!
daveaspinall 2013

php.ini의 OPcache에 주석을 달면 /Applications/MAMP/bin/php/php5.5.3/conf/php.ini아무 작업도 수행되지 않지만 작업에 추가 opcache_reset();됩니다 index.php.
Даниил Пронин

26

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


2
이것은 작동하는 것 같습니다. 이 솔루션을 모두 설명하는 것보다 구현하는 것이 즐거웠습니다. 그러나 차이점이 있습니까?
Ketri

10

그것이 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저에게 가장 간단한 솔루션이기 때문에 개인적으로 선호 하며 기본적으로 캐싱을 비활성화해야합니다.


참고 문헌


4

OS X 용 MAMP 3.0.7.2

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


이것은 분명히 OPCache를 비활성화하지 않습니다. 이 설정이 "off"인 경우에도 광산은 여전히 ​​활성 상태였습니다.
auco

2

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

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

  opcache.revalidate_freq=0
  opcache_reset();

2

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

opcache.enable=0

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


내 우분투 서버에서 일했습니다. 감사.
Sinan Eldem 2014

2

오, 내가이 스레드를 발견해서 기쁘다! 나는 내 머리카락을 뽑았다! 어제 MAMP를 업그레이드했고 프로젝트를 진행하는 동안 오늘까지이 캐싱 문제를 알아 차리지 못했습니다. 내가 정신을 잃고 있다고 생각했습니다. 방금 "/Applications/MAMP/conf/php5.5.3/php.ini"를 opcache.enable = 0 파일 맨 아래에 변경했습니다.


1

이것은 MAMP의 Windows 버전에서도 최신입니다.

C : \ MAMP \ conf \ php5.6.3 \ php.ini

파일 맨 아래에 나열되어 있습니다.

내가 찾은 또 다른 문제는 QNAP NAS TS-431에있었습니다. 이 캐싱도 활성화되어 있으며 동적으로 변경되는 파일로 작업하거나 파일을 개발하려고하면 머리카락이 찢어집니다. 다른 의견에 따라 주석 처리하십시오. 설정은 다음 위치에 있습니다.

제어판 / 응용 프로그램 / 웹 서버 /PHP.ini 유지 관리.

다시 한 번 파일 하단에서 설정을 찾을 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.