PHP5 के लिए mcrypt प्राप्त नहीं कर सकता


29

मैंने ऐसा कई बार किया है:

sudo aptitude install php5-mcrypt

sudo apache2ctl restart

एप्टीट्यूड कहता है कि mcrypt स्थापित है। मैंने इसे 3 बार पहले ही पुनः इंस्टॉल कर लिया है। मैंने इसे स्थापित करने के बाद से लगभग 20 बार अपाचे को फिर से शुरू किया है। जब मैं phpInfo को देखता हूं, तो मैं mcrypt सूचीबद्ध नहीं देखता हूं। जब मैं अपने कोड को निष्पादित करने की कोशिश करता हूं तो यह कहता है कि mcrypt फ़ंक्शन (एक को चुनें - कोई भी) मौजूद नहीं है। mcrypt स्पष्ट रूप से सक्षम नहीं है।

क्या किसी के पास कोई विचार है जो गलत हो सकता है? मुझे नहीं पता कि कौन से टुकड़े कहां और कैसे होने चाहिए यह सब एक साथ फिट होना चाहिए।

मैंने PHP 5.5.3 स्थापित किया


क्या आपने पैकेज मैनेजर ( apt-get/ aptitude) से भी PHP स्थापित किया है? पैकेज php5-mcryptकेवल उसके php.iniबारे में "जानता है" के लिए एक्सटेंशन को कॉन्फ़िगर कर सकता है । दूसरी बात, मैं अब apache2ctlमॉड्यूल को लोड नहीं करता। अपाचे को पुनः आरंभ करने का "सामान्य" तरीका कुछ इस तरह होगा sudo service apache2 restart। तीसरा, PHP आपके Apache से कैसे जुड़ा है? यदि आप कुछ (f) cgi या php-fpm (mod-php के विपरीत) का उपयोग करते हैं, तो आप संभवतः PHP को अपने आप को पुनरारंभ करना होगा, इसके अलावा Apache को पुनरारंभ करना।
हेनिंग कोकरबेक

हमने एप्टीट्यूड का उपयोग करके सब कुछ स्थापित किया। apache2ctl बंद हो जाता है और अपाचे को पुनरारंभ करता है। हमने इन इंस्टॉल के बाद से कई बार कंप्यूटर को पुनरारंभ किया है। मुझे विश्वास है कि जब मैं कहता हूँ कि अपाचे को "पुनरारंभ" किया गया है क्योंकि हमने php5-mcrypt स्थापित किया है - साथ ही साथ PHP। PHP5 एक अपाचे मॉड्यूल के रूप में ठीक काम करता है - यह PHP में लिखी गई एक वेबसाइट है - इसलिए मुझे लगता है कि PHP एक अपाचे मॉड्यूल के रूप में स्थापित है। यदि मैं / etc / apache2 / mods- सक्षम php5 पर जाता हूं तो वह सूची में है। मैं / etc / php5 / mods उपलब्ध में mcrypt नहीं देखता हूं, लेकिन अगर मैं sudo एप्टीट्यूड खोज mcrypt करता हूं तो मुझे 3 चीजें स्थापित होती हैं: libmcypt4, mcrypt और php5-mcrypt - ????
webDeveloperDave

कौन सा php.iniके उत्पादन में सूचीबद्ध हैphpinfo (7 वीं प्रविष्टि के लिए 5 वीं के बारे में)? इसमें एक फाइल होनी चाहिए /etc/php5/। यदि आप उस फ़ाइल को खोजते हैं mcrypt, तो क्या आता है?
हेनिंग कोकरबेक

php.ini /etc/php5/apache2/php.ini में 2 सेटिंग्स के साथ वहाँ एक mcrypt अनुभाग है - दोनों ने टिप्पणी की - mcrypt.algorithms_dir और mcrypt.modes.dir उनके ऊपर की टिप्पणियों को डिफ़ॉल्ट / usr / स्थानीय / कहें। lib / libmcrypt - वे निर्देशिकाएँ मौजूद नहीं हैं। यह वही है जिसने मुझे इस तथ्य में उलझा दिया कि mcrypt को स्थापित नहीं किया जा सकता है, हालांकि योग्यता कहती है कि यह है। अगर मैं sudo एप्टीट्यूड की जानकारी mcrypt कहता हूं तो पैकेज स्टेट इंस्टॉल हो जाता है - संस्करण 2.6.8-1.3 - यह कहता है कि विरोध: विरोध: mcrypt - तो यह क्या कह रहा है? यह पैकेज खुद के साथ संघर्ष करता है? क्या उपयोगकर्ता जानकारी को एन्क्रिप्ट करने का एक बेहतर तरीका है?
webDeveloperDave 19

