चल पैकेज के माध्यम से OS X पर FastCGI (mod_php) के माध्यम से Magento 2 चल रहा है


23

समुदाय में विभिन्न फ़ोरम पोस्टिंग और वार्तालापों के आधार पर, ऐसा लगता है कि कुछ लोग एक PHP वातावरण के माध्यम से OS X पर Magento 2 विकास के उदाहरण चला रहे हैं जो अंतर्निहित Apache / PHP कॉम्बो का उपयोग नहीं करते हैं और इसके बजाय brewएक DNS प्राप्त करने के लिए पैकेज का उपयोग करते हैं FastCGI PHP वातावरण nginxऔर / या के साथ चल रहा है apache

क्या किसी के पास मैगेंटो 2 को प्राप्त करने के लिए कमांड और कॉन्फ़िगरेशन निर्देशों की एक सूची है और काढ़ा पैकेज का उपयोग करके OS X पर चलना या OS X पर FastCGI वातावरण में PHP चलाने के लिए कुछ अन्य साधन हैं? मैं डॉकर या वैग्रैंट की तलाश नहीं कर रहा हूं - मैं ओएस एक्स पर मूल रूप से PHP चलाना चाहता हूं और न ही उपयोग करना चाहता हूं mod_php


यकीन नहीं है कि अगर यह मददगार है, लेकिन मैं कभी भी काढ़ा का फैन नहीं था, तो मैंने PHP को हमेशा php-osx.liip.ch
Marcel

@ म्हौरी यदि आपके पास फ़िप-एफपीएम प्राप्त करने के निर्देश हैं, तो पूर्ण उत्तर में चलने वाले लीप पैकेज से बढ़िया होगा।
एलन स्टॉर्म

जवाबों:


12

होमब्रेव के साथ अपाचे + पीएचपी-एफपीएम

चरण ०: शुरू करने से पहले

brew update
brew tap homebrew/services

चरण 1: अपाचे

1.- चलो बिल्ड अपाचे सेवा को बंद करना सुनिश्चित करें

sudo launchctl unload /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null
sudo apachectl stop

2.- Apache2.4 स्थापित करें

brew install homebrew/apache/httpd24 --with-privileged-ports

यह कदम अपाचे को संकलित करने के बाद से कुछ समय लगेगा।

3.- सत्यापित करें कि यह सही ढंग से स्थापित किया गया था, आपको एक संदेश जैसा दिखना चाहिए:

शुरू करने के लिए homebrew / apache / httpd24 शुरू करें और स्टार्टअप पर पुनः आरंभ करें: sudo brew सेवाएं शुरू homebrew / apache / httpd24

चलो कमांड चलाते हैं:

sudo brew services start homebrew/apache/httpd24

सत्यापित करें कि सब कुछ लोड करके चल रहा है, http: // लोकलहोस्ट जिसके बाद हमें इट वर्क्स देखना चाहिए ! संदेश यह काम करता हैं

चरण 2: PHP-FPM

1.- आइए PHP इंस्टॉल करके जारी रखें

brew install -v homebrew/php/php70

2.- PHP-FPM शुरू करें, homebrew / php के बारे में सुंदरता यह है कि यह PHP और FPM स्थापित करता है, इसलिए हमें केवल निम्नलिखित को चलाने की आवश्यकता है:

brew services start homebrew/php/php70

अभी के लिए चलो डिफ़ॉल्ट कॉन्फ़िगरेशन का उपयोग करें, अगर हमें इसे बदलने की आवश्यकता है तो कॉन्फ़िगरेशन /usr/local/etc/php/7.0/ पर स्थित है

चरण 3: कॉन्फ़िगरेशन

1.- अपाचे कॉन्फ़िगरेशन खोलें:

vim /usr/local/etc/apache2/2.4/httpd.conf

2.- निम्नलिखित पंक्तियों को रद्द करें:

LoadModule proxy_module libexec/mod_proxy.so
LoadModule proxy_fcgi_module libexec/mod_proxy_fcgi.so

3.- PHP-FPM के लिए प्रॉक्सी कॉन्फिगरेशन सेटअप करें:

<IfModule proxy_module>
  ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/usr/local/var/www/htdocs/$1
</IfModule>

आमतौर पर मैं इसे सही निर्देशिका के लिए इंगित करने के लिए प्रति vhost सेटअप करेगा

