PHP चेतावनी: PHP स्टार्टअप: गतिशील पुस्तकालय लोड करने में असमर्थ


94

मैं एक PHP स्क्रिप्ट चलाता हूं और यह त्रुटि प्राप्त करता हूं:

PHP चेतावनी: PHP स्टार्टअप: डायनेमिक लाइब्रेरी '/usr/local/lib/php/extensions/no-debug-non-zts-20090626/ixed.5.2.lin' लोड करने में असमर्थ - / usr / स्थानीय / lib / php / एक्सटेंशन /no-debug-non-zts-20090626/ixed.5.2.lin: साझा किए गए ऑब्जेक्ट फ़ाइल को नहीं खोल सकता: लाइन 0 पर अज्ञात में ऐसी कोई फ़ाइल या निर्देशिका नहीं

इसका क्या मतलब है?

जवाबों:


55

इसका मतलब है कि एक नहीं है extension=...या zend_extension=...अपने php विन्यास फाइल में से एक में रेखा (php.ini, या यह करने के लिए एक करीब) है कि विस्तार को लोड करने की कोशिश कर रहा है:ixed.5.2.lin

दुर्भाग्य से वह फ़ाइल या पथ मौजूद नहीं है या अनुमतियाँ गलत हैं।

  1. .iniPHP द्वारा लोड की गई फ़ाइलों में खोज करने का प्रयास करें ( phpinfo()संकेत कर सकते हैं कि कौन से हैं) - उनमें से एक को उस एक्सटेंशन को लोड करने का प्रयास करना चाहिए।
  2. या तो फ़ाइल के लिए पथ को सही करें या संबंधित लाइन को टिप्पणी दें।

6
तो मुझे भी यह त्रुटि मिल रही है, लेकिन मेरी साइट अभी भी काम करती है - सबसे अजीब हिस्सा। इस प्रकार की त्रुटि के लिए, मुझे लगता है कि php शुरू से ही दुर्घटनाग्रस्त हो जाएगा। इसके बजाय मुझे अपना पेज मिलता है, लेकिन मेरा लकड़हारा इस त्रुटि को लॉग कर रहा है। अजीब हुह?
बीटी

1
मेरे मामले में php.ini (/etc/php.ini) में मैंने लाइन एक्सटेंशन = php_pdo_mysql.dll पर टिप्पणी की और अपाचे को फिर से शुरू किया जिससे मेरी समस्या हल हो गई और चेतावनी से छुटकारा मिल गया। (मैक, मवरिक)
ola

या तो रास्ता सही करो हम किस रास्ते की बात कर रहे हैं?
prats1411

3. या लापता अपेक्षित एक्सटेंशन को स्थापित करें
एंड्रयू

@ prats1411 ini फ़ाइल में: एक्सटेंशन = [पथ यहाँ]
एंड्रयू

37

यदि आप लिनक्स पर हैं, तो आप शेल में इसे टाइप करके सभी लोड की गई विन्यास फाइल पा सकते हैं:

php -r "print phpinfo();" | grep ".ini"

अद्यतन: जैसा कि टिप्पणियों में बताया गया है, यह और भी सटीक हो सकता है:

php -i | grep ini

5
php -i | grep iniठीक काम भी करना चाहिए (जब आपके पास इसके लिए कोई कमांड तर्क हो तो phpinfo को प्रिंट करने की आवश्यकता नहीं है)
YorickH

1
मेरे पास एक समान त्रुटि phpinfo()थी लेकिन किसी भी समस्याग्रस्त ini फ़ाइलों की सूची नहीं थी। php -i | grep iniजैसा कि योरिक ने सुझाव दिया था कि मेरे लिए काम किया। यह CLI के लिए लोड किए गए पुस्तकालयों को सूचीबद्ध करेगा और जैसा कि यह ini फ़ाइल को चालू करता है जो मेरे मामले में CLI निर्देशिका के तहत चेतावनी का कारण था।
DaneeL

7
क्या php --iniसभी ini फ़ाइलों की सूची के बारे में
ओज़ज़ीकॉच

17

यदि आप बस त्रुटि को गायब करना चाहते हैं, और आपको एक्सटेंशन की आवश्यकता नहीं है, तो हर तरह से लाइन आउट में टिप्पणी करें php.ini। लेकिन अगर आप वास्तव में यहाँ समस्या को ठीक करना चाहते हैं तो कुछ अतिरिक्त जानकारी है।

सटीक मॉड्यूल के आधार पर इसके लिए विभिन्न कारण हैं, लेकिन कुछ सामान्य दिशानिर्देश भी हैं।

  1. खोलें phpinfo()और अनुभाग के extension_dirतहत देखें Core। यह वह जगह है जहां आपके मॉड्यूल स्थित होना चाहिए।