आपको mcryptपैकेज की परवाह करने की जरूरत नहीं है । वह कमांड लाइन प्रोग्राम है जो PHPm एक्सटेंशन के रूप में libmcrypt का उपयोग करता है। तो आपको यह सुनिश्चित करने की आवश्यकता है कि पैकेज libmcrypt4स्थापित है। क्या कोई php.iniस्निपेट है /etc/php5/conf.d/mcrypt.ini? उस लिब को लोड करना चाहिए। क्या उस स्निपेट को PHP द्वारा लोड किया गया है (देखें phpinfo)? फिर, क्या आपने अपाचे को फिर से चालू करने की कोशिश sudo service apache2 restartकी है apache2ctl?
हेनिंग कोकरबेक

जवाबों:


62

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

sudo php5enmod mcrypt

sudo service apache2 restart

अच्छी तरह से काम किया और सिमिलिंक (पूरी बात की नकल करने के लिए) मेरे लिए +1 है। इतना उखड़ा हुआ!
स्टेफानो माटांगू

4
इसने मेरे लिए काम किया। लेकिन मुझे पहले कमांड (ln) की जरूरत नहीं थी। मेरे पास /etc/php5/apache/conf.d फ़ोल्डर के भीतर कोई mcrypt.ini नहीं था। रनिंग सूडो php4enmod mcrypt ने काम किया। अब वहां फाइल करें। सर्वर काम करता है !. बहुत बहुत धन्यवाद।
1:27 बजे पेट

1
इसके काम करने के लिए धन्यवाद। लेकिन मैं उस कमांड के बारे में जानना चाहता हूं जो आपने "sudo php5enmod mcrypt" का इस्तेमाल किया था .. यह क्या है ..? इस आदेश का उपयोग करने का उद्देश्य क्या है ..?
इलावरसन

1
"sudo php5enmod mcrypt" एक प्राथमिकता संख्या (डिफ़ॉल्ट 20) के साथ "/etc/php5/conf.d" निर्देशिका में एक सिमलिंक बनाएगा, ताकि आप "सुडोकू php5dismod mcrypt" के साथ आईएनआई फ़ाइलों को संशोधित किए बिना इसे अनइंस्टॉल कर सकें
विज़्ज़ेरई

11

मुझे उबंटू 13.10 पर इसी तरह की समस्या थी। कंपोज़र को चलाने पर यह उसी त्रुटि को उत्पन्न करता है, जिसमें समाप्त होता है।

****Mcrypt PHP extension required.
Script php artisan clear-compiled handling the post-update-cmd event returned with an error

  [RuntimeException]  
  Error Output:****   

मैंने स्थापित किया mcryptऔरphp5-mcrypt योग्यता के साथ, और फिर भी एक लोडेड एक्सटेंशन के रूप में php -mनहीं दिखाया mcrypt:

aptitude install mcrypt
aptitude install php5-mcrypt

मैं एक भाग गया updatedb, और फिर locate mcrypt। मैं अपने mcrypt.iniमें मिला/etc/php5/conf.d । फिर भी अन्य सभी एक्सटेंशन (जैसे json) में उनकी .ini फाइलें /etc/php5/apache2/conf.dऔर थीं /etc/php5/cli/conf.d। ये दोनों लिंक थे ../../mods.available

तो, मैं फिर चला गया mcrypt.ini करने के लिए /etc/php5/available-modules, और सेट लिंक:

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

और इसी तरह के लिए /etc/php5/apache2/conf.d

और वोइला, यह दिखा php -m!


इस उत्तर के लिए बहुत बहुत धन्यवाद। पूरी तरह से मुझे सुलझा लिया। हालाँकि मैंने /etc/php5/conf.d/mcrypt.ini को स्थानांतरित नहीं किया था - मैंने सिर्फ अपने प्रतीकात्मक लिंक को उस स्थान पर इंगित करने के लिए सेट किया था जो काम भी करता था और संभवतः भविष्य में mcrypt के लिए भविष्य के अपडेट स्वचालित रूप से लोड हो जाएंगे?
एलेक्सेनार्ड

2

आईएनआई स्निपेट की तरह दिखता है जो पीएचपी को अपाचे द्वारा बुलाया जाने पर libmcrypt को लोड करता है। /etc/php5/apache2/conf.d/mcrypt.iniनिम्नलिखित सामग्री के साथ एक फाइल होनी चाहिए

; configuration for php MCrypt module
extension=mcrypt.so

आपको इसे अपने सिस्टम पर इंस्टॉल किए गए के आधार पर अन्य PHP एकीकरण के वॉनफिगरेशन जैसे /etc/php5/cli/conf.d/mcrypt.iniया से कॉपी करने में सक्षम होना चाहिए /etc/php5/conf.d/mcrypt.ini


2

डिफ़ॉल्ट रूप से mcrypt मॉड्यूल सक्षम नहीं है। Mcrypt मॉड्यूल सक्षम करें और फिर अपाचे ( क्रेडिट ) को पुनरारंभ करें

sudo php5enmod mcrypt
sudo service apache2 restart

1

खैर, यह बात है। ऐसा लगता है कि कभी-कभी हम सबसे सरल तरीके से sometimes एनमॉड ’के रूप में कुछ करने के तरीके की तलाश में होते हैं; ) जैसे बोइंस्ट कहते हैं sudo php5enmod mcrypt:। फिर अपाचे को फिर से लोड करें।

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