लैरवेल को मैक्रिप्ट PHP एक्सटेंशन की आवश्यकता है




laravel laravel-4 (16)

मैं OSX पर Laravel 4 में migrate फ़ंक्शन का उपयोग करने की कोशिश कर रहा हूं। हालांकि, मुझे निम्न त्रुटि मिल रही है:

Laravel requires the Mcrypt PHP extension.

जहां तक ​​मैं समझता हूं, यह पहले से ही सक्षम है (नीचे दी गई छवि देखें)।

क्या गलत है, और मैं इसे कैसे ठीक कर सकता हूं?


ब्रू के साथ ओएसएक्स

$ brew install mcrypt php70-mcrypt

मैं PHP 7.0.x चला रहा हूं, इसलिए यदि आप एक अलग संस्करण का उपयोग कर रहे हैं, तो अपने संस्करण में "php70" बदलें।
जैसा कि अन्य उत्तरों में बताया गया है, आप $ php -v साथ अपना PHP संस्करण देख सकते हैं।


सिर्फ yumers के लिए,

yum install php-mcrypt service httpd restart chown -R apache:apache apppath

शायद आपको remi repo इंस्टॉल करने की आवश्यकता है, कृपया http://rpms.famillecollet.com/ देखें


उन लोगों के लिए जो आज भी यहां आते हैं:

लार्वेल को अब mcrypt एक्सटेंशन की आवश्यकता नहीं हैmcrypt अप्रचलित है, libmcrypt के लिए अंतिम अद्यतन 2007 में था। Laravel 4.2 अप्रचलित भी है और इसका कोई और समर्थन नहीं है। सबसे अच्छा (= सुरक्षित) समाधान Laravel> 5.1 को अपडेट करना है (लैरवेल 5.2 से पहले कोई एलटीएस नहीं है)।

जून 2015 में लैरीवेल से मैक्रिप्ट हटा दिया गया था: https://github.com/laravel/framework/pull/9041


@JetLaggy पर विस्तार:

एमएएमपी निर्देशिका के साथ .bash_profile को संशोधित करने के लिए बार-बार कोशिश करने के बाद, मैंने एमएएमपी PHP निर्देशिका के लिए फ़ाइल अनुमतियां बदल दीं और उचित निर्देशिका दिखाने के लिए 'कौन सी php' प्राप्त करने में सक्षम था। समस्या यह थी कि अन्य कार्य काम नहीं करते थे, जैसे कि 'php -v'।

तो मैंने एमएएमपी अपडेट किया। http://documentation.mamp.info/en/mamp/installation/updating-mamp

यह मेरे विशेष सेटअप के लिए चाल है। मुझे PHP के अद्यतन संस्करण को प्रतिबिंबित करने के लिए अपने पथ को समायोजित करना पड़ा, लेकिन एक बार मैंने किया, सब कुछ काम किया!


वेब सक्षम एक्सटेंशन और कमांड लाइन सक्षम एक्सटेंशन भिन्न हो सकते हैं। अपने टर्मिनल में php -m चलाएं और यह देखने के लिए जांचें कि क्या mcrypt सूचीबद्ध है या नहीं। यदि ऐसा नहीं है तो जांच करें कि कमांड लाइन आपके php.ini फ़ाइल को आपके टर्मिनल से php --ini चलाकर लोड कर रही है।

इस php.ini फ़ाइल में आप एक्सटेंशन को सक्षम कर सकते हैं।

OSX

ओएसएक्स के साथ भेजे गए मूल PHP को इंगित टर्मिनल के कारण मैंने ओएसएक्स पर समस्याओं के चलते लोगों के बारे में सुना है। आपको अपने PHP के वास्तविक पथ को शामिल करने के लिए अपनी बैश प्रोफ़ाइल को अपडेट करना चाहिए। ऐसा कुछ (मैं वास्तव में ओएसएक्स का उपयोग नहीं करता इसलिए यह 100% नहीं हो सकता है):

