2009-05-17 13 views
9

मैं अपाचे 2.2.11 के लिए एक मॉड्यूल के रूप php जोड़ दिया है पर लोड नहीं होगा:पीएचपी एक्सटेंशन अपाचे स्टार्टअप

LoadModule php5_module "c:/php/php5apache2_2.dll" 

और यह भी कहा

AddType application/x-httpd-php .php 

और php.ini में, मेरे एक्सटेंशन डीआईआर को सेट किया गया है: extension_dir = "C:\php\ext"

और हाँ, निर्देशिका सही हैं और सभी फ़ाइलें मौजूद हैं।

लेकिन जब मैं अपाचे शुरू, मैं इन त्रुटियों को मिलता है:

पीएचपी चेतावनी: पीएचपी स्टार्टअप: 'C: \ php \ ext \ php_mysql.dll' गतिशील पुस्तकालय लोड करने में असमर्थ - निर्दिष्ट मॉड्यूल नहीं कर सका पाया जा सकता है। \ r \ n लाइन 0
PHP चेतावनी: PHP स्टार्टअप: गतिशील लाइब्रेरी 'C: \ php \ ext \ php_pdo_pgsql.dll' लोड करने में असमर्थ - निर्दिष्ट मॉड्यूल नहीं मिला। \ r \ n अज्ञात में 0
PHP चेतावनी: PHP स्टार्टअप: गतिशील लाइब्रेरी 'C: \ php \ ext \ php_pgsql.dll' लोड करने में असमर्थ - निर्दिष्ट मॉड्यूल नहीं मिला। \ r \ n पंक्ति 0

पर अज्ञात में 012,[सूर्य मई 17 03:46:01 200 9] [नोटिस] अपाचे/2.2.11 (विन 32) PHP/5.2.9-2 कॉन्फ़िगर किया गया - सामान्य संचालन को फिर से शुरू करना
[सूर्य मई 17 03:46:01 200 9] [ नोटिस] सर्वर बनाया गया: 10 दिसंबर 2008 00:10:06
[सूर्य मई 17 03:46:01 200 9] [नोटिस] अभिभावक: बाल प्रक्रिया 4652

PHP चेतावनी: PHP स्टार्टअप: गतिशील लाइब्रेरी लोड करने में असमर्थ ' सी: \ php \ ext \ php_mysql.dll '- निर्दिष्ट मॉड्यूल नहीं मिला। \ R \ n लाइन 0
PHP चेतावनी: PHP स्टार्टअप: गतिशील लाइब्रेरी लोड करने में असमर्थ' सी: \ php \ ext \ php_pdo_pgsql.dll '- निर्दिष्ट मॉड्यूल नहीं मिला। \ r \ n लाइन 0
PHP चेतावनी: PHP स्टार्टअप: गतिशील लाइब्रेरी लोड करने में असमर्थ' सी: \ php \ ex t \ php_pgsql.dll '- निर्दिष्ट मॉड्यूल नहीं मिला। \ r \ n लाइन 0

[सूर्य मई 17 03:46:01 200 9] [नोटिस] बाल 4652: बाल प्रक्रिया चल रही है
[सूर्य मई 17 03:46:01 200 9] [नोटिस] बाल 4652: प्रारंभ म्यूटेक्स प्राप्त किया।
[सूर्य मई 17 03:46:01 200 9] [नोटिस] बाल 4652: 64 कार्यकर्ता धागे शुरू करना।
[रवि मई 17 03:46:01 2009] [नोटिस] बाल 4652: किसी ने मुझे मैं क्या बता सकते हैं, 80

तो मैं शायद कुछ यहाँ सरल भूल रहा पोर्ट पर सुनने के लिए धागा शुरू मैं भूल रहा हूँ?

+0

+1 मुझे विंडोज़ पर लोड मॉड्यूल php कैसे कहने के लिए +1! –

उत्तर

7

