[php] APC는 PHP 5.4 또는 PHP 5.5와 호환됩니까?

APC가 php 5.4 릴리스와 일치하도록 업데이트 된 것 같지 않습니다 (원래 계획대로 PHP 코어에 APC를 포함했으면합니다).

현재 APC가 php 5.4 이상에서 작동하는지 여부에 대한 확실한 답을 찾을 수없는 것 같습니다. php 5.4 용 Ubuntu 패키지를 찾았지만 php-apc 패키지가 설치되지 않습니다.



답변

PHP 5.5에 포함 된 Zend OPCache

2013 년 3 월 21 일, “Zend OPCache”를 포함한 PHP 5.5 베타 1이 출시되었습니다. 이것은 PHP 코어에 포함되어 있기 때문에 앞으로 APC를 대체 할 것 같으며 각각의 새로운 버전에 대해 유지 되어야 합니다. 해제.

나는 개인적으로 APC에 의존하는 사람들에게 opcode 캐싱을 통해 곧 출시 될 내장 opcode 캐시로 코드를 테스트하고 안정적인 최종 릴리스를 보장하기 위해 발생한 모든 문제를 피드백하도록 조언 할 것입니다.

이것이 APC의 미래에 어떤 의미인지 모르겠습니다.

PHP 5.4+ 용 APC는 여전히 베타로 표시됩니다.

이것은 개발자가 완전히 안정적 이라고 생각 하지 않는다는 것을 의미합니다 . 많은 사람들이 현재 SVN 릴리스에서 전혀 문제를 경험하지 않지만 특정 구성 또는 과부하 상태에서 사람들의 엣지 케이스에 대한 이상한보고가 여전히 있습니다.

프로덕션 환경에서 사용하려는 모든 것과 마찬가지로 먼저 개발 또는 사전 프로덕션 환경에서 모든 릴리스 (베타 또는 안정) 를 철저히 테스트해야합니다 . 여기에는 부하 테스트가 포함됩니다!

3.1.13 릴리스부터 SVN 저장소에 대한 커밋이 다소 느려지고 버그 목록에 최근 추가 된 항목 이 많지 않습니다. 당신이 할 것을 만드십시오.

2012 년 12 월 10 일 21:05에 Rasmus Lerdorf는 다음과 같이 썼습니다.

APC는 이제 5.4에서 우리가 5.3에서보다 더 많은 엣지 케이스가 없다고 생각하는 시점에 있습니다. 둘 다 완벽하지는 않지만 대부분의 사이트에 충분히 가깝습니다.

C / gdb 기술과 자유 시간을 가진 사람은 누구나 버그 목록 을 훑어 보고 그들이 무엇이든 고칠 수 있는지 확인하거나 우리 모두가 의존하는 이 무료 오픈 소스 제품 을 개선 해야합니다.

대체 솔루션이 존재하며 Wikipedia는 PHP 가속기 목록을 제공합니다 .

2013 년 2 월 13 일 Zeev Suraski는 Zend Optimizer + 소스 코드 의 가용성을 발표했습니다 .

다음 메이저 버전 (5.5 이후 버전)에서 Zend Optimizer +를 PHP 코어에 통합 하는 것에 대해 상당히 긴 논의 가있었습니다 . 이 경우 사람들은 Zend Optimizer +에 미리 익숙해지기를 원할 수 있습니다.


APC 3.1.14를 사용하지 마십시오.

APC 3.1.14는 발견되었지만 아직 추적되지 않은 심각한 메모리 문제로 인해 PECL 다운로드 에서 제거 되었습니다.

3.1.14를 이미 사용하고있는 경우 3.1.15가 출시 될 때까지 다운 그레이드 할 수 있습니다. 아직 베타 버전 입니다. 당신이 그것을 전혀 사용하고 있다면, 당신은 당신 자신의 책임하에 그것을 사용하고 있습니다.

2013-01-02 :
APC 3.1.14 를 사용할 수 있으며 PHP 5.5 호환성이 추가되고 다른 버그도 상당히 많이 해결 됩니다.

아직 베타


2012-09-03 :
APC 3.1.13 을 사용할 수 있으며 여러 세그 폴트가 수정되었습니다 .


2012년 8월 16일 : APC 3.1.12 태그는 만들어졌지만 여전히로 표시되어 베타 ,상의 사용 가능한 APC PECL 페이지 뿐만 아니라 변경 로그 .

이번에는 많은 bin_dump 관련 버그가 수정되었습니다.


2012-07-19 : APC 3.1.11 태그는 만들어졌지만 여전히로 표시되어 베타 ,상의 사용 가능한 APC PECL 페이지 뿐만 아니라 변경 로그 . 나는 관련 메일 링리스트를 따라 왔고, 그들은 여전히 ​​APC 버그를 수정하기 위해 적극적으로 노력하고 있지만 이것은 복잡한 모듈이고 많은 사람들이 그 일에 부응하지 않는 것 같습니다. 이 릴리스는 파일을 포함 할 때 불쾌한 stat = 0 버그를 수정합니다.


2012-04-11 : APC는 3.1.10 태그가 오늘 생성 및 3.1.10의 베타 릴리스가에 배치 된 APC PECL 페이지
변경 로그 상태 :

  • PHP 5.4 지원 추가 (Dmitry, Anatoliy, Pierre)
  • 수정 된 버그 # 22679 : 상수에 대한 apc_bin_dump 수정. IS_CONSTANT_TYPE_MASK를 사용하여 (~ IS_CONSTANT_INDEX 검사 대신) 정규화되지 않은 상수를 포함하여 모든 상수를 처리합니다.
  • 버그 # 23822 수정, Apache 재시작시 PHP 충돌

