Magento 2'yi FastCGI ile (mod_php değil) demlemek için OS X'te çalıştırmak


23

Bazı millet kullanmayan bir PHP ortamında aracılığıyla OS X üzerinde Magento 2 gelişme örneklerini çalıştıran gibi toplumda çeşitli forum mesajları ve konuşmaları dayanarak, öyle görünüyor Apache / PHP açılan dahili ve bunun yerine paketleri kullanan brewbir olsun FastCGI PHP ortamı kuruluyor ve nginxve / veya ile çalışıyor apache.

Magento 2'yi çalıştırmak ve demlemek için OS X üzerinde çalıştırmak için komutları ve yapılandırma talimatlarını içeren herhangi bir kişi var mı VEYA OS X'te FastCGI ortamında PHP çalıştırmak için başka bir yol var mı? Docker veya Vagrant'ı aramıyorum - PHP'yi OS X'te yerel olarak çalıştırmak ve kullanmak istemiyorum mod_php.



@mhauri Tam bir cevap çalıştıran liip paketlerinden php-fpm almak için yönergeleriniz varsa çok iyi olurdu.
Alan Storm,

Yanıtlar:


12

Homebrew ile Apache + PHP-FPM

Adım 0: Başlamadan önce

brew update
brew tap homebrew/services

1. Adım: Apache

1.- Yerleşik apache servisini durdurduğunuzdan emin olalım

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

2.- apache2.4'ü kurun

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

Apache'nin derlenmesi gerektiğinden bu adım biraz zaman alacaktır.

3.- Doğru takıldığını doğrulayın, şuna benzer bir mesaj görmelisiniz:

Hemen başlatmak için homebrew / apache / httpd24 'ü şimdi başlatın ve başlangıçta yeniden başlatın: sudo brew hizmetleri homebrew / apache / httpd24' i başlatın

Komutu çalıştıralım:

sudo brew services start homebrew/apache/httpd24

Herşeyi yükleyerek çalıştığını doğrulayın, http: // localhost ve sonrasında Çalışıyor! mesaj İşe yarıyor

Adım 2: PHP-FPM

1.- PHP'yi yükleyerek devam edelim

brew install -v homebrew/php/php70

2.- PHP-FPM'yi başlatın, homebrew / php ile ilgili güzelliği PHP ve FPM'yi yüklemesidir, bu yüzden sadece aşağıdakileri çalıştırmamız gerekir:

brew services start homebrew/php/php70

Şimdilik varsayılan konfigürasyonu kullanalım. Eğer değiştirmeniz gerekirse, konfigürasyon /usr/local/etc/php/7.0/ adresinde bulunur.

Adım 3: Yapılandırma

1.- Apache yapılandırmasını açın:

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

2.- Aşağıdaki satırlara uymamak:

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

3.- PHP-FPM için proxy yapılandırmasını ayarlayın:

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

Normalde bunu her vhost için doğru dizine yönlendirmek için kurardım

4.- Sonunda / usr / local / var / www / htdocs / içinde bir phpinfo () sayfası oluşturalım ve test sayfasını yükleyerek her şeyin çalıştığını doğrulayalım: Biz php var

Birkaç tane daha tweaks ve dönüş var, ancak bu sizi doğrudan OSX'te çalıştırmaya devam etmeli.

Yapılandırma hakkında daha ayrıntılı bir açıklama için, bu serseri kutusundaki yapılandırmayı (vhost, php havuzları, vb.) Kontrol edin:

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


Bir zorunda brew install homebrew/apache/httpd24 --with-privileged-portsyerine ait brew install httpd24 --with-privileged-ports. Bu sizin gerçek dünya deneyiminize uyuyor mu?
Alan Storm,

@AlanStorm Aynı prosedürü izledim, ancak Magento's index.php yüklerken bazı .htaccess sorunu yaratıyor. Sayfanın açılmasına izin vermiyor, ancak root klasöründen .htaccess dosyasını kaldırırsam arkasından Magento açılıyor ve bu sebeple de yine de bozuluyor. Lütfen bu konuda bana rehberlik eder misiniz?
Rizwan Dhuka 17:17,

10
  1. Bunun gibi Mac + Nginx + PHP-FPM + Mysql kurulum derslerinden birini takip edin (kullandığınızdan emin olun brew services):
  2. brew install php70-intl php70-mcrypt
  3. Olarak /usr/local/etc/nginx/nginx.confhttpyeni üst akış tanımlar

    yukarı akış fastcgi_backend {
      sunucu 127.0.0.1:9070;
    }
    

    9000varsayılan bağlantı noktasıdır, fakat PHP'nin birkaç sürümünü aynı anda, yani M1 için kullanabilmek için son iki hane olarak PHP sürüm numarasını eklemenizi öneririm. Dosyadaki FPM portunu değiştirebilirsiniz /usr/local/etc/php/7.0/php-fpm.d/www.conf- listen = 127.0.0.1:9070kullanarak PHP yeniden başlatma sonra ve brew services restart php70.

  4. nginx.conf.sampleM2 deposunu kopyala ve olarak kaydet /usr/local/etc/nginx/magento2.conf. Bu yapılandırma fastcgi_backendönceki adımda tanımlanmış kullanır .

  5. Kurulum vhosts ve etki alanları
    sunucu {
      80 dinle;
      server_name magento2.dev;
      $ MAGE_ROOT / yol / / / m2 / proje ayarla;
      $ MAGE_MODE geliştiricisini ayarlayın;
      /usr/local/etc/nginx/magento2.conf;
    }
    
  6. Nginx'i yeniden başlat