4.- अंत में चलो एक phpinfo () पृष्ठ के अंदर / usr / स्थानीय / var / www / htdocs / बनाएँ और पुष्टि करें कि परीक्षण पृष्ठ को लोड करके सब कुछ काम कर रहा है: हमारे पास php है

कुछ और मोड़ और मोड़ हैं, लेकिन यह आपको सीधे उठना चाहिए और ओएसएक्स पर सीधे चलना चाहिए।

कॉन्फ़िगरेशन के अधिक विस्तृत पूर्वाभ्यास के लिए हम इस योनि बॉक्स पर कॉन्फ़िगरेशन (vhost, php pools, आदि) की जांच करते हैं:

https://github.com/DemacMedia/vagrant-lamp/tree/master/files


मैं एक के brew install homebrew/apache/httpd24 --with-privileged-portsबजाय एक था brew install httpd24 --with-privileged-ports। क्या यह आपकी वास्तविक दुनिया के अनुभव से मेल खाता है?
एलन स्टॉर्म

@AlanStorm मैंने उसी प्रक्रिया का पालन किया लेकिन कुछ .htaccess मैगनेटो के index.php को लोड करते समय एक समस्या पैदा कर रहा है। यह पृष्ठ को खोलने की अनुमति नहीं देता है, लेकिन यदि मैं रूट फ़ोल्डर से .acaccess को हटाता हूं तो कम से कम Magento खुल जाता है जो फिर से कारणों से विकृत हो जाता है। क्या आप इस पर मेरा मार्गदर्शन कर सकते हैं?
रिजवान धूका

10
  1. इस तरह के कई मैक + नग्नेक्स + पीएचपी-एफपीएम + मैसकल सेटअप ट्यूटोरियल में से एक का पालन करें (उपयोग करना सुनिश्चित करें brew services):
  2. brew install php70-intl php70-mcrypt
  3. में /usr/local/etc/nginx/nginx.conf अंदर httpनई नदी के ऊपर परिभाषित

    अपस्ट्रीम fastcgi_backend {
      सर्वर 127.0.0.1:9070;
    }
    

    9000डिफ़ॉल्ट पोर्ट है, लेकिन मैं एक अंतिम दो अंकों के रूप में PHP संस्करण संख्या जोड़ने की सलाह दूंगा, जो कि M1 के लिए एक ही समय में PHP के कुछ संस्करणों का उपयोग करने में सक्षम हो। आप फ़ाइल में FPM पोर्ट को संशोधित कर सकते हैं /usr/local/etc/php/7.0/php-fpm.d/www.conf- listen = 127.0.0.1:9070और फिर PHP का उपयोग करके पुनः आरंभ कर सकते हैं brew services restart php70

  4. nginx.conf.sampleफॉर्म M2 रिपॉजिटरी कॉपी करें और इस तरह सेव करें /usr/local/etc/nginx/magento2.conf। यह कॉन्फ़िगरेशन fastcgi_backendपिछले चरण में परिभाषित का उपयोग करेगा ।

  5. सेटअप vhosts और डोमेन
    सर्वर {
      80 सुनो;
      server_name magento2.dev;
      $ MAGE_ROOT / पथ / से / m2 / प्रोजेक्ट सेट करें;
      $ MAGE_MODE डेवलपर सेट करें;
      /usr/local/etc/nginx/magento2.conf शामिल करें;
    }
    
  6. Nginx को पुनरारंभ करें

यह पहला संकेत आपको होमब्रे / डुप्सेस पर टैप करने के लिए कहता है, जो कि मूल्यह्रास है और अगर आपको याद है तो आपको वे फॉर्मूले देने की जरूरत नहीं है। चेतावनी: homebrew / dupes को हटा दिया गया था। यह नल अब खाली है क्योंकि इसके सभी सूत्र माइग्रेट किए गए थे
एलन स्टॉर्म

ऐसा लगता है dupesकि अब कोर का हिस्सा हैं, इसलिए आप इसे अनदेखा कर सकते हैं और brew tap homebrew/phpकेवल इसके साथ रह सकते हैं।
igloczek

