2013-07-31 10 views
6

मैं अपने परीक्षण वर्कस्टेशन (PHP 5.5.1, अपाचे 2.2.4, विंडोज 7 32-बिट) पर काम कर रहे इंटेल एक्सटेंशन को प्राप्त करने का प्रयास कर रहा हूं। ऐसा लगता है कि कोई फर्क नहीं पड़ता कि मैं क्या कोशिश करता हूं मैं इसे प्राप्त नहीं कर सकता हूं।विंडोज़ पर PHP क्यों नहीं हो सकता है, भले ही यह मौजूद है php_intl.dll?

  • मैंने अपने php.ini में "एक्सटेंशन = php_intl.dll" पंक्ति को असम्बद्ध किया है।
  • मैंने सत्यापित किया है कि extension_dir निर्देश सही निर्देशिका (c: \ wamp \ php5.5 \ ext) पर इंगित कर रहा है।
  • मैंने सत्यापित किया है php_intl.dll c: \ wamp \ php5.5 \ ext में है।
  • मैंने सत्यापित किया है कि सभी icu * .dll फ़ाइलें php रूट निर्देशिका (c: \ wamp \ php5.5) में मौजूद हैं।
  • मैंने सत्यापित किया है कि c: \ wamp \ php5.5 मेरे पथ में है।
  • और हां, php.ini की प्रति मैं संपादित कर रहा हूं सही है, जिसे httpd.conf में PHPIniDir निर्देश द्वारा निर्दिष्ट किया गया है।

मैं अपाचे त्रुटि लॉग की जाँच की और इस लाइन हर बार जब मैं अपाचे पुन: प्रारंभ किए पाया है:

पीएचपी चेतावनी: पीएचपी स्टार्टअप: गतिशील पुस्तकालय 'ग लोड करने में असमर्थ: \ WAMP \ php5.5 \ ext \ php_intl.dll '- निर्दिष्ट मॉड्यूल नहीं मिला। \ r \ n लाइन 0

पर दो अज्ञात में मैं खुद को दोहराता हूं, लेकिन c: \ wamp \ php5.5 \ ext \ php_intl.dll EXIST करता है !

मैं विंडोज एक्सप्लोरर पर इशारा करने और अपने कंप्यूटर पर चिल्लाने की कोशिश करने के लिए प्रेरित हूं, "देखो! स्टिनकिन फ़ाइल फ़ाइल सही है!" कोई विचार है कि मैं फ़ाइल और PHP क्यों देख सकता हूं भले ही हम एक ही निर्देशिका में स्पष्ट रूप से देख रहे हों? या कुछ और चल रहा है कि मैं याद किया है?

+0

क्या PHP के साथ मिलान संस्करण डीएलएल है? –

+0

हां, यह संस्करण 5.5.1 है। – PerceptorII

उत्तर

12

सुनिश्चित करें कि अपाचे PHP बेस डीआईआर से icu * .dll फ़ाइलों को ढूंढ और लोड कर सकता है।

फास्ट, सरल समाधान इन डीएलएल को अपाचे बिन निर्देशिका में कॉपी करना है।

+0

यह मेरे लिए काम करता है !!! बस अपाचे बिन फ़ोल्डर में सभी icu * .dll की प्रतिलिपि बनाएँ। अपाचे 2.4.4, PHP 5.4.16 – gonzalezea

+1

के साथ वैंप सर्वर का उपयोग करके मैंने मैन्युअल स्थापना अपाचे + PHP के साथ इसका परीक्षण किया, और यह काम किया! जैसे ही मैंने देखा कि आप सही थे, मैंने Apache24/bin से फ़ाइलों को हटा दिया, इसलिए मुझे उम्मीद थी कि 'intl' फिर से पहचाना नहीं जाएगा लेकिन यह अभी भी काम करता है, मुझे आश्चर्य है कि क्यों ... असली जानना दिलचस्प होगा जवाब दें और अपाचे को उन 'आईसीयू *। डीएलएल फाइलों को कॉपी किए बिना पहचानें। कोई जानता है कि कैसे? धन्यवाद – Metafaniel

