2015-12-31 7 views
6

मैं हो रही निम्न त्रुटिlibphp7.so संस्करण 12.0.0 या बाद में

आदेश

sudo apachectl -e info -k restart 

त्रुटि

homebrew.Now का उपयोग कर OSX El Capitan 10.11.2 और स्थापित php7 की एक नई स्थापना की है की आवश्यकता है
httpd: Syntax error on line 171 of /private/etc/apache2/httpd.conf: 
Cannot load /usr/local/opt/php70/libexec/apache2/libphp7.so into server: dlopen(/usr/local/opt/php70/libexec/apache2/libphp7.so, 10): 
Library not loaded: /usr/local/opt/libxml2/lib/libxml2.2.dylib 
    Referenced from: /usr/local/opt/php70/libexec/apache2/libphp7.so 
    Reason: Incompatible library version: libphp7.so requires version 12.0.0 or later, but libxml2.2.dylib provides version 10.0.0 

मैंने Google पर खोज की है लेकिन मुझे कोई विशिष्ट समाधान नहीं मिला है।

+1

यकीन नहीं करने के बारे में बदला जा सकता है ओएसएक्स, लेकिन 'apt-get install libxml2-dev' – hjpotter92

+0

इस प्रश्न का उत्तर देने की आवश्यकता है ... – Jay

+1

सुनिश्चित करें कि आप' brew install libxml2 libxslt libiconv' चलाएं। यह सिस्टम संस्करण को देख रहा है। – miken32

उत्तर

-3

कृपया यह मत करो !!! आपका सबसे अच्छा बीएटी मैक ओएस एक्स

ठीक है, मुझे बस एक रास्ता मिला है। यह kinda हैकी है, लेकिन यह काम करता है।

PHP 7 चलाने की कोशिश करते समय, के तहत libxml2.2.dylib के लिए अपाचे जांच करता है। यह जांचने के लिए कि वर्तमान में यह कौन सा संस्करण है, आप otool -L /usr/lib/libxml2.2.dylib चला सकते हैं।

कि शायद उत्पादन कुछ इस तरह होगा:

/usr/lib/libxml2.2.dylib (compatibility version 10.0.0, current version 10.9.0) 

लेकिन अपाचे और PHP संस्करण 12.0.0 चाहते हैं, तो चलो यह homebrew के माध्यम से स्थापित करते हैं।

brew install libxml2 libxslt libiconv 

यह /usr/local/Cellar/libxml2/2.9.4/lib की तरह कुछ करने के लिए libxml स्थापित हो जाएगा। इस निर्देशिका में libxml2.2.dylib नामक एक फ़ाइल होगी।

/usr/local/opt/libxml2/lib/libxml2.2.dylib (compatibility version 12.0.0, current version 12.4.0) 

तो इस संस्करण पीएचपी है और अपाचे के लिए देख रहे हैं:

आप otool -L /usr/local/Cellar/libxml2/2.9.4/lib/libxml2.2.dylib चलाते हैं, यह उत्पादन होगा। हम इस फ़ाइल को /usr/lib पर ले जाना चाहते हैं। लेकिन इतनी तेज़ी से नहीं, हमारे पास उस फ़ोल्डर में libxml2.2.dylib नाम की एक फ़ाइल है, इसलिए हमें इसे फिर से आवश्यकता होने पर .bak एक्सटेंशन को जोड़ने दें।

sudo mv /usr/lib/libxml2.2.dylib /usr/lib/libxml2.2.dylib.bak 

अब हम इस निर्देशिका में होमब्री स्थापित फ़ाइल को स्थानांतरित कर सकते हैं।

sudo cp /usr/local/Cellar/libxml2/2.9.4/lib/libxml2.2.dylib /usr/lib 

यह है कि! अब आप sudo apachectl -e info -k restart को कोई त्रुटि नहीं दे पाएंगे और PHP 7 सही तरीके से काम करना चाहिए।

+0

मैं इसकी अनुशंसा नहीं करता।सिस्टम libxml2 का नामकरण तब तक काम नहीं करेगा जब तक कि आपने सिस्टम इंटीग्रटी प्रोटेक्शन को अक्षम नहीं किया है, और किसी भी स्थिति में ऐसा करने से ओएस के साथ वितरित कुछ एप्लिकेशन तोड़ने की संभावना है। – duskwuff

+0

यह आपकी मशीन को तोड़ देगा और आपको मरम्मत के लिए एकल उपयोगकर्ता साइन-ऑन का उपयोग करने के लिए मजबूर करेगा। सावधान !! डाइलीब फ़ाइल को स्थानांतरित करने से पीएएम प्रतिबंधों का उल्लंघन होता है और जब तक आप रूट के रूप में रीबूट और ठीक नहीं करते हैं, तब तक सूडो और मूल रूप से सभी कार्यक्षमता को मार देंगे। – Steve

1

काढ़ा साथ libxml2 स्थापित करें,

brew install libxml2 

ऐड .bash_profile

export LIBRARY_PATH=/usr/local/Cellar/libxml2/2.9.4/lib/:$LIBRARY_PATH 

संस्करण में ~/लाइन निम्नलिखित "2.9.4" वर्तमान

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