Mysql के लिए 14.04 सर्वर में मैकक्रिप्ट एक्सटेंशन गायब है


112

Ubuntu 14.04 पर php mcrypt एक्सटेंशन से पता चलता है कि यह ठीक से स्थापित है, लेकिन phpmyadmin कहते हैं:

 The mcrypt extension is missing. Please check your PHP configuration.

मेरा वर्तमान php कॉन्फिगरेशन यहाँ है । अगर आपको और जानकारी चाहिए, तो कृपया मुझे टिप्पणियों के माध्यम से संपर्क करें।

$ sudo apt-get install php5-mcrypt
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    php5-mcrypt is already the newest version.
    0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

7
स्वीकृत उत्तर सर्वोत्तम अभ्यास नहीं है। सबसे सरल, और सही उत्तर: http://askubuntu.com/a/477608/139249 में भी सबसे अधिक वोट हैं।
माइक स्टीवर्ट

दूसरों के संदर्भ के लिए, "सबसे सरल" उत्तर मेरे लिए काम नहीं करता था। php5enmod mcryptअपाचे को फ्रीज करें। php5dismod mcryptइसे फिर से मुक्त किया। मैं स्वीकृत उत्तर के साथ गया extension=..और इस समय के लिए पथ को संशोधित php5enmod mcryptकिया। तो हां, यह व्यापक है और स्वीकृत उत्तर होना चाहिए।
ओलिवर विलियम्स

जवाबों:


138

इसे इस्तेमाल करे:

sudo updatedb 
locate mcrypt.ini

इसे / etc / php5 / mods पर उपलब्ध दिखाना चाहिए

locate mcrypt.so

Mcrypt.ini को संपादित करें और mcrypt.so के पथ से मिलान करने के लिए एक्सटेंशन बदलें, उदाहरण:

extension=/usr/lib/php5/20121212/mcrypt.so

अब यह:

sudo php5enmod mcrypt - (optional since its already enabled during phpmyadmin setup)

सत्यापित करें कि नई फाइलें यहां मौजूद हैं (उन्हें ऊपर के मुद्दे से ऑटो बनाया जाना चाहिए)

ls -al /etc/php5/cli/conf.d/20-mcrypt.ini
ls -al /etc/php5/apache2/conf.d/20-mcrypt.ini

अन्यथा निम्नलिखित करें

अब सिंबल लिंक बनाएं

sudo ln -s /etc/php5/mods-available/mcrypt.ini /etc/php5/cli/conf.d/20-mcrypt.ini
sudo ln -s /etc/php5/mods-available/mcrypt.ini /etc/php5/apache2/conf.d/20-mcrypt.ini

अपाचे को फिर से शुरू करें

sudo service apache2 restart

Php5 या php5-fpm को पुनरारंभ करें

sudo service php5 restart

ये गलत है! मुझे लगता है कि आपका मतलब कुछ इस तरह था: sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.ini और दूसरे तरीके से नहीं।
भेड़ियाडाउन

14
php5enmod mcryptमेरे लिए बस सहजता से काम करना ।
डायोसनी

3
रनिंग आपके php5enmod mcryptलिए उन प्रतीकात्मक लिंक को बनाएगा। मैन्युअल रूप से करने की आवश्यकता नहीं है (यानी आप ln -sकमांड को छोड़ सकते हैं )।
सेरानो

1
रनिंग php5enmod mcryptसही उबंटू / डेबियन तरीका है। यह जवाब हालांकि काम करेगा, बोझिल है और सबसे अच्छा अभ्यास नहीं है।
माइक स्टीवर्ट

1
ऊपर के कई चरण आवश्यक नहीं हैं। देखिए @ MURATSPLAT का जवाब।
रैप्टर

155

ऐसा करने की कोशिश करें:

sudo php5enmod mcrypt

और तब:

sudo service apache2 restart 

मैंने अपने कंप्यूटर में नए Ubuntu 14.04 (डेस्कटॉप संस्करण) स्थापित किए हैं। यह तरीका mcrypt को सक्षम करने के लिए काम करता है जो पहले से स्थापित था।