+0

WAMP में मेरे लिए काम किया, [पथ के लिए रास्ता]/वैंप/बिन/php/php [संस्करण संख्या]/- सभी आईसीयू *। डीएलएल फाइलों को कॉपी किया - [पथ के लिए पथ]/वैंप/बिन/अपाचे/अपाचे [ संस्करण संख्या]/बिन/ धन्यवाद! – JxAxMxIxN

3

हालांकि SeventyFourLaboratories का समाधान सरल है और यह काम करता है, एक ऐसा समाधान है जिसके लिए आपको अपने अपाचे या PHP वितरण को संशोधित करने की आवश्यकता नहीं होती है (और कभी-कभी, आपको उन्हें उत्पादन सर्वर में बदलने की अनुमति नहीं है)।

आपने कहा कि आपने सत्यापित किया है C:\wamp\php5.5 आपके PATH में है। विंडोज़ में दो प्रकार पर्यावरण चर के हैं: उपयोगकर्ता और सिस्टम चर।

मैंने अपने उपयोगकर्ता चर PATH में C:\wamp\php5.5 सेट करने का प्रयास किया है, और यह काम नहीं करता है। लेकिन, इसे सिस्टम परिवर्तनीय PATH में सेट करना इसे काम करता है। इसलिए, आपको यह सत्यापित करना चाहिए कि आप PATH सिस्टम वैरिएबल का उपयोग उसी नाम के साथ उपयोगकर्ता चर के बजाय अपाचे को कॉन्फ़िगर करने के लिए करते हैं।

+0

PHP स्थापना की जड़ जोड़ना मेरे लिए यह तय किया गया है। आसपास की .dll फ़ाइलों को स्थानांतरित करने की आवश्यकता नहीं है। –

0

पूर्ण फिक्स सी: \ wamp \ scripts \ config.inc को बदलना होगा।इस प्रकार php:

उस फ़ाइल

$phpDllToCopy = array (
'fdftk.dll', 
'fribidi.dll', 
'libeay32.dll', 
'libmhash.dll', 
'libmysql.dll', 
'msql.dll', 
'libmysqli.dll', 
'ntwdblib.dll', 
'php5activescript.dll', 
'php5isapi.dll', 
'php5nsapi.dll', 
'ssleay32.dll', 
'yaz.dll', 
'libmcrypt.dll', 
'php5ts.dll', 
'php4ts.dll'); 

के इस भाग का पता लगाएं और

$phpDllToCopy = array (
'fdftk.dll', 
'fribidi.dll', 
'icudt51.dll', // - Additions to avoid unknown error PHP 5.5.5 
'icuin51.dll', 
'icuio51.dll', 
'icule51.dll', 
'iculx51.dll', 
'icutest51.dll', 
'icutu51.dll', 
'icuuc51.dll', 
'icudt50.dll', // - Additions to avoid unknown error PHP 5.5 
'icuin50.dll', 
'icuio50.dll', 
'icule50.dll', 
'iculx50.dll', 
'icutest50.dll', 
'icutu50.dll', 
'icuuc50.dll', 
'icudt49.dll', // - Additions to avoid unknown error PHP 5.3/5.4 
'icuin49.dll', 
'icuio49.dll', 
'icule49.dll', 
'iculx49.dll', 
'icutest49.dll', 
'icutu49.dll', 
'icuuc49.dll', 
'libeay32.dll', 
'libmhash.dll', 
'libmysql.dll', 
'libsasl.dll', // - Additions to avoid unknown error 
'msql.dll', 
'libmysqli.dll', 
'ntwdblib.dll', 
'php5activescript.dll', 
'php5isapi.dll', 
'php5nsapi.dll', 
'ssleay32.dll', 
'yaz.dll', 
'libmcrypt.dll', 
'php5ts.dll', 
'php4ts.dll', 
); 
0

के लिए इसे बदल पथ के लिए अपने PHP.exe स्थान जोड़ने के बारे में।

(विंडोज 7 जीयूआई)

