मुझे विंडोज सर्वर 2008 आर 2 पर PHP के साथ वास्तव में परेशान समस्या है। आईआईएस और अपाचे एक ही मशीन पर चल रहे हैं (अपाचे किसी अन्य उत्पाद के साथ एम्बेडेड है और यह मेरी पसंद नहीं है)।अपाचे PHP MySQL एक्सटेंशन लोड नहीं करता है लेकिन आईआईएस
आईआईएस PHP के कई संस्करणों का उपयोग करने में सक्षम होने के लिए कॉन्फ़िगर किया गया है, और वहां पर कोई भी PHP संस्करण विंडोज इंस्टालर के साथ स्थापित नहीं किया गया था (इसलिए php.exe पथ में मौजूद नहीं है)।
अपाचे PHP के एक विशेष संस्करण का उपयोग करता है (5.2.5 थ्रेड-सुरक्षित - फिर मैं इसे किसी तृतीय-पक्ष एप्लिकेशन के रूप में नहीं बदल सकता, इस संस्करण के विरुद्ध संकलित PHP एक्सटेंशन हैं)।
अगर मैं अपने अपाचे साइट में phpinfo() की जांच करता हूं तो इसमें MySQL के लिए कोई प्रविष्टि नहीं है, भले ही php_mysql.dll php.ini में सक्षम है और यह \ ext निर्देशिका में मौजूद है। यदि मैं (अस्थायी रूप से) PHP के इस संस्करण को जोड़ता हूं (समान निर्देशिका, एक ही php.ini) IIS को और phpinfo() के साथ एक परीक्षण साइट सेट करता है, तो यह सही ढंग से MySQL सूचीबद्ध करता है। मैं जानता हूँ कि इस phpinfo साथ बस कुछ अजीब मुद्दा है क्योंकि मैं एक MySQL आधारित PHP साइट अपाचे में चल रहा है नहीं है और यह Call to undefined function mysql_connect()
यह सुझाव दिया गया है कि मैं सेल्सियस तक पीएचपी निर्देशिका से libmysql.dll कॉपी के साथ विफल: \ Windows \ System32 लेकिन इससे कोई फर्क नहीं पड़ता। चूंकि सर्वर पर PHP के कई संस्करण हैं, मुझे लगता है कि यह संभव है कि libmysql.dll का गलत संस्करण लोड हो रहा है, लेकिन PATH में libmysql.dll वाली कोई निर्देशिका शामिल नहीं है।
आईआईएस और अपाचे बिल्कुल वही PHP स्थापना, php.ini, और ext निर्देशिका पर देख रहे हैं, लेकिन केवल आईआईएस MySQL एक्सटेंशन लोड कर सकता है। अपाचे डिफ़ॉल्ट सिस्टम खाते पर है क्योंकि ऐसा लगता है कि सिस्टम के पास सभी डीएलएल तक पहुंच है।
अपाचे लॉग लोड करने में असफल किसी भी डीएलएल के बारे में कुछ नहीं कहता है। मैं इवेंट लॉग में PHP त्रुटियों को लॉग कर रहा हूं लेकिन उन एक्सटेंशन के बारे में कुछ भी नहीं बताया गया है।
इस मुद्दे के आसपास गुगल करने के बाद मुझे विंडोज सर्वर पर PHP में अचानक अचानक होने वाले मुद्दों को मिला, लेकिन सामान्य संकल्प - php.ini का पुनर्निर्माण, आईआईएस को पुनरारंभ करना, सर्वर को पुनरारंभ करना - मदद नहीं की है।
अगला कहां देखने के लिए कोई सुझाव बहुत सराहना की है!
क्या आपने जांच की है कि c: \% php_5.2.5_install_path $ \ से DLLs को C: \ Windows \ System32 पर कॉपी किया गया है? उदाहरण के लिए 'libmysql.dll' या 'libmhash.dll'। मुझे पता है कि यह अपाचे + PHP के लिए जरूरी है, आईआईएस + PHP – JScoobyCed
@JScoobyCed के लिए यह सुनिश्चित नहीं है कि यह वादा करता है, लेकिन मेरे पास आईआईएस में PHP 5.3.10 भी काम कर रहा है और इसमें वर्तमान में MySQL से कनेक्ट करने में कोई समस्या नहीं है। क्या कोई जोखिम है कि 5.2.5 डीएलएल को सिस्टम 32 पर कॉपी करने से 5.3.10 पर प्रतिकूल प्रभाव पड़ेगा? – tomfumb
यदि सिस्टम 32 में पहले से ही 5.3.10 डीएलएल हैं, तो PHP 5.3.10 – JScoobyCed