5
ध्यान दें, यदि आप php5-fpm के साथ nginx चला रहे हैं - तो php5-fpm service restart(या फिर अगर यह अंततः पैच हो गया है तो पुनः लोड करें)
माइक स्टीवर्ट

2
वे दो कमांड यह करते हैं: पहली पंक्ति 'mcrypt' नाम के मॉड्यूल को सक्षम कर रही है, और फिर कॉन्फ़िगर को अपडेट करने के लिए apache2 को पुनरारंभ करें। आप से सक्षम मॉड्यूल देख सकते हैं /etc/apache2/mods-available। आनंद लें जीवन का आनंद :)
itiskj

sudo service apache2 reloadपर्याप्त है, कोई वास्तविक पुनरारंभ की आवश्यकता नहीं है (14.04 पर वैसे भी, यही मैंने इस पर कोशिश की है)
जैस्पर

55

mcryptPHP के लिए एक्सटेंशन स्थापित करें , इसे सक्षम करें, और Apache पुनरारंभ करें। निम्नलिखित करने के लिए आदेश हैं:

sudo apt-get install mcrypt php5-mcrypt
sudo php5enmod mcrypt
sudo service apache2 restart

1
सरल। उत्तम। मुद्दों के बिना काम करता है, कम से कम मेरे लिए Ubuntu 14.04.1 LTS (भरोसेमंद) पर
Gor

यह ubuntu 14.10 पर भी काम कर रहा है
कोका अकैट

मैं आपको mcryptअपनी पहली पंक्ति में शामिल नहीं करने की सलाह दूंगा। यह अंतर्निहित रूप से एक निर्भरता के रूप में स्थापित है php5-mcrypt, लेकिन अगर आप इसे स्पष्ट रूप से स्थापित करते हैं, तो आप इसे हटाने के लिए नहीं जानते हैं यदि आप बाद में ph5-mcryptपैकेज को अन-इंस्टॉल करना चुनते हैं ।
बेलाज

@beldaz कम-से-कम एक सर्वर है जहाँ apt-get के अनुसार php5-mcrypt स्थापित किया गया था, लेकिन mcrypt अनुपलब्ध था, जिसके कारण pnp मॉड्यूल को जूमला इंस्टॉलेशन समस्या के लिए सक्षम नहीं बनाया जा रहा था। इसलिए mcrypt सहित मेरे लिए समझ में आता है।
टैगमैकर

6

PHP5-mcrypt उबंटू पैकेज कॉन्फ़िग फ़ाइल को स्थापित करने mcrypt.iniमें /etc/php5/conf.d/जो पुराने पीएचपी config निर्देशिका लेआउट है।

PHP5 में मॉड्यूल को सक्षम करने के लिए काम करने का वर्तमान तरीका इनिया फाइलों को /etc/php5/mods-availableनिर्देशिका में रखना है । फिर, PHP5 में मॉड्यूल को सक्षम करने के लिए, आपको /etc/php5/apache2/conf.dनिर्देशिका को सक्षम करने के लिए निर्देशिका से संबंधित आईएनआई फ़ाइलों के लिए एक प्रतीकात्मक लिंक बनाना होगा जब PHP का उपयोग Apache या / के तहत किया जाता है और /etc/php5/cli/conf.dयदि आप इस मॉड्यूल को सक्षम करना चाहते हैं जब आप बाहर PHP का उपयोग करते हैं। Apache, स्क्रिप्ट में कमांड लाइन पर या crontab से चलती है।

यह भी ध्यान दें कि conf.dनिर्देशिका में, आप एक विशिष्ट क्रम में मॉड्यूल लोड करने के लिए उसके सामने एक नंबर डालकर ini फ़ाइल का लिंक बना सकते हैं। उपयोगी जब आपको एक मॉड्यूल को दूसरे पर निर्भर करने के लिए लोड करने की आवश्यकता होती है।

यदि आप अपाचे के लिए मॉड्यूल को सक्षम कर चुके हैं, तो बेशक, अपाचे को पुनः आरंभ करना न भूलें:

 sudo service apache2 restart

4

