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




laravel laravel-4 (14)

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

Laravel requires the Mcrypt PHP extension.

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

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


ओएस एक्स पर

एमएएमपी का उपयोग करना

आप जिस PHP का उपयोग कर रहे हैं उसका कौन सा संस्करण देखने के लिए टर्मिनल में which php आदेश दर्ज करें। यदि यह एमएएमपी से PHP संस्करण नहीं है, तो बैश द्वारा उपयोग किए जाने वाले $ PATH चर को अपडेट करने की आवश्यकता होगी।

सबसे पहले, आपको एमएएमपी से कौन सा PHP संस्करण देखने के लिए "सीडी / एप्लीकेशन / एमएएमपी / बिन / पीएचपी" कमांड का उपयोग करना चाहिए और संस्करण (जैसे, php5.6.7) का ध्यान रखना चाहिए।

एक बार जब आप संस्करण को जानते हैं, तो आपको ~/.bash_profile फ़ाइल को संपादित करना चाहिए (यानी, .bash_profile जो आपकी होम निर्देशिका में है) और एक निर्यात लाइन जोड़ें:

    export PATH=/Applications/MAMP/bin/php/php5.6.7/bin:$PATH

सुनिश्चित करें कि आप PHP के संस्करण के साथ php5.6.7 को प्रतिस्थापित करते हैं जिसे आपने MAMP में चुना है।

एक बार फ़ाइल सहेजी जाने के बाद, सुनिश्चित करें कि आप अपना टर्मिनल बंद करें और इसे फिर से खोलें। एक बार ऐसा करने के बाद, आप PHP का उपयोग करेंगे जो एमएएमपी के साथ जहाजों का उपयोग करेगा।

आसानी से यह पता लगाने का एक तरीका है कि लाइन को क्या होना चाहिए, आपको अपने .bash_profile अंदर डालने की आवश्यकता है, अपने टर्मिनल के अंदर निम्न आदेश चलाएं:

    echo export PATH=`cat /Applications/MAMP/conf/apache/httpd.conf \
         | grep php | grep -i LoadModule | head -n1 \
         | sed -e 's/^[^\/]*\/\(.*\)\/mod.*/\/\1/'`/bin:\$PATH

अपने टर्मिनल में उन तीन लाइनों की प्रतिलिपि बनाना और पेस्ट करना एमएएमपी नियंत्रण कक्ष के अंदर चुने गए PHP संस्करण को सही ढंग से आउटपुट करेगा।

होमब्रू / मैकपॉर्ट्स का उपयोग करना

सुनिश्चित करें कि आपके path में /usr/local/bin/ (होमब्रू) या /opt/local/bin (MacPorts) शामिल हैं यदि आप इन दो पैकेज प्रबंधकों में से किसी एक के साथ आने वाले PHP का उपयोग कर रहे हैं।

MacPorts के साथ PHP पथ की जांच

आप निम्न आदेश के साथ मैकपॉर्ट्स का उपयोग कर PHP का सटीक स्थान पा सकते हैं:

port contents php70 | grep bin/php

ध्यान दें कि आपको PHP के संस्करण के साथ php70 को प्रतिस्थापित करना चाहिए जिसे आपने इंस्टॉल किया है।

होमब्रू-पीएचपी के साथ PHP पथ की जांच करें

होमब्रू-पीएचपी ( https://github.com/Homebrew/homebrew-php ) एक टैप है जिसमें PHP के विभिन्न संस्करण हैं।

आप निम्न आदेश के साथ होमब्रू का उपयोग कर PHP का सटीक स्थान पा सकते हैं:

brew --prefix homebrew/php/php56

ध्यान दें कि आपको PHP के संस्करण के साथ php56 को प्रतिस्थापित करना चाहिए जिसे आपने इंस्टॉल किया है।


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

$ brew install mcrypt php70-mcrypt

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


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

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

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

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


आपको एक पर्यावरण में सभी की जरूरत है। आप एमएएमपी या एक्सएएमपीपी या किसी अन्य उपकरण का उपयोग कर सकते हैं। इन उपकरणों में से किसी एक को स्थापित करने के बाद आपको अपने .bash_profile को संपादित करने (बनाने) की आवश्यकता होगी (मान लें कि आप बैश का उपयोग करते हैं)।

या यहां तक ​​कि सरल और अधिक पेशेवर आप Laravel Homestead का उपयोग कर सकते हैं।

आधिकारिक दस्तावेज का एक लिंक यहां दिया गया है: http://laravel.com/docs/5.0/homestead

इसके अलावा जेफरी के बारे में एक नि: शुल्क ट्यूटोरियल है: https://laracasts.com/series/laravel-5-fundamentals/episodes/2

मैं सलाह देता हूं कि आप होमस्टेड के साथ जाएं क्योंकि आप निम्न सभी टूल्स को प्रीइंस्टॉल करेंगे।

  • उबंटू 14.04
  • PHP 5.6
  • HHVM
  • nginx
  • माई एसक्यूएल
  • postgres
  • नोड (बोवर, ग्रंट और गुलप के साथ)
  • Redis
  • memcached
  • Beanstalkd
  • लैरवेल दूत
  • फैब्रिक + हिपचैट एक्सटेंशन

उबंटू 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


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

sudo php5enmod mcrypt

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


उबंटू में (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

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


उबंटू में 14.04

sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt

उबंटू 16.04

sudo apt-get install php-mcrypt
sudo phpenmod mcrypt

क्या आपके पास एमएएमपी स्थापित है?

टर्मिनल में which php उपयोग यह देखने के लिए करें कि आप किस PHP का उपयोग कर रहे हैं।

यदि यह एमएएमपी से PHP संस्करण नहीं है, तो आपको उपयोगकर्ता की होम निर्देशिका में .bash_profile को संपादित या जोड़ना चाहिए, जो है: cd ~

.bash_profile , निम्न पंक्ति जोड़ें:

export PATH=/Applications/MAMP/bin/php/php5.4.10/bin:$PATH

संपादित किया गया: सबसे पहले आपको कमांड cd /Applications/MAMP/bin/php का उपयोग करना चाहिए ताकि आप जिस एमएएमपी का उपयोग कर रहे हैं उसका PHP संस्करण देखें और फिर उपरोक्त PHP संस्करण के साथ प्रतिस्थापित करें।

फिर टर्मिनल को restart कि आप किस PHP का उपयोग कर रहे हैं।

और यह अब काम करना चाहिए।


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

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

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

यह मेरे लिनक्स मिंट स्थानीय पर्यावरण पर मेरे लिए हल किया गया 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


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

sudo apt-get install php5-mcrypt

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

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

)


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

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

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


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

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

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





mcrypt