क्या APC PHP 5.4 या PHP 5.5 के साथ संगत है?


103

ऐसा नहीं लगता है कि एपीसी को php 5.4 रिलीज के साथ मेल करने के लिए अद्यतन किया गया है (मुझे लगता है कि उन्होंने एपीसी को मूल रूप से नियोजित की तरह पीएचपी कोर में शामिल किया होगा)।

मुझे कोई निश्चित उत्तर नहीं मिल रहा है कि वर्तमान एपीसी 5.4 पीएचपी के साथ काम करता है या नहीं। मैं php 5.4 के लिए Ubuntu पैकेज खोजने में कामयाब रहा, लेकिन php-apc संकुल स्थापित नहीं होगा।


2
मुझे लगता है कि आप एक उपयुक्त स्थापित कर रहे हैं। क्या आपने एक pecl स्थापित करने की कोशिश की है?
दारागह ठीक

हाँ, यह वास्तव में काम किया। धन्यवाद। और जैसा कि यह पता चला है, एपीसी 5.4 के साथ ठीक काम करता है, विशेष रूप से, जब नए लक्षण कार्यक्षमता का उपयोग करते हैं।
ग्रेविअर

1
@Darragh [बस आपको बताए] इस पर एक भारी इनाम है, आप एक उत्तर देना चाहते हैं।
टिबेरिउ-आयनू स्टेन

1
नहीं ऐसा नहीं है। इसकी आखिरी रिलीज 2012 में हुई थी और यह PHP के नए संस्करण के साथ संगत नहीं है
Abadis

जवाबों:


163

PHP 5.5 में शामिल Zend OPCache

21 वीं मार्च 2013 को, पीएचपी 5.5 बीटा 1 "Zend OPCache" को रिलीज़ किया गया - ऐसा लगता है कि मजबूती से की तरह इस एपीसी आगे जाने के रूप में यह PHP में कोर में शामिल है के लिए प्रतिस्थापन हो जाएगा, और करेंगे किया जाना है प्रत्येक नए के लिए बनाए रखा छोड़ें।

मैं व्यक्तिगत रूप से उन लोगों को सलाह दूंगा जो एपीसी पर निर्भर हैं, क्योंकि यह अपने कोड को आगामी अंतर्निहित ओपोड कैश के साथ परीक्षण करने के लिए ओपोड कैशिंग है, और एक स्थिर अंतिम रिलीज सुनिश्चित करने के लिए किसी भी मुद्दे को वापस खिलाएं।

मुझे नहीं पता कि एपीसी के भविष्य के लिए इसका क्या मतलब है।

PHP 5.4 के लिए APC बीटा के रूप में फ्लैग किया गया है

इसका मतलब है कि डेवलपर्स इसे पूरी तरह से स्थिर नहीं मानते हैं । जबकि कई लोगों को वर्तमान एसवीएन रिलीज़ के साथ कोई समस्या नहीं हो रही है, फिर भी कुछ कॉन्फ़िगरेशन या भारी भार के तहत लोगों से किनारे के मामलों की विषम रिपोर्ट अभी भी है।

सब कुछ आप उत्पादन परिवेश में उपयोग करने के लिए चाहते हो जाएगा के रूप में, सुनिश्चित करें कि आप अच्छी तरह से किसी भी रिहाई (बीटा परीक्षण कर या विकास में स्थिर) या पूर्व उत्पादन वातावरण पहले । इसमें लोड परीक्षण शामिल है!

3.1.13 रिलीज के अनुसार, SVN रिपॉजिटरी के लिए कुछ हद तक धीमा हो गया है और बग सूची में कई अतिरिक्त बदलाव नहीं हैं। वही बनाएं जो आप बनाना चाहेंगे।

10 दिसंबर 2012 21:05 को रासमस लेरडॉर्फ ने लिखा:

एपीसी अब 5.4 के लिए इस बिंदु पर है जहां मुझे नहीं लगता कि 5.3 में हमारे पास कोई अधिक किनारे मामले हैं। न तो एकदम सही है, लेकिन यह अधिकांश साइटों के लिए पर्याप्त है।

सी / जीडीबी कौशल और कुछ खाली समय के साथ किसी को भी बग सूची में चमकाने और यह देखने के लिए आग्रह किया जाता है कि क्या वे कुछ भी ठीक कर सकते हैं, या इस मुक्त खुले स्रोत उत्पाद में सुधार कर सकते हैं, जिस पर हम सभी भरोसा करते हैं।