ilk adım sizden homebrew / dupes'e dokunmanızı ister, bu değer yitirilir ve (hatırlarsam) artık ihtiyacınız olan formülleri vermeyecektir. Uyarı: homebrew / dupes kullanımdan kaldırıldı. Bu musluk şimdi tüm formülleri
Alan Storm

Görünüşe dupesgöre şimdi çekirdeğin bir parçası olduğu için, onu görmezden gelip sadece ona yapışabilirsiniz brew tap homebrew/php.
igloczek

Teşekkür ederim. Bu tam ihtiyacım olan şeydi. Magento kurulumunu takip ettim fakat Ubuntu ve satır için 'listen = /run/php-fpm/php-fpm.sock' sooo çok sorun yarattı. Tek ihtiyacım olanı sadece kullanmak için eklemek değil: listen = 127.0.0.1:9000 ve eğer çoklu PHP sürümünü kullanmak isteseydim onu ​​dinlemek için = 127.0.0.1:9071 olarak değiştirin. Harcanan yaş bir çözüm arıyor.
iva

10

Adım 1: Mevcut apache servisini durdurun ve Apache'yi Brew üzerinden kurun.

$ 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

Bu adım Apache'yi kaynağından oluştururken biraz zaman alır. Tamamlandığında, şöyle bir mesaj görmelisin:

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

Adım 2: Bu önemlidir, çünkü bir sonraki adımda bu yola ihtiyacınız olacaktır.

$ 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

Şimdi Homebrew's Apache'yi kurduk ve onu ayrıcalıklı bir hesapla otomatik olarak başlayacak şekilde yapılandırdık.

Sunucuya http: // localhost ulaşılabilir

Adım 3: Apache Yapılandırması

Yapılandırma dosyası yolu

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

Yapılandırmayı değiştirmek istiyorsanız, burada yapmalısınız.

Not: Şimdi varsayılan olarak yorumlanan mod_rewrite özelliğini etkinleştirmeliyiz.

LoadModule rewrite_module libexec / mod_rewrite.so

Magento kurulumu için mod_rewrite bu yapılandırma dosyasında etkin olmalıdır.

# 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

Adım 4: PHP kurulumu

yazarak eklenecek mevcut seçeneklerin tam bir listesini alabiliriz

$ brew install php71 --with-httpd24

Hangi sürümü kullanacağımızı seçebiliriz.

PHP'nin ince ayar ayarını ihtiyaçlarımız için yapılandırmak için, örneğin, memory_limit, date.timezone, display_errors ... etc / apache2 / 2

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

Adım 5: Apache PHP Kurulumu

Şimdi PHP sürümlerinizi başarıyla kurduk, ancak Apache'ye bunları kullanmasını söylememiz gerekiyor. apache yapılandırma dosyasını düzenlememiz gerekiyor

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

php yolunu değiştirerek.

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

Apache'de php isteklerini yerine getirin, aşağıdaki konfigürasyonun değiştirilmesi gerekiyor

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

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

Yapılandırma dosyasını kaydedin ve apache'yi yeniden başlatın.

$ sudo apachectl -k restart

Adım 6: PHP'yi Doğrulamak

Belge kök dizininde bir php dosyası info.php oluşturun.

İnfo.php'nin içeriği:

<?php phpinfo(); ?>

Adım 6: PHP'nin Magento bağımlılık uzantısını php.ini dosyasında kontrol edin.

Magento2 için gerekli PHP uzantıları:

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

Sonra Magento kurulumuna devam edebilirsiniz.


5
  1. PHP 7'yi yükleyin:

    brew install php70-intl php70-mcrypt php70-xdebug
  2. Nginx + PHP-FPM kurulumunu otomatikleştirmek için Laravel Valet'i kullanabilirsiniz: https://laravel.com/docs/5.4/valet

    composer global require laravel/valet
    valet install
  3. Zaten bir tane yoksa bir proje dizini oluşturun (ne istersen seçilebilir)

    mkdir ~/projects
  4. Laravel Valet'e projelerinizi orada sakladığınızı söyleyin

    cd ~/projects
    valet park
  5. Bu yazının başlangıcında, Magento2 sürücüsünü içeren Laravel Valet sürümü henüz piyasaya sürülmedi ( birleştirilmiş , ancak henüz bir etiket aracılığıyla yayınlanmadı). Kullanmak için şunları yapabilirsiniz:

    • Laravel Valet'i dev-master şubesi ile kurun:

      composer global require laravel/valet:dev-master`
    • veya sürücüyü indirin ve yerel bir Vale sürücüsü olarak kullanın:

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

Artık http://[projectname].dev/yerel projenizi görmek için göz atabilirsiniz (burada [projectname], ~ / projects içindeki bir dizine karşılık gelir.

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

TAM AÇIKLAMA: Laravel Valet için Magento2 sürücüsünün yazarlarından biriyim.


Çok yoğun olmam mümkün, ancak bu adımlar eksik görünüyor (örneğin valet link, ing, nginx m2 kurulum ...). Bunu düşünüyor muyum?
benmark

Vale park bağlantısı ile ilgilenir. Projeler dizininize "park" yaptığınız ve her projenin M2 kurulumunu içeren bir alt dizin olduğu sürece, yapacak başka bir şey yoktur. Vale için Magento2 sürücüsü, Valet'in bir M2 sitesine nasıl sunucu verileceğini bilmesi için her şeyi halleder (bu nedenle ek nginx yapılandırması gerekmez). Evet, gerçekten bu kadar basit. Vale, Laravel sitelerini kurma acısını gidermek için inşa edildi. Laravel dışı projeler için de kullanılmasını mümkün hale getirdiler, böylece herkes kazanacak
Joe Constant

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.