메뉴 건너뛰기

팁/강좌

  • OSX에서 php5.6과 php7을 동시에 설치해서 사용하는 방법(PHP-FPM 사용) [IT]
  • 공돌이
    조회 수: 6954, 2017.02.28 17:05:35
  • 원문: https://www.symfony.fi/page/how-to-run-both-php-5-6-and-php-7-x-with-homebrew-on-os-x-with-php-fpm

    마이그레이션 테스트를 위해서 두개를 같이 설치하려고 알아보다가 찾은 자료라 이후 레퍼런스를 위해 여기 올려봅니다.

    ==============================================================

     


    PHP는 7.x 대 버전에서 마지막 PHP 5 버전 인 5.6보다 훨씬 개선되었습니다. 그러나 아직 다른 프로그램들 다수가 7.X를 지원하지 않는 경우가 많아 로컬 환경에서 많은 버전을 실행하는 것이 유용하다고 생각됩니다. 필자의 경우 macOS 노트북에서 Homebrew 패킷 관리자를 사용하는 환경이므로 이걸 기준으로 PHP 5.6과 PHP 7.1을 동시에 실행하는 방법을 설명하겠습니다.

     

    PHP 7.0은 웹의 많은 부분을 차지하는 인기있는 프로그래밍 언어/플랫폼의 큰 변경이었습니다. 새로운 PHP 릴리즈는 성능 향상새로운 기능을 제공합니다. PHP 커뮤니티는 릴리즈가 이전 버전과 호환되는지 확인하기 위해 많은 노력을 기울이고 있습니다. 대부분 호환가능 하지만, 일부 호환되지 않는 부분이 공식 마이그레이션 가이드에 설명되어 있습니다.

     

    eZ Publish 5는 최신 PHP뿐만 아니라 2003 년으로 거슬러 올라가는 구형 코드와의 하이브리드 응용 프로그램입니다. 이 버전은 완전히 새로운 아키텍처에 이르는 중간 단계였습니다. 2014 년에 eZ Platform이라는 신제품에 집중하면서 eZ Publish에 대한 새로운 기능 개발은 중단되었습니다.

    새로운 기능을받지 못함에도 불구하고 eZ Publish는 여전히 유효한 제품이며 2021 년까지 계속 지원 될 것입니다. 마지막 주 버전은 PHP 7이 출시되기 전에 출시된 까닭에 결코 공식적인 지원을받지 못할 것으로 보입니다. 새로운 Symfony Framework로 구동되는 eZ Platform은 이미 개발용으로 PHP7에서 안정적입니다.

    eZ 제품뿐만 아니라 PHP로 작업하는 많은 개발자들이 앞으로 여러 버전의 런타임을 유지해야 할 필요가 있다고 보여집니다.

     

    Homebrew로 두 가지 버전의 PHP 설치하기
     

    OS X (El Capitan)에서 PHP로 작업하는 개발자는 PHP 를 설치하기 위한 방법으로 내장된 PHP를 활성화시키는 것부터 LAMP 환경을위한 전용 가상 머신을 실행하는 것에 이르기까지 여러가지 다양한 방법이 가능합니다. 좋은 방법 중 하나는 Homebrew 패킷 관리자를 사용하는 것입니다.

     

    Homebrew는 많은 Linux 사용자에게 익숙한 APT 혹은 Yum과 매우 비슷하지만 OS X용 패키지관리자입니다. Homebrew가 아직 설치되어 있지 않은 경우 홈페이지 나 설치 안내서를 참고하세요. OS X에서 PHP를 실행하는 다른 방법대비 추가 이점으로, brew를 사용하면 php-imagick, php-intl, php-xsl  등등  eZ 실행에 필요한 PHP 익스텐션을  쉽게 설치할 수 있습니다.

    Brew에는 저장소에 여러 가지 버전의 PHP가 있습니다. 패키지 이름에 숫자를 붙여서 관리됩니다. (예 : PHP 5.6의 경우 php56, PHP 7.0의 경우 php70). PHP의 "dot 릴리스"는 새로운 기능을 제공해서 하위 호환성이 깨질 수 있기 때문에 향후는 PHP 7.1 용 패키지 는 php71 이 제공 될 예정입니다.

     

    패킷 관리자를 설치했다면 이제는 PHP를 설치할 차례입니다. PHP 5.6 부터 설치하겠습니다..

     

    brew install php56


     

    이 작업을 실행하는 데는 시간이 걸리겠지만 최신버전의 PHP 56이 설치됩니다. 설치가 끝나면 php --version 명령을 실행하여 PHP 56이 설치되었는지 확인할 수 있습니다 :

     

    janit @ turska ~ - $ php --version
    PHP 5.6.18 (cli) (빌드 : Feb 6 2016 06:53:53)
    Copyright (c) 1997-2016 The PHP Group
    Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies


     

    그러나이 여기서는 PHP 7.0을 기본 버전으로 만들 것이므로 PHP 파일에 대한 심볼릭 링크를 제거하는 명령을 실행해야합니다.

     

    janit @ turska ~ - $ brew unlink php56
    Unlinking /usr/local/Cellar/php56/5.6.18 ... 18 symlinks removed


    이제 php56을 가리키는 파일 시스템 링크가 제거되었습니다. 이제 PHP 7.0을 설치하겠습니다.

     

    brew install php70

     

    작업이 완료되면 기본 버전이 PHP 7인지 확인하십시오:

     

    PHP 7.0.4 (cli) (built: Mar  9 2016 12:26:14) ( NTS )
    Copyright (c) 1997-2016 The PHP Group
    Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
        with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

     

    커맨드라인에서 에서 PHP 5.6을 쉽게 실행할 수있도록 symlink를 생성하겠습니다: (현재시점 최신버전 5.6.29_5 버전 기준)

     

     ln -s /usr/local/Cellar/php56/5.6.29_5/bin/php /usr/local/bin/php56


    이 작업이 끝나면 터미널에서 php56 명령으로 PHP 5.6을 사용할 수 있습니다.

     

     

    PHP-FPM을 사용하여 여러 PHP 버전 설정하기
     

     

    PHP는 웹 애플리케이션을 구동하는 데 가장 많이 사용되므로 두 개의 PHP 엔진을 각각의 버전에 연결해야합니다. PHP-FPM은 프로세스 관리자와 FastCGI 프로토콜을 사용하여 PHP를 실행하는 현대적인 방법입니다. PHP-FPM으로 다양한 버전의 PHP를 쉽게 전환 할 수있을뿐만 아니라 고성능을 가능하게합니다.

     

    아파치 웹 서버에서도 PHP-FPM을 사용할 수 있지만 여기서는 Nginx 웹 서버를 사용하겠습니다. Homebrew로 Nginx를 설치하려면 다음 지시 사항을 따르십시오. 지시사항에는 Nginx 및 PHP-FPM을 OS X에서 설치하고 실행하는 데 필요한 모든 것이 포함되어 있습니다.

     

    기본적으로 PHP-FPM은 통신을 위해 포트를 사용하도록 구성됩니다. IP 주소와 포트는 함께 하나의 IP로 여러개의 백엔드를 실행할 수있는 소켓을 형성합니다. PHP-FPM의 경우 사용 된 기본 소켓은 가상 호스트 설정 (/usr/local/etc/nginx/servers/ 에 위치)에 다음과 같이 표시되어 있습니다 :

     

    fastcgi_pass 127.0.0.1:9000;

     

    이 명령어의 의미는, Nginx로 들어오는 FastCGI 요청은 IP 127.0.0.1 의 포트 9000을 수신하고 있는 PHP 프로세스 관리자에게 전달됩니다. 포트 9000은 단지 기본값이며 구성을 변경하여 수정할 수 있습니다. 우리는 PHP 7.0을 기본 포트에서 수신하도록 두고 5.6버전은 포트 9056을 수신하도록 설정하겠습니다.

    텍스트 편집기에서  /usr/local/etc/php/5.6/fpm.d/www.conf 를 엽니다:

    listen = 127.0.0.1:9056


    두개의 포트 (9000 및 9056)에서 수신 대기하도록 구성된 두 개의 PHP-FPM이 있지만 현재까지는 실행하고 있지 않습니다. 시스템을 재시작할때 둘 다 자동으로 시작할 수 있도록 하려면 약간의 작업이 필요합니다. 이것은 표준 Homebrew 방식을 사용하여 수행됩니다.

    시작 에이전트 용 디렉토리를 만듭니다 (이미 존재할 수도 있음).

    mkdir -p ~ /Library/LaunchAgents

     


    시작 스크립트를 LaunchAgents 디렉토리에 복사하십시오.

    cp /usr/local/opt/php70/homebrew.mxcl.php70.plist ~ /Library/LaunchAgents/
    cp /usr/local/opt/php56/homebrew.mxcl.php56.plist ~ /Library/LaunchAgents/

     

     

    마지막으로 두 PHP-FPM 프로세스를 시작합니다 - 이번에만 수동으로 시작이 필요하며 다음 부팅시부터는 자동으로 시작됩니다 :

    launchctl load -w ~ / 라이브러리 / LaunchAgents / homebrew.mxcl.php70.plist
    launchctl load -w ~ / 라이브러리 / LaunchAgents / homebrew.mxcl.php56.plist

     

    다음으로 Nginx 설정에서 두 개의 가상 호스트를 생성하고 서로 다른 포트로 구성하려고합니다. 예를 들어 eZ 플랫폼 설정에서 PHP 5.6에서 7.0으로, 다시 5.6으로 전환하려면 아래의 두 명령줄만 각각 주석처리하거나 주석을 풀어주면 됩니다:

    # PHP 7.0
    fastcgi_pass 127.0.0.1:9000;
     
    # PHP 5.6
    # fastcgi_pass 127.0.0.1:9056;

     

     

    다 됐네요. 이제 여러분은 OS X을 사용할 때 가상머신을 굳이 설치하거나 할 부담 없이 다른 PHP 버전 사이를 쉽게 전환할 수 있습니다..