उदाहरण के लिए, /usr/lib/php/modulesयूनिक्स / लिनक्स के लिए।

  1. यदि फ़ाइल वास्तव में मौजूद है, तो सुनिश्चित करें कि अनुमतियाँ पर्याप्त हैं।
  2. यदि फ़ाइल मौजूद नहीं है, तो इसे स्थापित करने के लिए नीचे दिए गए संसाधनों का उपयोग करें।

विंडोज पर एक्सटेंशन की स्थापना * निक्स (पीईएआर)
पर करना


मैं इस नाशपाती मॉड्यूल के माध्यम से स्थापित करने की कोशिश कर रहा हूं, लेकिन जब मैं दौड़ता perl install <module>हूं तो मुझे मिलाCan't open perl script "install": File or Directory not found
फैबॉटक

समस्या को जानना मुश्किल है, अपने रास्तों और अनुमतियों की जांच करें।
अनन्तौर

अगर एक कंटेनर में कोशिश करेंdocker-php-ext-install <package>
jiggunjer

13

XAMPP के साथ phpStom

TL, DR इस बात की पुष्टि करने के अलावा कि फाइलें मौजूद हैं, आपको अपनी php.ini फ़ाइल में कुछ अभिलेखों में ड्राइव अक्षर जोड़ने की आवश्यकता हो सकती है

मुझे अचानक xppp और xdebug के साथ php डिबगिंग के लिए phpStorm 7 का उपयोग करने में समस्या होने लगी। जब इंटेलीज इंटरप्रेटर को xampps php होने के लिए सेट करने की कोशिश की जा रही है, तो मुझे उदाहरण के लिए, इस तरह की कई चेतावनियाँ मिलीं:

डायनेमिक लाइब्रेरी '/xampp/php/ext/php_bz2.dll' लोड करने में असमर्थ

किसी कारण से मुझे अपने ड्राइव अक्षर को एक्सटेंशन_dir के रिकॉर्ड में जोड़ना पड़ा और php.ini फ़ाइल में ब्राउज़ करना पड़ा:

extension_dir = "\xampp\php\ext"
browscap = "\xampp\php\extras\browscap.ini"

सेवा

extension_dir = "e:\xampp\php\ext"
browscap = "e:\xampp\php\extras\browscap.ini"

2
यह मेरे लिए विंडोज 10 पर निर्धारित किया गया था
जस्टिन एल्ड्रेचर

1
इसने इसे मेरे लिए विंडोज़ 7 पर तय किया। बहुत बहुत धन्यवाद
परमजीत

6

php -r "echo php_ini_loaded_file();"

CLI करंट इनइ लोडेड फ़ाइल में दिखाएगा, वहाँ आपके एक्सटेंशन की खोज करेगा, इसके लिए पथ गलत है।


4

लिनक्स में लोड हो रहा है

जब मैं php.ini फ़ाइल के माध्यम से php-extension स्थापित करने का प्रयास कर रहा था तब मुझे यह चेतावनी संदेश मिला है ;

जब तक मुझे लगा कि आप लिनक्स में .dll एक्सटेंशन लोड नहीं कर सकते ,

लेकिन आपको उन एक्सटेंशनों पर टिप्पणी करनी होगी जिन्हें आप आयात करना चाहते हैं ;extension= ... .dllऔर इसे सही तरीके से इंस्टॉल करना चाहते हैंsudo apt-get install php-...

नोट : ...एक्सटेंशन नाम जिसे आप सक्षम करना चाहते हैं।


वास्तव में, मेरे लिए यह केवल मॉड्यूल इंस्टॉलेशन गायब था - मैं phpPgAdmin स्थापित कर रहा था और मुझे स्पष्ट रूप से इंस्टॉल करने के लिए जो आवश्यक था वह था sudo apt install php-pgsqlऔर php-version-specific sudo apt install php7.1-pgsql(आपके 7.1 संस्करण में 7.1 से परिवर्तन)
jave.web

3

ध्यान दें कि यदि आपकी PHP लाइब्रेरी में "अन्य" निर्देशिका खोलने की अनुमति नहीं है, तो आप यह त्रुटि भी प्राप्त कर सकते हैं। अपने विशेष मामले में, मैंने php -lअपने पाठ संपादक में एक स्क्रिप्ट को सिंटैक्स की जाँच करते समय देखा । इसका मतलब यह था कि चूंकि मेरे खाते को "वॉलोमाइक" कहा जाता था, इसलिए उस खाते को उन पुस्तकालयों को चलाने की अनुमति नहीं थी, phpजिन पर कमांड निर्भर था।