मेरा 14.04 सर्वर केवल आवश्यक स्थापित (php5-mcrypt स्थापित होने के बाद)

sudo php5enmod mcrypt
sudo service apache2 restart

3

यदि समस्या अभी भी होती है,

मॉड्यूल को जोड़कर सक्षम करें: extension=mcrypt.soको

/etc/php5/cli/php.ini

तथा

/etc/php5/apache2/php.ini


1
मेरे लिए 'एक्सटेंशन = mcrypt.so' जोड़ने के बाद mcrypt स्थापित करने के बाद काम किया। लुबंटू 14.04 ट्रस्टी थार
क्लेस्सिल्वा

यह काम करता है और WAY सरल है तो स्वीकृत उत्तर ... जो अपडेट होने पर टूट भी जाएगा।
एरिक

मैंने यहां और अन्य स्थानों पर हर निर्देश का पालन किया लेकिन व्यर्थ। ubuntu 14.04.3 - PHP 5.5.9-1ubuntu4.14 - nginx / 1.8.1 - सर्वर संस्करण: 5.7.10 - MySQL - डेटाबेस क्लाइंट संस्करण: libmysql - 5.5.47 - phpMyAdmin संस्करण: 4.0 %deb1 .... किसी को एक विचार है?
जदयू

2

Ubuntu 16.04 LTS में, phc 5.6 के साथ mcrypt मॉड्यूल को सक्षम करने के लिए:

sudo apt-get install mcrypt
sudo apt-get install php5.6-mcrypt
sudo phpenmod mcrypt

या php 7.0 के साथ:

sudo apt-get install mcrypt
sudo apt-get install php7.0-mcrypt
sudo phpenmod mcrypt

और फिर

sudo service apache2 restart


0

आप को चलाकर PHP के लिए mcrypt एक्सटेंशन को स्थापित करने में सक्षम होना चाहिए:

sudo apt-get install php5-mcrypt

अच्छी तरह से, यह कहता है कि यह (कमांड लाइन) ठीक से स्थापित है, लेकिन यह किसी भी तरह सर्वर से गायब है जैसा कि ऊपर उल्लेख किया गया है
मत्थापिक्कोकरेट

1
@ jkt123: मैंने देखा है कि जब आप उबंटू में php5-mcrypt जैसे कुछ php मॉड्यूल स्थापित करते हैं, तो सभी फाइलें बाद में होती हैं, लेकिन मॉड्यूल मुख्य PHP कॉन्फ़िगरेशन में सक्षम नहीं होता है। आपको इसे स्वीकार किए गए उत्तर में वर्णित मैन्युअल रूप से सक्रिय करना होगा।
बेनोइट

यह एक्सटेंशन = mcrypt.so को php.ini पर जोड़े बिना काम नहीं करता है
एरिक

0

ध्यान दें कि Ubuntu 14.04 में php5-mcrypt ब्रह्मांड भंडार में है जो अक्षम किया जा सकता है। इस मामले में इसे स्थापित करने के लिए आपको रिपॉजिटरी को सक्षम करना होगा:

sudo add-apt-repository universe


0

यह Ubuntu 14.04 सर्वर पर php 5.5 mcrypt एक्सटेंशन को जोड़ने का सबसे अच्छा तरीका है

sudo apt-get install php5-mcrypt
sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available
sudo php5enmod mcrypt 
sudo service apache2 restart

0

@ केव्सिन के जवाब ने मेरे लिए काम किया, लेकिन मुझे काम करने के लिए दौड़ना mkdir -p /etc/php5/apache2/conf.d/और मैन्युअल रूप से दौड़ना पड़ा sudo ln -s /etc/php5/mods-available/mcrypt.ini /etc/php5/apache2/conf.d/20-mcrypt.inisudo php5enmod mcryptपहले सिमलिंक के लिए ठीक काम किया।

नोट: मैं PHP5-FPM चला रहा हूं। यही अंतर हो सकता है।


0

इसे खोजने वालों के लिए, Ubuntu 16.04 (PHP7 का उपयोग करके), यहाँ मैंने mcrypt को सक्षम करने के लिए किया है:

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