댓글 0 ...

https://meisteruser.net/tip_tutorials/870
  Today 0, Yesterday 0, Total 30
thumbnail
  • 조회 수: 9714
  • 공돌이
    [IT]
  • 사용기에서 쓴 바와 같이 letsencrypt.org 에서는 certbot라는 쉬운 인증서발급 클라이언트를 제공하고 있습니다. OS나 웹서버에 따라 certbot 설치방식이 조금씩 다른 부분이 있으니 감안하시고 보면 될것 같습니다. https://certbot.eff.org 들어가시면 환경별로 설치 안내가 자세히 나와있습니다 (영어지만). 여기서 OS와...
2017-03-16 18:07:02
Mar.16
thumbnail
  • 조회 수: 2499
  • 공돌이
  • 15Dec 2015 보통 우리는 새해 결심은 멋있게 세우죠. 하지만 그 장대한 약속들을 계속해서 지켜나가는 것은 완전히 다른 일입니다. 사실 우리 대부분이 제일 못하는 것중에 하나죠. 연구에 따르면, 내년도 목표를 세운 사람들 중 약 8%만이 성공적으로 그 목표를 달성 한 것으로 나타났습니다. 사생활뿐 아니라 사업에도 부...
2017-03-08 18:47:02
Mar.08
thumbnail
2017-03-08 11:10:54
Mar.08
thumbnail
  • 조회 수: 1269
  • 공돌이
  • "마인드맵"이 재무설계사(Advisor: 고문/자문이겠지만 좀 어색해서 재무설계사 번역)와 고객/직원 간의 커뮤니케이션 방법과 정보를 회사 전반에 걸쳐 체계화하는 방법을 바꾸고 있습니다. 그 결과는 고객에게 더 좋은 정보의 제공, 엄청난 시간 절약, 높은 고객 유지율과 수수료매출 증가 외 다양하게 나타납니다 . 마인드...