वैकल्पिक समाधान मौजूद हैं, विकिपीडिया PHP त्वरक की एक सूची प्रदान करता है ।

13 फरवरी 2013 को, Zeev Suraski ने Zend अनुकूलक + स्रोत कोड की उपलब्धता की घोषणा की ।

अगले प्रमुख संस्करण (5.5 के बाद का संस्करण) में PHP कोर में Zend अनुकूलक + को एकीकृत करने के बारे में काफी लंबी चर्चा हुई है । लोग अग्रिम में Zend अनुकूलक + के साथ खुद को परिचित करना चाह सकते हैं, क्या ऐसा होना चाहिए।


APC 3.1.14 का उपयोग न करें

APC 3.1.14 को कुछ गंभीर स्मृति समस्याओं के कारण PECL डाउनलोड से हटा दिया गया है, लेकिन अभी तक उन्हें ट्रैक नहीं किया गया है।

यदि आप पहले से ही 3.1.14 का उपयोग कर रहे हैं, तो आप 3.1.15 जारी होने तक डाउनग्रेड करना चाह सकते हैं। याद रखें, यह अभी भी बीटा है । यदि आप इसका उपयोग कर रहे हैं, तो आप इसे अपने जोखिम पर उपयोग कर रहे हैं।

2013-01-02 :
एपीसी 3.1.14 उपलब्ध है , , पीएचपी 5.5 संगतता जोड़ने अन्य कीड़े का एक उचित संख्या को हल करने के अलावा

अभी भी बीटा


2012-09-03 :
APC 3.1.13 उपलब्ध है, कई सीफ़ॉल्ट्स को ठीक करता है


2012-08-16 :
एक एपीसी 3.1.12 टैग बनाया गया है, लेकिन अभी भी बीटा के रूप में चिह्नित किया गया है, एपीसी पीईसीएल पेज पर उपलब्ध है , साथ ही साथ चैंज भी

इस समय के आसपास बहुत सारे बिन_डंप संबंधित कीड़े तय किए गए।


2012-07-19 :
एक एपीसी 3.1.11 टैग बनाया गया है, लेकिन अभी भी बीटा के रूप में चिह्नित किया गया है, एपीसी पीईसीएल पेज पर उपलब्ध है , साथ ही साथ चैंज भी । मैं प्रासंगिक मेलिंग सूचियों का पालन कर रहा हूं, और वे अभी भी सक्रिय रूप से एपीसी बग को ठीक करने पर काम कर रहे हैं, हालांकि यह एक जटिल मॉड्यूल है और बहुत से लोग इस कार्य के लिए नहीं लगते हैं। यह रिलीज फ़ाइलों को शामिल करते हुए गंदा स्टेट = 0 बग को ठीक करता है।


2012-04-11 :
एक एपीसी 3.1.10 टैग आज बनाया गया था, और 3.1.10 के एक बीटा रिलीज पर रखा गया था एपीसी PECL पेज
बदलाव का कहता है:

  • PHP 5.4 समर्थन (दिमित्री, अनातोली, पियरे) जोड़ें
  • फिक्स्ड बग # 22679: स्थिरांक के लिए apc_bin_dump को ठीक करें। सभी स्थिरांक को संभालने के लिए IS_CONSTANT_TYPE_MASK का उपयोग करें, जिसमें अयोग्य लोग शामिल हैं (बजाय ~ IS_CONSTANT_INDEX चेक)
  • फिक्स्ड बग # 23822, एपश रीस्टार्ट पर php क्रैश

1
बस टाइप करें: "-3.1.10 एपीसी स्थापित PECL" और फिर मैं php पुन: संयोजित करने के लिए तो यह libphp5.so अद्यतन होता था
targnation

Apt-get के माध्यम से ubuntu 12. के माध्यम से साइन 2012 अक्टूबर का उपयोग कर रहा है। साफ और स्थिर!
जस्टिन

Zend OpCache और एपीसी से संबंधित इस लेख पर एक नज़र डालें blogs.oracle.com/opal/entry/using_php_5_5_s और इस थ्रेड bugs.php.net/bug.php?id=64625
riotera

10

