brew 패키지를 통해 OS X에서 FastCGI (mod_php 아님)를 통해 Magento 2 실행


23

커뮤니티의 다양한 포럼 게시 및 대화를 기반으로 일부 사람들은 내장 Apache / PHP 콤보를 사용하지 않고 대신 패키지를 사용하여 PHP 환경을 통해 OS X에서 Magento 2 개발 인스턴스를 실행하는 것처럼 보입니다 brew. FastCGI PHP 환경이 nginx및 / 또는로 실행됩니다 apache.

누구든지 Bbrew 패키지를 사용하여 OS X에서 Magento 2를 시작하고 실행하기위한 명령 목록이나 OS X 의 FastCGI 환경에서 PHP를 실행하기위한 다른 방법이 있습니까? Docker 또는 Vagrant를 찾고 있지 않습니다. OS X에서 PHP를 기본적으로 실행하고 싶지 않습니다 mod_php.


그것이 도움이되는지 확실하지 않지만 나는 결코 양조 팬이 아니므로 항상 php-osx.liip.ch
Marcel Hauri

@mhauri liip 패키지에서 php-fpm을 얻는 방법에 대한 지침이 있다면 전체 답변을 실행하는 것이 좋습니다.
Alan Storm

답변:


12

Homebrew가 포함 된 Apache + PHP-FPM

0 단계 : 시작하기 전에

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.- 아파치 설치 2.4

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

이 단계는 Apache를 컴파일해야하므로 시간이 조금 걸립니다.

3.- 올바르게 설치되었는지 확인하면 다음과 유사한 메시지가 나타납니다.

시작 homebrew / apache / httpd24를 시작하고 시작시 다시 시작하려면 sudo brew services가 homebrew / apache / httpd24를 시작하십시오.

명령을 실행 해 봅시다 :

sudo brew services start homebrew/apache/httpd24

http : // localhost 를로드하여 모든 것이 실행 중인지 확인한 후 It Works! 메시지 작동합니다

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

다음 줄의 주석을 해제하십시오.

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. 마지막으로 / usr / local / var / www / htdocs / 안에 phpinfo () 페이지를 만들고 테스트 페이지를로드하여 모든 것이 작동하는지 확인 합시다 : 우리는 PHP가

몇 가지 추가 조정이 있지만 OSX에서 직접 실행해야합니다.

구성에 대한 자세한 연습을 위해이 방랑 상자에서 구성 (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. 실제 경험과 일치합니까?
Alan Storm

@ AlanStorm 나는 동일한 절차를 따랐지만 Magento의 index.php를로드하는 동안 .htaccess가 어떻게 문제를 일으키고 있습니까? 그러나 루트 폴더에서 .htaccess를 제거하면 atleast Magento가 열리고 페이지가 다시 왜곡되어 페이지가 열리지 않습니다. 이것에 대해 안내해 주시겠습니까?
Rizwan Dhuka

10
  1. 이와 같은 많은 Mac + Nginx + PHP-FPM + Mysql 설정 튜토리얼 중 하나를 따르십시오 (사용하십시오 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. 가상 호스트 및 도메인 설정
    서버 {
      듣고 80;
      server_name magento2.dev;
      $ MAGE_ROOT / path / to / m2 / project를 설정하십시오.
      $ MAGE_MODE 개발자 설정;
      /usr/local/etc/nginx/magento2.conf를 포함하십시오;
    }
    
  6. Nginx를 다시 시작하십시오

그 첫 번째 요점은 당신에게 Homebrew / dupes를 두드리라 고 요구합니다. 이는 감가 상각되어 더 이상 필요한 공식을 제공하지 않을 것입니다. 경고 : homebrew / dupes는 더 이상 사용되지 않습니다.
Alan Storm

dupes이제는 핵심의 일부인 것처럼 보이 므로 무시하고 고정시킬 수 있습니다 brew tap homebrew/php.
igloczek

고맙습니다. 이것이 바로 내가 필요한 것입니다. 마 젠토 설정을 따르지 만 우분투와 라인 'listen = /run/php-fpm/php-fpm.sock'의 경우 많은 문제가 발생했습니다. 다중 PHP 버전을 사용하려면 listen = 127.0.0.1:9000을 사용하고 listener = 127.0.0.1:9071로 변경하면됩니다. 해결책을 찾기 위해 오랜 시간을 보냈습니다.
iva

10

1 단계 : 기존 아파치 서비스를 중지하고 Brew를 통해 Apache를 설치합니다.

$ 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

이 단계는 소스에서 Apache를 빌드하는 데 약간의 시간이 걸립니다. 완료되면 다음과 같은 메시지가 나타납니다.

/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의 Apache를 설치하고 권한있는 계정으로 자동 시작되도록 구성했습니다.

서버는 http : // localhost접속할 수 있습니다

3 단계 : Apache 구성

구성 파일 경로

/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

사용할 버전을 선택할 수 있습니다.

memory_limit, date.timezone, display_errors ... etc / apache2 / 2와 같이 필요에 맞게 PHP의 조정 구성 설정을 구성하십시오.

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

5 단계 : Apache PHP 설정

이제 PHP 버전을 성공적으로 설치했지만 Apache에게이를 사용하도록 지시해야합니다. 아파치 구성 파일을 편집해야합니다

/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. 그런 다음 Laravel Valet을 사용하여 Nginx + PHP-FPM 설치를 자동화 할 수 있습니다 : https://laravel.com/docs/5.4/valet

    composer global require laravel/valet
    valet install
  3. 아직없는 경우 프로젝트 디렉토리를 만듭니다 (원하는 이름을 지정할 수 있음)

    mkdir ~/projects
  4. Laravel Valet에게 프로젝트를 저장했다고 알려주십시오.

    cd ~/projects
    valet park
  5. 이 글을 게시 할 당시 Magento2 드라이버가 포함 된 Laravel Valet 버전은 아직 출시되지 않았습니다 ( 병합 되었지만 태그를 통해 아직 출시되지 않았습니다). 그것을 사용하려면 다음 중 하나를 수행하십시오.

    • dev-master 브랜치를 통해 Laravel Valet를 설치하십시오 :

      composer global require laravel/valet:dev-master`
    • 또는 드라이버를 다운로드하여 로컬 Valet 드라이버로 사용하십시오.

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

이제 http://[projectname].dev/로컬 프로젝트 ([projectname]이 ~ / projects의 디렉토리에 해당함)를 찾아 볼 수 있습니다 . 예 :

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

전체 공개 : 저는 Laravel Valet 용 Magento2 드라이버의 저자 중 하나입니다


내가 매우 조밀했을 수도 있지만 이러한 단계는 불완전하게 보입니다 (예 : valet linking, nginx m2 setup ...). 나는 이것을 지나치게 생각하고 있는가?
benmarks

발레 파크는 연결을 관리합니다. 프로젝트 디렉토리에 "주차"하고 각 프로젝트가 M2 설치를 포함하는 하위 디렉토리 인 한 더 이상 할 일이 없습니다. 발레 파트 용 Magento2 드라이버는 모든 것을 처리하여 Valet가 M2 사이트를 서버 링하는 방법을 알도록합니다 (따라서 추가 nginx 설정이 필요 없음). 예, 정말 간단합니다. Valet은 Laravel 사이트 설정의 고통을 없애기 위해 만들어졌습니다. 그들은 라 라벨 이외의 프로젝트에서도 사용할 수있게함으로써 모두가 이길 수있었습니다
Joe Constant

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.