export PATH=/usr/local/php5/bin:$PATH

उबंटू

उबंटू के पहले संस्करणों (14.04 से पहले) जब आप sudo apt-get install php5-mcrypt चलाते हैं तो यह वास्तव में एक्सटेंशन को mods-available । आपको इसे सिमलिंक करने की आवश्यकता होगी।

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

सभी उबंटू संस्करणों पर आपको इसे स्थापित करने के बाद मोड को सक्षम करने की आवश्यकता होगी। आप php5enmod साथ ऐसा कर सकते हैं।

sudo php5enmod mcrypt
sudo service apache2 restart

टिप्पणियाँ


उबंटू 14.04 पर php-fpm अधिष्ठापन के लिए, निम्नलिखित मेरे लिए काम किया:

sudo apt-get install php5-mcrypt

यह mcrypt.ini फ़ाइल /etc/php5/mods-available/

फिर

sudo php5enmod mcrypt

एक /etc/php5/fpm/conf.d/ बना देगा: /etc/php5/fpm/conf.d/

बस php-fpm सेवाओं sudo service php5-fpm restart


यह मेरे लिनक्स मिंट स्थानीय पर्यावरण पर मेरे लिए हल किया गया https://askubuntu.com/questions/350942/cannot-get-mcrypt-for-php5

मुझे निम्नलिखित फ़ोल्डरों /etc/php5/apache2/conf.d/mcrypt.ini और /etc/php5/cli/conf.d में मेरी /etc/php5/conf.d/mcrypt.ini फ़ाइल में एक सिम्लिंक बनाने की आवश्यकता है /mcrypt.ini


उबंटू में (PHP-FPM, Nginx)

sudo apt-get install php5-mcrypt

Php5-mcrypt स्थापित करने के बाद

आपको मोड में उपलब्ध आईएनआई फाइलों के लिए एक सिम्लिंक बनाना होगा:

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

सक्षम:

sudo php5enmod mcrypt

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

sudo service php5-fpm restart

ज्यादा जानकारी


या, उपयोग करें:

sudo apt-get install php5-mcrypt

(सुनिश्चित नहीं है कि यह मानक PHP इंस्टॉल पर काम करेगा - मैंने पैकेज का उपयोग कर php 5.5.7 स्थापित किया है:

sudo add-apt-repository ppa:ondrej/php5 
sudo apt-get update

)


अपाचे पर काम कर रहे लैरवेल को प्राप्त करना

PHP संस्करण: PHP 5.5.9

उबंटू संस्करण: 14.04

मेरे पास खिड़कियों पर एक कामकाजी लार्वा परियोजना थी। जब मैंने इसे उबंटू सर्वर पर कॉपी किया, तो मैंने मैक्रिप्ट त्रुटि प्राप्त करना शुरू कर दिया। यह परीक्षण और त्रुटि के कई घंटों के बाद

कारीगर कमांड काम कर रही है

(यदि आप कारीगर कमांड लाइन उपकरण का उपयोग करते समय त्रुटि को मैक्रिप्ट कर रहे हैं)

मैंने बहुत परीक्षण और त्रुटि की, इसलिए हर बार जब मैं php5enmod कमांड चलाता हूं, तो मुझे त्रुटि संदेश मिलते थे। लेकिन ताजा इंस्टॉल पर कोई त्रुटि संदेश नहीं था। इस कदम के बाद मुझे कारीगर कमांड मिल गया

sudo rm /etc/php5/mods-available/mcrypt.ini
sudo apt-get purge php5-mcrypt
sudo apt-get install mcrypt
sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt

ब्राउज़र त्रुटि को ठीक करना

(यदि स्थानीय लार्वेल इंडेक्स पेज तक पहुंचने पर आपको ब्राउजर में मैक्रिप्ट त्रुटि हो रही है)

sudo nano /etc/php5/apache2/php.ini

php ini के गतिशील रूप से संकलित एक्सटेंशन अनुभाग के तहत निम्न पंक्ति जोड़ें