PHP 5.4.7 और APC 3.1.13 (और 2012-09-19 के अनुसार APC SVN ट्रंक के रूप में), हालांकि यह "संगत" है, यह भारी लोड वाले सर्वरों पर स्थिर नहीं है, खासकर यदि आप PHP- का उपयोग कर रहे हैं FPM और $ GLOBALS। एपीसी पर डेवलपर चर्चा के कुछ अनसुलझे फ्रिंज मामलों के बारे में बात करते हैं ।

मैं इस सवाल का जवाब दे रहा हूँ 6 महीने बाद क्योंकि यह समस्या अभी भी प्रचलित है, और इस थ्रेड w / o का सामना करना पड़ रहा है जैसे मेरा एक जवाब है जो मुझे PHP 5.4 w / APC के लिए छलांग बनाता है और जल जाता है। उम्मीद है कि यह लोगों को कुछ दर्द से बचने में मदद करेगा।


6

ऐसा प्रतीत होता है कि ट्रंक के नवीनतम संशोधन में बग "हो सकता है" तय किया गया है। मैं इसे PHP 5.4.0 के साथ अब काम कर रहा हूँ।

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

सीडी एपीसी-ट्रंक

phpize

कॉन्फ़िगर

बनाना

स्थापित करें


apc अब svn.php.net/repository/pecl में नहीं है। रेपो को गिट में बदल दिया गया है और अब इसे git.php.net/?p=pecl/caching/apc.git
Dereckson

5

नहीं, APC 1.3.9 (और इस पल के रूप में, यहां तक ​​कि svn ट्रंक) php 5.4.0 के साथ संगत नहीं है, मुझे पता है क्योंकि मैंने इसे काम करने के लिए कोशिश करने में घंटों बिताए हैं (विभिन्न svn / php का परीक्षण किया है। ini सेटिंग्स / संकलक झंडे / आप इसे नाम देते हैं)।

यह सिर्फ हास्यास्पद है, एपीसी सबसे लोकप्रिय PHP एक्सटेंशन में से एक है और आप 8 PHP 5.4 RC के माध्यम से जाने के हफ्तों के बाद उम्मीद करेंगे कि उनके पास APC को इसके साथ काम करने का समय मिलेगा।

दयनीय।


शायद यही कारण है कि एपीसी को पीएचपी 5.4 के साथ शामिल नहीं किया गया था, जैसा कि मूल रूप से योजनाबद्ध था .. जब मैंने इसे परीक्षण किया तो यह काम करने लगा, लेकिन, मैंने केवल लक्षणों का परीक्षण किया और अन्य php 5.4 सुविधाओं में से कोई भी नहीं।
ग्रेविअर

2
ऐसा लगता है कि php 5.4 के लिए एकमात्र व्यवहार्य कैश / बाईटेकोड कंपाइलर Zend का अपना ज़ेंड सर्वर पैकेज है। PHP 5.4 ने मुझे उत्साहित किया लेकिन APC या XCache या कुछ और के बिना, यह बेकार था। और यह PHP की कहानी वर्षों और वर्षों के लिए है .. हमेशा प्रतीक्षा, प्रतीक्षा .. मैं कुछ अन्य भाषा को लेने के बारे में गंभीरता से सोचना शुरू कर रहा हूं .. बस यकीन नहीं होता क्या ..
ग्रेव