उदाहरण के लिए, Ubuntu 14.04 पर, मैंने PHP5 को स्वचालित रूप से पथ में स्थापित किया था /usr/lib/php5/20121212+lfs। हालाँकि, क्योंकि मैं कुछ साझा वस्तुओं के निर्माण में C ++ में काम कर रहा था, मैंने निर्देशिका अनुमतियों के साथ खिलवाड़ किया और चीजों को इस तरह से खराब कर दिया कि गैर-रूट खातों के पास निर्देशिका निष्पादन (निर्देशिका खुली) अनुमतियों को देखने की अनुमति नहीं थी /usr/lib/php5/20121212+lfs। इसलिए, मैंने उस समस्या को ठीक करने के लिए निम्न कमांड टाइप की:

sudo chmod o+x /usr/lib/php5/20121212+lfs

अब जब मैं php -l example.phpएक गैर-रूट उपयोगकर्ता के रूप में करता हूं , तो यह मुझे कभी भी "डायनेमिक लाइब्रेरी लोड करने में अक्षम" समस्या नहीं देता है।


यह मेरे लिए सटीक समाधान था, Ubuntu 16.10 का उपयोग करते हुए। सुनिश्चित करें कि आप लिनक्स के उपयोग के दौरान एक्सटेंशन "एक्सटेंशन" को .so में बदल सकते हैं (मानक कॉन्फ़िगरेशन मुझे दे रहा था। dll)
mroesler

मैं linux टकसाल 18 का उपयोग कर रहा हूं और यह अभी भी मान्य है
Dika

2

जब मैं संगीतकार को स्थापित करने की कोशिश करता हूं तो मुझे विंडोज के लिए XAMPP पर यही समस्या थी। मैंने किया php -vऔर php थ्रोइंग एरर:

डायनेमिक लाइब्रेरी '/xampp/php/ext/php_bz2.dll' लोड करने में असमर्थ

जब तक मुझे एहसास हुआ कि मुझे अपना XAMPP सेटअप करने की आवश्यकता है, तब तक मुझे समय लग गया। इसलिए मैं दौड़ता हूं setup_xampp.batऔर आकर्षण की तरह काम करता हूं ।


2

जब मैं संगीतकार को स्थापित करने की कोशिश करता हूं तो मुझे विंडोज 10 के लिए एक्सएएमपीपी पर समान समस्या थी।

डायनेमिक लाइब्रेरी '/xampp/php/ext/php_bz2.dll' लोड करने में असमर्थ

इसके बाद इस स्टेप्स को फॉलो करें

  1. बस अपने करंट_xampp_contain_drive को खोलें: texteditor (जैसे नोटपैड ++) में \ xampp (default_xampp_folder) \ php \ php.ini खोलें।
  2. अब बस खोजें - क्या current_xampp_contain_drive: \ xampp मौजूद है?
  3. यदि नहीं, तो "extension_dir" ढूंढें और ड्राइव नाम (c, d या अपना वांछित ड्राइव) प्राप्त करें।

extension_dir = "F: \ xampp731 \ php \ ext" (यहां finded_drive_name_from_the_file F है)

  1. फिर से finded_drive_name_from_the_file: \ xampp को current_xampp_contain_drive: \ xampp के साथ बदलें और सहेजें।
  2. अब फिर से कंपोज़र इंस्टॉलेशन प्रगति शुरू करें, मुझे लगता है कि आपकी समस्या हल हो जाएगी।

1

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

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20160303/xml.so'

मैं विशेष रूप से PHP संस्करण के लिए पुस्तकालय स्थापित करूंगा: -

sudo apt-get install php7.1-xml

और फिर अपाचे को पुनरारंभ करें। इसे मेरे लिए तय किया। आप अपने संस्करण की जाँच इस तरह कर सकते हैं: -

php -v

1

Windows 10 XAMPPअब के बाद मैं LAMPP (XAMPP)Ubuntu पर स्थापित किया। Windows XAMPPमैक (iOS) की तुलना को कॉन्फ़िगर करने के लिए बहुत कम था, लेकिन अब लिनक्स उबंटू के साथ मेरे पास कुछ और था क्योंकि लिनक्स में (एक अच्छी बात) जा रहे हैं।