2017-03-05 16:48:03
Mar.05
no image
  • 조회 수: 6954
  • 공돌이
    [IT]
  • 원문: https://www.symfony.fi/page/how-to-run-both-php-5-6-and-php-7-x-with-homebrew-on-os-x-with-php-fpm 마이그레이션 테스트를 위해서 두개를 같이 설치하려고 알아보다가 찾은 자료라 이후 레퍼런스를 위해 여기 올려봅니다. ============================================================== PHP는 7.x 대 버전에...
2017-02-28 17:05:35
Feb.28
no image
  • 조회 수: 3459
  • 공돌이
  • 마인드마이스터 마인드맵 사용 시 아래 단축키를 참고하시면 도움되실거예요~: 키 값 일반 단축 키 INS or TAB 하위레벨 아이디어 추가 RETURN(엔터) 동일레벨 아이디어를 아래에 추가 SHIFT+RETURN 동일레벨 아이디어를 위에 추가 DEL or BACKSPACE 아이디어 삭제 ALT+C 연결선 추가 ↑, ↓, ←, → 주제(...
2017-02-26 12:23:02
Feb.26
thumbnail
  • 조회 수: 1257
  • 공돌이
  • 결혼식, 칵테일파티를 계획하든 기업이벤트를 기획하든 상관없이, 해당 작업의 명확한 그림을 얻고 잘 진행하는 데 마인드맵은 큰 도움이 될 수 있습니다. 이벤트가 어떠해야하는지, 자신의 (또는 상사, 약혼자 또는 친구들)의 기대 사항은 어떤 것들이 있는지, 그리고 어떤 종류의 리소스 (예산, 시간, 인적 자원 등)를 사...
2017-02-26 12:07:19
Feb.26
thumbnail
  • 조회 수: 631
  • 공돌이
  • 무엇보다 중요한 점은 이해할 수 있고 기억에 남을 수 있어야 강렬한 프레젠테이션이 됩니다. 하지만 그게 쉽지는 않지요. 논리적 구조, 명확한 디자인, 의미있는 키워드 및 강력한 비주얼이 필요합니다. 그리고 종종 간과되는 또 다른 중요한 요소가 있습니다. 청중은 필요하면 언제라도 현재 그들이 받는 정보가 프레젠테...
2017-02-23 16:26:16
Feb.23
no image
  • 조회 수: 662
  • 공돌이
  • 팀 프로젝트에서 협업하기 예를 들어 마케팅 캠페인, 회사 행사, 새로운 앱 개발, 혹은 완전히 다른 무언가 같은 팀 프로젝트를 계획, 구성 및 관리해야한다고 가정해 봅시다. 대부분의 경우 여러분은 다음의 작업을 수행해야 할 것입니다: 브레인스토밍을 통해 동료들의 창의적인 의견을 모으기 주요일정을 포함한 로드맵 ...
2017-02-23 15:16:30
Feb.23
thumbnail
  • 조회 수: 983
  • 공돌이
  • 우선, 노트필기에 좋은방법 나쁜방법이 따로 있는건 아니라는 말씀을 드립니다. 가장 중요한 건 당신에게 알맞는 방법을 사용해야 한다는 겁니다. 만약 당신에게 딱 맞는 방법을 찾으셨다면 - "만세"를 외치세요! 하지만 대부분의 경우 학생들은 초기에 써본 방식을 몇년에 걸쳐 적응한 다음, 고민하지 않고 그 방법을 그냥...
2017-02-23 14:15:44
Feb.23
thumbnail
  • 조회 수: 5323
  • 공돌이
  • (참고: 이게 유럽학생들을 기준으로 영어를 배운다는 기준으로 작성된 자료라서 한국상황과는 약간 안맞을 수도 있겠네요. 대충은 비슷하지만...) 마인드 맵은 공부하고 기억하기에 좋습니다. 따라서 제2외국어를 더 쉽고 빠르며 재미있게 배울 수 있습니다. 모든 연령의 학생들은 이 간단한 기법을 사용하여 어휘를 외우고...
2017-02-20 17:38:23
Feb.20
thumbnail
  • 조회 수: 1987
  • 공돌이
  • Writing a Scientific Paper 고등 교육의 길로 들어서면 현재까지 다른 사람들이 쌓아왔던 지식을 우리 자신의 발견, 의견과 합쳐서 유익하고 과학적으로 검증 가능한 논문으로 바꿔 달라는 기대를 받습니다. 그런 논문을 쓰는 사람은 누구나 그것이 얼마나 많은 노력 - 다양한 논증, 정의, 인용구 등을 찾고, 수집하고, 구...
2017-02-19 15:21:16
Feb.19
thumbnail
  • 조회 수: 913
  • 공돌이
  • 마인드맵 연결하기 앞서 말한 바 처럼, 마인드맵이 효과적인 한 가지 이유는 한 장의 종이 안에 내용을 정리하기 때문에, 주제에 대한 훌륭한 개요를 제공한다는 점입니다. 그런데 만약 공간이 부족하면 어떻게 될까요? 사실 많은 사람들이 마인드맵 사용을 두려워합니다. 종이를 가득 채웠는데도 여전히 더 추가해야할 정보...
2017-02-18 00:49:38
Feb.18
thumbnail
  • 조회 수: 491
  • 공돌이
  • How to Develop Your Own System "마인드매핑 방식(mind mapping system)"이란 색상, 아이콘, 연결 등을 사용하고 추가하고 적용하는 방법입니다. 가끔 브레인 스토밍을 하거나 할일 리스트작성을 하기 위해 영리하게 고안된 마인드맵핑 방식이 필요하지는 않겠지만, 정기적으로 마인드맵으로 작업을 해야 할때, 특히 업무나...
2017-02-17 18:02:59
Feb.17
no image
  • 조회 수: 1224
  • 공돌이
  • 기본적으로 세 가지 다른 마인드 맵 형식이 있습니다. 문서 형식, 디지털 형식 및 온라인 형식 중에서 선택할 수 있습니다. 온라인 형식은 실제로 디지털 형식의 변형일 뿐이지만 기존의 디지털 형식과 구별되는 많은 기능과 이점을 제공합니다. 이것이 온라인 형태를 별도의 형식으로 취급하기로 한 이유입니다. 물론 실제...
2017-02-17 17:14:08
Feb.17
thumbnail
  • 조회 수: 629
  • 공돌이
  • The Most Important Mind Mapping Uses 마인드 맵핑은 다양한 분야에서 다양한 목적으로 사용될 수있는 엄청나게 다재다능한 기술입니다. 다음은 가장 일반적이며 중요한 사용 영역에 대한 리스트입니다. 브레인스토밍: 마인드 맵핑은 아이디어의 자유로운 흐름과 (다른 기법에서는 보기 힘든) 연결성의 촉발을 유도하는, 브...
2017-02-17 16:33:55
Feb.17
no image
  • 조회 수: 450
  • 공돌이
  • Who Mind Mapping Is for 마인드맵은 그리기 쉽기 때문에 누구나 만들 수 있습니다. 경험적으로 만 8세 이후부터는 누구나 해당된다는 것을 알 수 있습니다. 일부에서는 글을 모르는 미취학 아동조차도 글로 작성된 모든 부분을 그림(그리기)으로 간단히 대체함으로써 이 도구(마인드맵)를 사용할 수 있다고 믿습니다. 그러...
2017-02-17 15:17:39
Feb.17
thumbnail
  • 조회 수: 775
  • 공돌이
  • Why Mind Maps Work So Well 그래픽적인 구조 : 마인드맵은 주제와 계층 간의 관계를 시각적으로 표시합니다. 마인드맵의 2차원 구조는 연결을 쉽게 만들 수 있고, 실제 주제 / 목표 / 질문이 맵의 중간에 위치하기 때문에 항상 이들에 대한 초점을 잃지 않습니다. 개요 : 마인드 맵을 사용하면 한 눈에 주제의 모든 내용을 ...
2017-02-17 15:04:00
Feb.17
no image
  • 조회 수: 325
  • 공돌이
  • 마인드 맵핑을 통해 집중할 수 있습니다. 마인드맵의 주제는 항상 가운데에 있으므로 바로 눈에 들어옵니다. 이것은 주제에 집중할 수 있도록 도와줍니다. 마인드 맵핑을 통해 생각을 구조화 할 수 있습니다. 아이디어가 얼마나 복잡하건, 주제가 얼마나 크건 간에, 마인드 맵은 혼돈에 질서를 가져옵니다. 마인드 맵핑은 ...
2017-02-17 14:42:16
Feb.17
thumbnail
  • 조회 수: 581
  • 공돌이
  • How to Draw and Read Mind Maps 마인드맵핑은 쉽고 직관적이며 많은 가이드 라인과 팁이 있지만 시작하기 위해 꼭 알아야 할 사항은 몇 가지 기본적인 사항 뿐입니다: 1. 빈 종이, 화이트보드 또는 빈 디지털 맵 편집기로 시작합니다. 중앙부분에 당신의 마인드맵이 무엇을 다룰 것인지 (그게 무엇이건 간에) 기록하십시오 ...
2017-02-17 14:27:50
Feb.17
태그
위로