답변

PHP 5.4.7 및 APC 3.1.13 (2012-09-19 기준 APC SVN 트렁크 포함)부터는 “호환”되지만 부하가 많은 서버에서는 안정적이지 않습니다. 특히 PHP를 사용하는 경우 FPM 및 $ GLOBALS. APC에 대한 개발자 토론 중 일부는 해결되지 않은 추가 사례 에 대해 이야기 합니다.

나는 문제가 여전히 널리 퍼져 있기 때문에 질문을받은 지 6 개월 만에이 질문에 대답하고 있으며,이 스레드가 나와 같은 대답이없는 경우 APC가 포함 된 PHP 5.4로 도약하고 불에 타게되었습니다. 바라건대 이것은 사람들이 약간의 고통을 피하는 데 도움이 될 것입니다.


답변

이 버그는 트렁크의 최신 개정판에서 “수정되었을 수 있습니다”. 이제 PHP 5.4.0에서 작동합니다.

svn co http://svn.php.net/repository/pecl/apc/trunk/ apc-trunk

cd apc- 트렁크

phpize

./configure

하다

설치하다


답변

아니요, APC 1.3.9 (현재로서는 svn 트렁크까지도)는 php 5.4.0과 호환되지 않습니다. 왜냐하면 작동하도록 몇 시간을 보냈기 때문입니다 (다양한 svn / php. ini 설정 / 컴파일러 플래그 / 이름).

이것은 어리석은 일입니다. APC는 가장 인기있는 PHP 확장 프로그램 중 하나이며 8 개의 PHP 5.4 RC를 몇 주 후에 수행 한 후 APC가 함께 작동하도록 할 시간이있을 것입니다.

서투른.


답변

글쎄, 나는 지난 며칠 동안 노력하고 있으며, opcode cacher를 PHP 5.4와 함께 사용할 수있는 방법이 없습니다. Xcache는 컴파일되지 않으며 apc는 캐시 될 때 특정 클래스를 인식하지 못합니다. 나는 이것이 사이먼이 말하는 오류라고 생각합니다.

트렁크에 몇 가지 수정 사항이 있다고 들었지만 최신 트렁크 소스도 시도했지만 동일한 오류가 계속 발생합니다. 나는 opcode cacher가없는 PHP (현재 사용 가능한 것이 없음)는 생산 가치가 없다고 생각합니다. apc의 사람들이이 문제를 최대한 빨리 고칠 수 있기를 바랍니다.

최신 정보!!!

Xcache 2.0.0-rc1은 php 5.4와 호환됩니다. 즐겨!


답변

apcu http://windows.php.net/downloads/pecl/releases/apcu/를 찾았습니다 .

아마도 이것은 Windows에서 x64 용 apc입니다. 그것은 (버전 4.0.1) 내 응용 프로그램에서 작동했습니다.


답변

PHP 버전 5.5.19에서 AMPPS를 사용하고 있습니다. 이제 정확히 PHP 5.5 릴리스부터 APC가 PHP 5.5 이상에 포함 된 Zend OPCache로 대체되었습니다. 이제 “APC”(현재 “OPcache”)를 활성화하기 위해해야 ​​할 일은 php.ini를 편집하는 것입니다. [XDebug] 섹션 앞에 흐르는 선을 추가합니다.

php.ini

...

[OPcache]

zend_extension=php_opcache.dll

opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=512
opcache.interned_strings_buffer=24
opcache.max_accelerated_files=4000
opcache.revalidate_freq=3
opcache.fast_shutdown=1

...

다음 두 가지 인스턴스 가 필요합니다 .

zend_extension =

하나는 [OPcache]에 있고 다른 하나는 [XDebug] 섹션에 있습니다. Xdebug는 xampp / ampps / easyPHP 서버 설치에서 기본값으로 제공되지 않는 경우가 많습니다. Xdebug 확장을 다운로드해야하는 상황에 처할 수 있습니다. PHP에 적합한 Xdebug를 정의하는 온라인 애플리케이션을 사용하면 쉽게이 작업을 수행 할 수 있습니다. http://xdebug.org/wizard.php를 방문 하여 간단한 지침을 따르십시오. PHP 버전에 맞는 Xdebug 버전을 다운로드했으면 [XDebug] 섹션에서 zend_extension 링크를 편집하십시오.

...

[XDebug]
zend_extension = "C:\Program Files (x86)\Ampps\php\ext\php_xdebug-2.2.6-5.5-vc11.dll"
......

참고하십시오! php.ini 파일에서 XDebug 앞에 OPcache 섹션을 추가해야합니다 !!! 나를 올바르게 따르면 php.ini 파일에 두 개의 zend_extension 인스턴스가 있어야합니다 (하나는 OPcache에 있고 다른 하나는 Xdebug 섹션에 있음).

이것은 Symfony2 프레임 워크에서 완벽하게 작동 하며 PHP 및 Xdebug 용 APC를 설치하고 활성화하라는 권장 메시지를 제거합니다.

symfony 2를 실행하고 “web / config.php”에서 경고 메시지를 제거했지만 여전히 “php app / check.php”명령 줄에서 실행하면 문제가 발생하는 사용자에게 보내는 메시지입니다. 이 경우 콘솔이 다른 php.ini 파일을 사용하고 있음을 의미합니다. 시스템 PATH 변수를 변경하십시오-올바른 php 디렉토리를 가리 키도록하십시오 (여기서 php.exe 파일이 있고 로컬 서버에서 사용됨).

더 자세한 설명이 필요하면 아래 의견에 알려주십시오. 문안 인사.