मैंने भ्रमित किया और सक्रिय किया mysqli.dll(और mysql.dll: erase "#" में/etc/php/7.2/cli/php.ini

मुझे इससे PHP Warning: PHP Startup: Unable to load dynamic libraryसंबंधित संदेश मिलने लगे dll। मैंने mysql(and i).dllउसी फ़ाइल में टिप्पणी की थी, लेकिन जब तक मैंने "" टिप्पणी नहीं की, तब तक संदेश नहीं चला गया /opt/lampp/etc/php.ini

ऐसा लगता है कि XAMPP php.iniसे फ़ाइल पढ़ता है /etc/php/7.2/cliऔर में संशोधन करता php.iniहै /opt/lampp/etc। (; विस्तार = php_pdo_mysql.dll के बाद ";" Apache पुनः आरंभ किया और कोई संदेश नहीं।


1

मेरे मामले में मुझे यह त्रुटि मिली क्योंकि मैंने dll (साथ infixed -ts-) का थ्रेड-सुरक्षित संस्करण डाउनलोड किया था , लेकिन php की मेरी php स्थापना एक गैर-थ्रेड-सुरक्षित (साथ infixed -nts-) थी। Dll के सही संस्करण को डाउनलोड करना, मेरे php संस्थापन संस्करण के मिलान से समस्या का समाधान हो गया।


1
सर्वर थ्रेड-सुरक्षित कॉन्फिग पर जाँच करने के लिए phpinfo () और thread-safetyसक्षम / अक्षम देखें। Ts के लिए कॉन्फ़िगर किए जाने पर रिवर्स, डाउनलोड किए गए nts में समान त्रुटि थी।
एंडी

0

मुझे एक समान त्रुटि का सामना करना पड़ा। मैंने जो गलती की, वह "url" नाम का उपयोग मेरे url में "पेज" के बजाय "पेज" के रूप में था।


0

विंडोज में, यह "सिस्टम वातावरण चर" में एक गलत पथ हो सकता है। Php.exe निर्देशिका के लिए "पथ" अच्छा होना चाहिए।



0

मैंने जो किया था;

1 - मुझे पहली बार पता चला कि PHP का कौन सा संस्करण है जो फंक्शन फंपीएफो () के माध्यम से उपयोग कर रहा है

<?php   
    phpinfo();
?>

2 - वहां से आपको अपने कॉन्फ़िगरेशन (php.ini) फ़ाइल का स्थान मिलेगा

विधि phpinfo () परिणाम

3 - उस फ़ाइल को खोलें

4 - नीचे दी गई छवि के समान रेखा पर टिप्पणी करें

यह एक अलग मूल्य हो सकता है लेकिन यह विस्तार से संबंधित होना चाहिए। मैं कोई विशेषज्ञ नहीं हूं लेकिन इस प्रक्रिया ने मुझे इसी तरह की समस्या को हल करने में मदद की।

यहां छवि विवरण दर्ज करें


0

'सी: /PHP/5.2.13/ext \ php_mcrypt1.dll'

मैं कहूंगा कि आपके php.ini (अतिरिक्त 1) पर कुछ टाइपो है। शायद आप एक अलग php.ini लोड कर रहे हैं जो आप उम्मीद करते हैं (सुनिश्चित करने के लिए php.ini का आउटपुट देखें)।

इसके अलावा अन्य सुनिश्चित करें कि php_mcrypt.dll और PHP:

एक ही वीसी रनटाइम लाइब्रेरी से जुड़े थे (आमतौर पर VC6 के लिए msvcrt.dll या VC9 के लिए msvcrt90.dll) - इसके लिए निर्भरता वॉकर का उपयोग करें। दोनों डिबग बिल्ड हैं या दोनों रिलीज़ बिल्ड हैं दोनों के लिए ZTS या ZTS अक्षम लाइब्रेरी के लिए निर्भर हैं आगे की लाइब्रेरी (DLL), सुनिश्चित करें कि वे उपलब्ध हैं (उदाहरण के रूप में उसी निर्देशिका में) PHP आपको अर्थ देनी चाहिए यदि उपरोक्त तीन शर्तों में से कोई भी संतुष्ट नहीं है, लेकिन मैंने वैसे भी लिखा है क्योंकि मुझे यकीन नहीं है PHP 5.2 के लिए।


-1

मेरे पास एक समान समस्या थी और बोल्ड सभी चेतावनियों / त्रुटियों में से कुछ है।

Warning: PHP Startup: Unable to load dynamic library 'curl' (tried: C:\php\ext\curl 
(The specified module could not be found.), C:\php\ext\php_curl.dll (The specified 
module 
could not be found.)) in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library 'fileinfo' (tried: 
C:\php\ext\fileinfo (The specified module could not be found.), 
C:\php\ext\php_fileinfo.dll (The specified module could not be found.)) in Unknown on 
line 0

यदि आप चेतावनियों के माध्यम से जाँच करते हैं, तो आप देखेंगे कि यह php एक्सटेंशन की तलाश में है, C:\php\ext\इसलिए मैंने C:\निर्देशिका में php डाउनलोड किया और इससे समस्याओं का समाधान हुआ।

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