extension=mcrypt.so

अपाचे सर्वर को पुनरारंभ करें, लार्वा कैश को शुद्ध करें और सब कुछ काम कर रहा है


मेरा ओएस योसमेट है।

मैं अनुवर्ती आदेशों के माध्यम से, इस समस्या को हल करता हूं:

php --ini

उदाहरण आउटपुट

Configuration File (php.ini) Path: /usr/local/etc/php/5.5
Loaded Configuration File:         /usr/local/etc/php/5.5/php.ini
Scan for additional .ini files in: /usr/local/etc/php/5.5/conf.d
Additional .ini files parsed:      (none)

Php55 ini फ़ाइल का नाम बदलें या हटाएं

mv /usr/local/etc/php/5.5/php.ini /usr/local/etc/php/5.5/php.ini.default

इसके बाद सिम्लिंक बनाएं

ln -s /etc/php.ini /usr/local/etc/php/5.5/php.ini

और अपाचे सर्वर को पुनरारंभ करें

sudo apachectl restart

और उसके बाद आप अपने PHP मॉड्यूल को देख सकते हैं:

php -m

यदि आप जेड शैल का उपयोग कर रहे हैं, तो बस निम्न कार्य करें:

  1. टर्मिनल खोलें
  2. सूडो nano ~/.zshrc
  3. इसे पेस्ट करें; export PATH=/Applications/MAMP/bin/php/php5.6.10/bin:$PATH
  4. बचाना
  5. रन source ~/.zshrc
  6. which php चलाएं - आपको एमएएमपी 5.6.10 पथ मिलना चाहिए

5.6.10 आपके एमएएमपी में सेट PHP का संस्करण है।


उबंटू में 14.04

sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt

उबंटू 16.04

sudo apt-get install php-mcrypt
sudo phpenmod mcrypt

उबंटू के लिए अगर इन काम नहीं कर रहे हैं तो इन चरणों को आजमाएं:

cd ~

फिर

   sudo apt-get remove php5-mcrypt

फिर

sudo apt-get install php5-mcrypt

फिर

sudo php5enmod mcrypt

आखिरकार

sudo service apache2 restart

उम्मीद है कि मदद करेगा। धन्यवाद !


उन लोगों के लिए जो XAMPP 1.7.3 और मैक का उपयोग करते हैं

  1. टर्मिनल पर जाएं
  2. which php दर्ज करें
    • अगर यह /usr/bin/php कहता है, तो 3 पर आगे बढ़ें।
  3. sudo nano ~/.bash_profile (या sudo vim ~/.bash_profile यदि आप जानते हैं कि इसका उपयोग कैसे करें)
  4. फिर इस export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH" पेस्ट करें export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH"
  5. Ctrl + O फिर सेव करने के लिए दर्ज करें, फिर बाहर निकलने के लिए Ctrl + X।
  6. cd ~ टाइप करें
  7. टाइप करें . .bash_profile
  8. टर्मिनल पुनरारंभ करें।
  9. which php दर्ज करें। यदि आपने इसे सही किया है, तो यह # 4 में पथ जैसा ही होना चाहिए।

Mcrypt त्रुटि का कारण यह है कि आपका मैक अपने मूल php का उपयोग करता है, आपको इसे एक xampp में बदलने की आवश्यकता है।

पीएस मैं मैक उपयोगकर्ताओं के लिए लैरावेल 4 के लिए एमएएमपी का उपयोग करने की सलाह दूंगा, यह समस्या पसीने के बिना php फ़ाइल जानकारी त्रुटि के साथ हल हो जाएगी, और xampp का PHP संस्करण पुराना है।


उबंटू का उपयोग करना, बस

sudo php5enmod mcrypt

मेरे लिए चाल है। आपको अपाचे को पुनरारंभ करने की आवश्यकता नहीं है क्योंकि आपको केवल सीएलआई से PHP का उपयोग करने की आवश्यकता है।







mcrypt