"पर्यावरण चर: सिस्टम चर" की व्यवस्थापकीय पहुंच के लिए, का पालन करें यहाँ अनुदेश: https://kb.wisc.edu/cae/page.php?id=24500

"पर्यावरण चर: सिस्टम चर" में, संपादित 'पथ' चर और अपने स्थान के साथ मौजूदा स्ट्रिंग को उपसर्ग करें (इसे हटाएं नहीं)। उदाहरण: सी: \ wamp \ bin \ php \ php5.5.12;

  • मेरे लिए काम किया।
2

मुझे यह वही समस्या थी और इस मुद्दे पर काम करने के करीब 5 घंटे बाद मुझे अंततः हल हो गया। मुझे दो मुख्य बदलाव हुए थे जिन्हें मुझे बनाना था।

1) जब मैंने एक्सटेंशन डाउनलोड किया था तो मैं उपयोग करने की कोशिश कर रहा था, यह सिर्फ .dll फ़ाइल से परे कई अन्य फ़ाइलों के साथ आया - उनमें से अधिकांश .pdb थे। मैंने उन सभी को ext फ़ोल्डर में स्थानांतरित कर दिया जिनमें .dll फ़ाइलें शामिल हैं। खिड़कियों $ पथ चर करने के लिए एक्सटेंशन फ़ोल्डर के लिए पथ को जोड़ने -

2) alaya डॉट कॉम एक टिप्पणी here के रूप में प्रदान पर smaines द्वारा जवाब मुझे दूसरी बात यह है कि मुझे क्या करना जरूरत दे दी है।

, कई मायनों यह किया जा सकता है यहाँ एक है:

  • जाओ अपने कंप्यूटर पर
  • राइट क्लिक करें और चुनें गुण
  • क्लिक करें छोड़ दिया
  • क्लिक पर 'उन्नत सिस्टम सेटिंग्स' शीर्ष
  • पर 'उन्नत' टैब पर 'पर्यावरण चर' बटन
  • 'पथ' चर खोजने के लिए चर की सूची के माध्यम से खोजें, इसे चुनें
  • 'संपादित करें ...' बटन पर क्लिक करें (जब 'पथ' चर चयनित होता है)
  • यह दो इनपुट फ़ील्ड के साथ एक और संवाद बॉक्स लाएगा। नीचे एक चर है, इसे चुनें।
  • अंत में एक अर्धविराम समाप्त करें, इस मामले में आप '; सी: \ wamp \ php5.5 \ ext' टाइप करेंगे (अर्धविराम इसे पिछले पथ से अलग करने के लिए है
  • 'ठीक है' पर क्लिक करें 'सभी संवाद बॉक्स में है कि

    उन्हें

बंद करने के लिए ऊपर परिवर्तन आप उन्हें प्रभावित करने के लिए अपना मशीन फिर से शुरू करनी करने के बाद आए हैं। मुझे आशा है कि मदद करता है, यह मेरे लिए काम किया ऐसा लगता है कि यह एक आम समस्या है - कम से कम मुझे इसके बारे में कुछ चर्चाएं और इसके विविधताएं मिलीं।उपरोक्त संदेश

आप पथ के लिए php फ़ोल्डर जोड़ रहे हैं करने के लिए

+0

पीएटीएच में PHP निर्देशिका (बाहरी निर्देशिका नहीं) को जोड़ने से यह मेरे लिए हल हो गया। पुनरारंभ की आवश्यकता नहीं है, बस लॉग ऑफ करें और फिर से लॉग इन करें। – user2345998

0

सुधार, php फ़ोल्डर, नहीं php/ext फ़ोल्डर जोड़ना सुनिश्चित करें।

मेरे मामले में यह सी: \ wamp \ bin \ php \ php5.5.12 था, सी नहीं: \ wamp \ bin \ php \ php5.5.12 \ ext।

1

यह मुझे पागल कर रहा था। मेरे पास मेरे रास्ते में सभी आईसीयू डीएलएस थे। अंत में विजुअल सी ++ 2015 x86 इंस्टॉल करने के लिए इसे हल किया गया।

संबंधित मुद्दे