धन्यवाद। मुझे ठीक इसी की आवश्यकता थी। Magento सेटअप का अनुसरण किया लेकिन उबंटू और लाइन के लिए 'सुनो = /run/php-fpm/php-fpm.sock' मुझे बहुत परेशान कर रहा था। मुझे जो कुछ भी चाहिए वह बस उपयोग करने के लिए जोड़ने के लिए नहीं है: सुनो = 127.0.0.1:9000 और अगर मैं मल्टी PHP संस्करण का उपयोग करना चाहता हूं तो इसे सुनने के लिए इसे बदल दें = 127.0.0.1:9071। एक समाधान की तलाश में उम्र बिताई।
इव

10

चरण 1: मौजूदा अपाचे सेवा को बंद करें और अपाचे थ्रू ब्रु को स्थापित करें।

$ sudo apachectl stop
$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null
$ brew install httpd24 --with-privileged-ports --with-http2

यह कदम थोड़ा समय लगता है क्योंकि यह स्रोत से अपाचे बनाता है। पूरा होने पर आपको एक संदेश देखना चाहिए:

/usr/local/Cellar/httpd24/2.4.23_2: 212 files, 4.4M, built in 1 minute 60 seconds

चरण 2: यह महत्वपूर्ण है क्योंकि आपको अगले चरण में उस पथ की आवश्यकता होगी।

$ sudo cp -v /usr/local/Cellar/httpd24/2.4.23_2/homebrew.mxcl.httpd24.plist /Library/LaunchDaemons

$ sudo chown -v root:wheel /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist

$ sudo chmod -v 644 /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist

$ sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist

अब हमने Homebrew की अपाचे को स्थापित किया है, और इसे एक विशेषाधिकार प्राप्त खाते के साथ ऑटो-स्टार्ट में कॉन्फ़िगर किया है।

सर्वर http: // localhost पर पहुँचा जा सकता है

चरण 3: अपाचे कॉन्फ़िगरेशन

कॉन्फ़िगरेशन फ़ाइल पथ

/usr/local/etc/apache2/2.4/httpd.conf

यदि आप कॉन्फ़िगरेशन बदलना चाहते हैं, तो आपको इसे यहाँ बनाना चाहिए

नोट: हमें अब mod_rewrite को सक्षम करना चाहिए जो डिफ़ॉल्ट रूप से टिप्पणी करता है।

LoadModule rewrite_module libexec / mod_rewrite.so

Magento के इंस्टॉलेशन के लिए mod_rewrite को इस कॉन्फ़िगरेशन फ़ाइल में सक्षम किया जाना चाहिए।

# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   AllowOverride FileInfo AuthConfig Limit
#
AllowOverride All

चरण 4: PHP स्थापना

हम उपलब्ध विकल्पों की पूरी सूची टाइप करके शामिल कर सकते हैं

$ brew install php71 --with-httpd24

हम चुन सकते हैं कि हम किस संस्करण का उपयोग करने जा रहे हैं।

हमारी आवश्यकताओं के लिए PHP की ट्वीक कॉन्फ़िगरेशन सेटिंग को कॉन्फ़िगर करने के लिए, memory_limit, date.timezone, display_errors ... आदि / apache2 / 2

/usr/local/etc/php/7.1/php.ini

चरण 5: अपाचे PHP सेटअप

अब हमने आपके PHP संस्करण सफलतापूर्वक स्थापित कर दिए हैं, लेकिन हमें उन्हें उपयोग करने के लिए अपाचे को बताने की आवश्यकता है। हमें अपाचे कॉन्फ़िगरेशन फ़ाइल को संपादित करने की आवश्यकता है

/usr/local/etc/apache2/2.4/httpd.conf

php पथ को संशोधित करके।

LoadModule php7_module    /usr/local/opt/php71/libexec/apache2/libphp7.so

निम्नलिखित विन्यास द्वारा एपाचे में php अनुरोधों को संशोधित करने की आवश्यकता है

<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

कॉन्फ़िगरेशन फ़ाइल सहेजें और अपाचे को पुनरारंभ करें।

$ sudo apachectl -k restart

चरण 6: PHP को मान्य करना

दस्तावेज़ रूट निर्देशिका में php फ़ाइल info.php बनाएँ

Info.php की सामग्री है

<?php phpinfo(); ?>

चरण 6: php.ini फ़ाइल में Magento के लिए PHP के निर्भरता विस्तार की जाँच करें।