यह सच है, पिछले साल दिसंबर में सेगफॉल्ट बग को वापस भेज दिया गया था, और 3 महीने बाद भी यह तय नहीं हुआ है, wtf एक 'प्रमुख उन्नयन' जारी कर रहा है अगर यह सबसे सामान्य परिस्थितियों में भी काम नहीं करता है। [बग # 60462 जब एपीसी segfault सक्षम किया गया है - प्रस्तुत: 2011-12-07] bugs.php.net/bug.php?id=60462&edit=1
johnsmith

5

वैसे मैं पिछले कुछ दिनों से कोशिश कर रहा हूँ, और ऐसा कोई तरीका नहीं है जिससे मुझे php 5.4 के साथ काम करने के लिए एक opcode cacher मिल सके। Xcache संकलित नहीं करेगा, और जब कैश किया जाता है तो एपीसी कुछ वर्गों को नहीं पहचानेगा। मुझे लगता है कि यह त्रुटि साइमन की बात है।

मैंने सुना है कि ट्रंक में कुछ सुधार थे, लेकिन मैंने नवीनतम ट्रंक स्रोतों की भी कोशिश की, लेकिन वही त्रुटियां वापस आ रही हैं। मुझे लगता है कि बिना opcode cacher (अभी कोई उपलब्ध नहीं है) के बिना php उत्पादन योग्य नहीं है। आशा है कि एपीसी पर लोग इस asap को ठीक कर देंगे।

अपडेट करें!!!

Xcache 2.0.0-rc1 बाहर है और php 5.4 के साथ संगत है। का आनंद लें!



4

मैं PHP संस्करण 5.5.19 के साथ AMPPS का उपयोग कर रहा हूं। चूंकि कुछ समय अब ​​PHP 5.5 रिलीज होने से बिल्कुल ठीक है - APC को Zend OPCache के साथ बदल दिया गया है जो PHP 5.5 और इसके बाद के संस्करण में शामिल है। अब आपको "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 को स्थापित करने और सक्षम करने के लिए अनुशंसा संदेश को समाप्त करता है ।

सिम्फनी 2 चलाने वालों को संदेश और "वेब / config.php" से चेतावनी संदेश हटा दिया, लेकिन अभी भी कमांड लाइन "php app / check.php" से चलकर एक समस्या का सामना करते हैं। यदि ऐसा होता है, तो इसका मतलब है कि आपका कंसोल एक अलग php.ini फ़ाइल का उपयोग कर रहा है। अपना सिस्टम बदलें PATH varible - इसे दाईं ओर php निर्देशिका (जहाँ आपके पास अपनी php.exe फ़ाइल है और जो आपके स्थानीय सर्वर द्वारा उपयोग की जाती है) को इंगित करें।

यदि आपको गहन स्पष्टीकरण की आवश्यकता है, तो मुझे नीचे टिप्पणी में बताएं। सादर।


1
मैं इस उत्तर के निर्देशों को दृढ़ता से शीर्ष उत्तर के साथ विलय करने का आग्रह करता हूं, ताकि ओपेक को लागू करने के इच्छुक हर कोई जानता हो कि वास्तव में ऐसा कैसे करना है।
जो

यदि आप xdebug "zend_extension" टिप्पणी करते हैं, तो आप इसे बंद कर देंगे - यह आवश्यक नहीं है। "Zend_extension" के साथ [OPcache] अनुभाग जोड़ना [XDebug] अनुभाग से समान पैरामीटर से नहीं टकराता है। इसके अलावा उन वर्गों के आदेश वास्तव में कोई फर्क नहीं पड़ता।
मारेक

नोट: [स्रोत: php.net/manual/en/opcache.installation.php] यदि आप »Xdebug के साथ OPcache का उपयोग करना चाहते हैं, तो आपको Xdebug से पहले OPcache लोड करना होगा।
DevWL

3

कुछ मुद्दों पर अभी तक विचार किया जा रहा है। बग की जाँच करें और आप यह पता लगाने में सक्षम हो सकते हैं कि आपकी विशेष समस्या का समाधान क्या है।

मैंने कुछ घंटे पहले इस तरह की एक त्रुटि से निपटा, और यह पता चला कि एसवीएन ट्रंक से एपीसी का उपयोग करने का तरीका था। उम्मीद है की यह मदद करेगा!


खैर अब तक, यह ठीक काम कर रहा है। यह लॉन्चपैड . net/~ondrej/+archive/php5 से PHP 5.4 पैकेज के साथ उबंटू 10.04 (टर्नकी एलएएमपी उपकरण) पर है । लेकिन अगर कुछ आता है तो मैं बग सूची की जाँच करूँगा। धन्यवाद!
ग्रेविअर

3

मैंने पाया है कि आपको प्रत्येक पृष्ठ अनुरोध पर ओपकोड कैश को साफ़ करने की आवश्यकता है अन्यथा इंटरफेस लागू करने वाली कक्षाएं लोड करने में विफल रहती हैं। यह नवीनतम svn ट्रंक, अपाचे 2.4.1, PHP 5.4.0 से संकलित किया गया था।


@ michiel-thalen पर आप हाजिर हैं, यही वह मुद्दा है जिसके बारे में मैं बात कर रहा था। यह वास्तव में शर्म की बात है ... हालाँकि मैंने अभी भी प्रत्येक लोड पर ओपकोड को रीसेट करने के साथ प्रदर्शन में थोड़ा लाभ देखा है। उपयोगकर्ता कैश अभी भी इच्छित (मेरे परीक्षण में अब तक) के रूप में काम करता है।
साइमन

2

APC - अनुशंसित नहीं है
व्यक्तिगत रूप से मैंने PHP 5.4 या PHP 5.5 के साथ APC का उपयोग नहीं किया है, लेकिन नवीनतम स्थिर APC PHP 5.4 के साथ संगत नहीं है, नवीनतम बीटा APC का उपयोग 5.4 के साथ किया जा सकता है लेकिन यह लिखा है कि अभी भी APC के साथ नकारात्मक मुद्दे हैं।

यदि आपके पास PHP 5.5 है तो
बस Zend Opcache का उपयोग करें । यह बॉक्स से बाहर है, इसलिए समस्याएं न्यूनतम हैं।

यदि आपके पास PHP 5.4 है तो
मैं XCache की सलाह देता हूं । यह PHP 5.4 और 5.5 के साथ पूरी तरह से संगत है। सक्रिय रूप से विकसित। अंतिम स्थिर संस्करण 3.5 महीने पहले (10 अक्टूबर 2013) जारी किया गया था। यदि आप फास्टगि का उपयोग करते हैं तो भी यह प्रदर्शन में सुधार करता है।


1

Zend OPCache php / ext निर्देशिका में php_opcache.dll नाम के तहत PHP 5.5 में शामिल है इसे सक्रिय करने के लिए:

  • अपनी php.ini कॉन्फ़िगरेशन फ़ाइल में zp एक्सटेंशन के रूप में php_opcahe.dll फ़ाइल जोड़ें ।
  • प्रारूप zend_extension = पथ / से / php / ext / php_opcache.dll का उपयोग करें
  • अपने php.ini कॉन्फ़िगरेशन में xDebug zend_extension से पहले zend_extension रखें
  • अपनी php.ini कॉन्फ़िगरेशन फ़ाइल सहेजें और अपने सर्वर को पुनरारंभ करें।

0

APC का नया संस्करण है: २.१.१४ २ जनवरी से, जो कुछ बगों को हल करता है: http://pecl.php.net/pack/APC

हालाँकि, मैं अब तक किसी भी मुद्दे के बिना dotdeb रिपॉजिटरी से APC 3.1.13 के साथ PHP 5.4.x चला रहा हूं, इसलिए मेरे लिए मैं कहूंगा कि यह स्थिर है। डॉटडेब ने मुझे यह भी सूचित किया है कि वे PHP की अगली रिलीज में अद्यतन एपीसी सहित होंगे, जो 5.4.11 होने की उम्मीद है।


यदि आप APC 3.1.14 का उपयोग कर रहे हैं, तो मैं आपको APC 3.1.13 अस्थायी रूप से वापस करने की सलाह देता हूं। कुछ गंभीर स्मृति संबंधी बग खोजे गए हैं, जिसके परिणामस्वरूप 3.1.14 रिलीज को डाउनलोड सेक्शन से खींचा गया है।
लेह

वास्तव में, मैंने पाया कि PHP 5.4 के लिए डॉटडेब द्वारा जारी पैकेज में शुरू में एपीसी 3.1.14 शामिल था, लेकिन बग से बचने के लिए इसे वापस कर दिया गया है।
स्टीवन डी ग्रोट

0

हम PHP 5.4.26 और APC 3.1.9 के साथ मेमोरी फ्री एरर्स (अपाचे सेगफॉल्ट) का प्रयोग कर रहे हैं। PHP 5.4.X पर APC के लिए एक खुला बग है: https://bugs.php.net/bug.php?id=61934

मैं PHP> 5.3 पर इस प्लगइन का उपयोग नहीं करने की सलाह देता हूं।


0

XAMPP संस्करण 5.6.3 (PHP 5.6.3) में आपको केवल अपने ini.php में यह करना है:

[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

[XDebug]

zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
xdebug.max_nesting_level = 200
xdebug.profiler_append = 1
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
;xdebug.profiler_output_dir = "C:\xampp\tmp"
;xdebug.profiler_output_name = "cachegrind.out.%t-%s"
;xdebug.remote_enable = 0
;xdebug.remote_handler = "dbgp"
;xdebug.remote_host = "127.0.0.1"
;xdebug.trace_output_dir = "C:\xampp\tmp"

Symfony2 ढांचे के लिए कॉन्फ़िगरेशन।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.