PHP में MySQL और PostgreSQL समर्थन जोड़ने के लिए आपको केवल PHP एक्सटेंशन के DLL की आवश्यकता नहीं है। आपको MySQL और PostgreSQL देशी पुस्तकालयों की भी आवश्यकता है। PHP एक्सटेंशन के डीएलएल शायद कुछ डीएलएल नहीं ढूंढ रहे हैं, इसलिए वे शुरू नहीं कर सकते हैं।

सुनिश्चित करें कि आपके पास MySQL और PostgreSQL क्लाइंट स्थापित है, और उनके डीएलएल कुछ स्थानापन्न स्थान पर हैं।

आईई। उदाहरण:

  • php_mysql.dll libmysql पर निर्भर करता है।डीएल

तो, सुनिश्चित करें कि PHP libmysql.dll ढूंढने में सक्षम है (मुझे विश्वास है कि यह विंडोज PHP के बाइनरी वितरण के साथ आता है। हालांकि सुनिश्चित नहीं है)।

+1

php_mysql.dll के साथ अतिरिक्त निर्देशिका में आवश्यक डीएल को स्थानांतरित करना चाल चल रहा है। धन्यवाद। –

+0

यदि आप अपने पाथ पर्यावरण चर को बदलना नहीं चाहते हैं, तो बस अपने अपाचे बिन निर्देशिका में libmysql.dll डालें। – thomiel

0

समस्या यह है कि अपाचे ने PHP लोड किया है, लेकिन PHP अपने एक्सटेंशन को लोड करने में सक्षम नहीं था (mysql, postgresql, ...)। मुझे लगता है कि आपको यूनिक्स प्रारूप में अपनी php.ini फ़ाइल में पथ मान दर्ज करना चाहिए (बैकस्लैश वर्णों को निर्देशिका विभाजक के रूप में उपयोग न करें)। इसलिए अपने php.ini फ़ाइल परिवर्तन इस में:

extension_dir = "C:/php/ext"

1

उन एक्सटेंशन जो MySQL और PostgreSQL द्विआधारी वितरण द्वारा प्रदान की जाती देशी पुस्तकालयों पर निर्भर हैं। उदाहरण के लिए उन्हें इंस्टॉल करें और libs को apache के bin फ़ोल्डर में रखें। वे LIBMYSQL.DLL और LIBPQ.DLL क्रमशः हैं।

मैं आमतौर पर Windows/System32 फ़ोल्डर को प्रदूषित करने के बजाय ऐसा करता हूं, क्योंकि मेरे सिस्टम पर केवल अपाचे/php उन डेटाबेस का क्लाइंट है और यह मेरे अपाचे/PHP सेटअप को अधिक पोर्टेबल बनाता है।

1

मुझे विंडोज़ पर PHP के एक विशिष्ट संस्करण के साथ कोई समस्या थी। समस्या libmysql था। मुझे किसी भी समस्या वाले किसी व्यक्ति से php.net साइट पर एक पोस्ट की गई बग मिली।

मैंने पिछले PHP रिलीज और libmysql का उपयोग किया था। आपके द्वारा उपयोग किए जा रहे PHP वितरण पर नोट्स देखें। मुझे लगता है कि एक विशिष्ट संस्करण के बाद वे libmysql के बारे में एक नई नीति का जिक्र करते हैं।

जो आप उल्लेख करते हैं, वह php एक्सटेंशन को खोजने में असमर्थ है। सुनिश्चित करें कि आपने php.ini पर पथ सेट किया है जो निर्दिष्ट करता है कि एक्सटेंशन कहां स्थित हैं, एक्सटेंशन मौजूद हैं और फ़ोल्डर को एक्सेस किया जा सकता है (पढ़ने-अनुमतियां)।

यदि सभी विफल समस्या को हल करने के प्रयास में विंडोज/सिस्टम 32 में विस्तार को स्थानांतरित करने में विफल रहता है।

सादर,

1