Magento2 के लिए आवश्यक PHP एक्सटेंशन:

bc-math 
curl
gd, ImageMagick 6.3.7 (or later) or both
intl
mbstring
mcrypt
mhash
openssl
PDO/MySQL
SimpleXML
soap
xml
xsl
zip
PHP 7 only:
json
iconv

तब आप Magento की स्थापना के साथ आगे बढ़ सकते हैं।


5
  1. PHP 7 स्थापित करें:

    brew install php70-intl php70-mcrypt php70-xdebug
  2. फिर आप Nginx + PHP-FPM स्थापित करने के लिए Laravel Valet का उपयोग कर सकते हैं: https://laravel.com/docs/5.4/valet

    composer global require laravel/valet
    valet install
  3. यदि आपके पास पहले से कोई नहीं है तो प्रोजेक्ट डायरेक्टरी बनाएं (जो भी आप चाहते हैं उसका नाम दिया जा सकता है)

    mkdir ~/projects
  4. लारवेल वैलेट को बताएं कि आप अपनी परियोजनाओं को वहां स्टोर करते हैं

    cd ~/projects
    valet park
  5. इस पोस्ट के समय में लारवेल वैलेट का संस्करण जिसमें Magento2 ड्राइवर शामिल है, अभी तक जारी नहीं किया गया है (इसे विलय कर दिया गया है , लेकिन अभी तक एक टैग के माध्यम से जारी नहीं किया गया है)। इसका उपयोग करने के लिए आप या तो कर सकते हैं:

    • देव-गुरु शाखा के माध्यम से लारवेल वैलेट स्थापित करें:

      composer global require laravel/valet:dev-master`
    • या ड्राइवर को डाउनलोड करें और इसे स्थानीय वैलेट चालक के रूप में उपयोग करें:

      curl https://github.com/laravel/valet/raw/master/cli/drivers/Magento2ValetDriver.php -o ~/.valet/Drivers/Magento2ValetDriver.php

अब आप http://[projectname].dev/अपने स्थानीय प्रोजेक्ट को देखने के लिए ब्राउज़ कर सकते हैं (जहां [प्रोजेक्टनेम] ~ / परियोजनाओं में एक निर्देशिका से मेल खाती है। उदाहरण के लिए।]

~/projects/my-super-awesome-client => my-super-awesome-client.dev

पूर्ण अस्वीकरण: मैं लारवेल वैलेट के लिए Magento2 ड्राइवर के लेखकों में से एक हूं


यह संभव है कि मैं काफी सघन हो रहा हूं, लेकिन ये कदम अधूरा लगता है (उदाहरण के valet linkलिए, एनजीएनएक्स एम 2 सेटअप ...)। क्या मैं इसे उखाड़ फेंक रहा हूं?
18

वैलेट पार्क लिंकिंग का ख्याल रखता है। जब तक आप अपने प्रोजेक्ट डायरेक्टरी में "पार्क" करते हैं और प्रत्येक प्रोजेक्ट एम 2 इंस्टॉल से उप-डायरेक्टरी होती है, ऐसा करने के लिए ज्यादा कुछ नहीं है। वैलेट के लिए Magento2 ड्राइवर सब कुछ का ख्याल रखता है ताकि वैलेट को एम 2 साइट (इसलिए कोई अतिरिक्त नग्नेक्स कॉन्फिगरेशन सर्वर) कैसे पता चले। हाँ, यह वास्तव में इतना आसान है। लारवेल साइटों को स्थापित करने के दर्द को दूर करने के लिए वैलेट बनाया गया था। उन्होंने इसे गैर-लारवेल परियोजनाओं के लिए उपयोग करना संभव बना दिया और इसलिए हर कोई जीतता है
जो कॉन्स्टेंट

1

आप Valet + का उपयोग कर सकते हैं इसके बजाय इसे अपने दम पर कॉन्फ़िगर कर सकते हैं, b / c यह होमब्रेव पैकेज के आधार पर स्वचालित नंगे-धातु मैक ओएस समाधान है। सेटअप स्टेप्स और अन्य चीजों को गिथब पर वर्णित किया गया है ।

इसके बारे में ब्लॉग पोस्ट - वैलेट + का परिचय, तेजी से PHP के विकास के वातावरण को धधकते हुए

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