मेरे अनुभव में, Windows पर पीएचपी के पीछे में एक प्रमुख दर्द है। मैं आमतौर पर इसे अंततः काम करने के लिए मिलता हूं, लेकिन कम से कम मेरे लिए हमेशा गुगलिंग और परीक्षण-और-त्रुटि शामिल होती है।

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

+0

बिल्कुल मेरे विचार। – merlinbeard

2

पाब्लो सांता क्रूज़ की सलाह में जोड़ने के लिए। विंडोज़ पर आप PATH पर्यावरण में आवश्यक पुस्तकालयों को शामिल कर सकते हैं। (विंडोज फ़ोल्डर में जरूरी नहीं है)। लाइब्रेरी विधवाओं को लोड करते समय PATH निर्देशिकाओं में भी दिखता है।

यदि आप PHP5.2 के लिए php.net से मानक Win32 बाइनरी वितरण का उपयोग करते हैं, तो पैकेज में संकुल की जड़ में सभी निर्भरताएं होनी चाहिए। इसलिए, यदि आपने PHP5.2 को C:\php में स्थापित किया है, तो इस निर्देशिका को PATH envar में जोड़ें। अपाचे को पुनरारंभ करें और मैं एक्सटेंशन को ठीक से लोड होने की अपेक्षा करता हूं।

-1

मुझे एक ही समस्या थी और आपने libacheSQL.dll को अपाचे बिन फ़ोल्डर में कॉपी करने का प्रयास किया है और यह समस्या हल हो गई है (मैं PHP 5.2.5 x64 स्थापित कर रहा हूं)। बहुत धन्यवाद।

0

मैं भी एक ही समस्या थी और सिस्टम पर्यावरण चर में जोड़ने "PostgreSQL" बिन पथ द्वारा हल

पथ: C: \ Program Files \ PostgreSQL \ 8.4 \ बिन आप phpinfo में जाँच कर सकते हैं() भी ।

जब मैं PostgreSQL स्थापित करता हूं, तो सिस्टम पथ में सेटिंग मिस्ड हो जाती है। मैन्युअल रूप से मैंने सिस्टम को पुनरारंभ किया।

0

मुझे यह समस्या भी थी, और प्रासंगिक (.dlls) को सिस्टेन 32 में कॉपी किया और यह अभी भी मेरे लिए काम नहीं करता है। मैं विंडोज 7 64 बिट चला रहा हूँ। इसे मेरे लिए काम करने के लिए मुझे libmysql.dll को ext निर्देशिका में कॉपी करना पड़ा। त्रुटि संदेश ने अपाचे लॉग और एक अनुकूल प्रतिक्रिया (संकल्प स्थापित) के साथ लोड किया गया पृष्ठ छोड़ा।

1

मुझे एक ही समस्या थी। जब भी मैंने phpmyadmin में लॉग इन करने का प्रयास किया तो मुझे उन परेशान विंडोज पॉपअप त्रुटियों में से एक मिल रहा था। मैंने उपयोगकर्ता नाम और पासवर्ड टाइप किया और फिर त्रुटि फेंक दी।

यह मेरे लिए क्या हल किया गया है, libmysql.dl को apache bin निर्देशिका में भी कॉपी कर रहा था। अजीब चीज उन एक्सटेंशनों की गारंटी है जहां सही तरीके से शामिल है लेकिन फिर भी मुझे ऐसा करने की ज़रूरत है।

1

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

  • postgres जोड़ने पथ सिस्टम पथ को अपाचे lib dir को postgres DLL जोड़ने
  • postgres System32 करने के लिए DLL जोड़ने

मेरा मानना ​​है कि केवल पैथ काम करता था लेकिन यहां सफाई के लिए कोई समय नहीं है, इसलिए आप वहां जाते हैं।

+0

धन्यवाद @ एंडीज। डीआईआर जोड़ना जिसमें libmysql.dll को PATH और रीबूट करने के लिए काम किया गया है। – xilef

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