Ubuntu 서버에서 PHP7 설치 적용하기

HYEONG HWAN, MUN/ 10월 22, 2015/ 미분류/ 17 comments

이 문서는 Ubuntu 16.04 LTS 가 출시됨에 따라 폐기되었습니다. PHP 7.0 을 설치하시려면 운영체제 Ubuntu 16.04 LTS 를 사용해주세요. 다음으로 이동 : https://blog.lael.be/post/73

 

imageC

이 글은 한번에 끝내는 Ubuntu 웹서버세팅 (우분투 서버세팅) 9번 항목

PHP 5.5.9 설치 대신PHP 7.0 을 설치하는 방법을 설명합니다.

 

PHP7 공식 위키 참조 (https://wiki.php.net/todo/php70#timetable)

 

PHP72015년 6월 11일에 최초 개발 버전이 공개되었으며

최종 공식 정식버전 발표일은 2015년 12월 3일 입니다.

 

현재 PHP 언어로 개발된 자체 솔루션을 운영중이라면 업그레이드를 하지 마시기 바랍니다.

속도는 빨라지는데구동되지 않을 것입니다. (하얀 공백 화면을 보게 될 것입니다.)

 

현재 WordPress, Drupal, XpressEngine, 그누보드(영카트)PHP7 환경에서 동작하는 것을 확인하였습니다.

다만 일부 WordPress 플러그인, Drupal 플러그인, XpressEngine 모듈, 그누보드 플러그인(빌더등) 가 PHP7 환경에서 동작하지 않는 것을 확인했으며 결과적으로 이 플러그인/모듈/빌더 를 사용하는 사이트PHP7 환경에서 동작하지 않을 것입니다.

 

잘 유지보수 되고 있는 웹소프트웨어가 아니라면 PHP7 환경 도입을 다시 생각해 보시기 바랍니다.

현재 PHP5 를 이미 설치하셨다면 (PHP7 을 설치하기 위해서) 다음 명령어를 통해 기존 버전을 삭제해주세요.

# a2dismod php5
# apt-get purge php5
# service apache2 stop

 

 

1. APT 소스리스트에 PHP7 패키지 추가.

PHP7 패키지는 현재 개발이 진행중이며, 당연히 Ubuntu 14.04 공식 패키지 목록에 존재하지 않습니다.

Zend Technologies 에서 Ubuntu 14.04 사용자를 위해서 패키지를 만들었고 공개하였습니다.

 

패키지 소스리스트에 Zend 저장소 추가. (코드를 더블클릭하면 전체선택됨)


echo "deb http://repos.zend.com/zend-server/early-access/php7/repos ubuntu/" >> /etc/apt/sources.list

 

/etc/apt/sources.list 파일의 맨 마지막 줄에 위의 파란색 부분의 문자를 추가하는 명령어 입니다.

추후에 소스리스트를 원상복구하고 싶다면 /etc/apt/sources.list 파일을 열어서 추가한 부분을 삭제해주면 됩니다.

 

2. 소스패키지 목록을 업데이트

# apt-get update

패키지 목록을 새로고침 해 주어야 합니다.

 

3. PHP 7 최신버전 설치

# apt-get install php7-nightly

스크린샷 2015-10-22 오전 12.54.19

PHP7 Nightly 빌드를 설치한다.

Daily : 날마다

Monthly : 매월마다

Nightly : 밤마다

 

즉 밤마다 최신버전으로 업데이트 되는 패키지이다.

대부분의 범용 PHP 확장모듈도 같이 설치된다. (curl, gd, mcrypt, zip, fileinfo, mbstring, mysqli, PDO)

 

4. PHP7 을 Apache2 에 등록

1) 파일이 제대로 설치되었는지 확인

# ll /usr/local/php7/libphp7.so

 

2) 설치된 php7 모듈을 아파치 모듈 폴더에 복사

# ln -s /usr/local/php7/libphp7.so /usr/lib/apache2/modules/

 

3) php7 모듈 로딩 구문을 아파치 모듈 설정 폴더에 복사

# cp /usr/local/php7/php7.load /etc/apache2/mods-available/

 

4) php 확장자와 php7 을 연결

#vi /etc/apache2/mods-available/php7.conf

 

php7.conf 파일에 들어갈 내용.


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

 

5) 환경설정이 끝났으므로 다음 명령어를 통해 php7 모듈 켜기

# a2dismod mpm_event
# a2enmod mpm_prefork
# a2enmod php7

 

6) 아파치 재시작

# service apache2 restart

 

7) PHP 콘솔 프로그램 설정

Drupal 의 drush, Laravel 의 artisan, 기타 cron 프로그램 등을 사용하기 위해서는 php 콘솔 환경을 만들어 주어야 한다.

# ln -s /usr/local/php7/bin/php /usr/local/bin/
# php -v

스크린샷 2015-12-16 오후 9.01.24

 

5. PHP7 환경설정

PHP가 실행될 때 로드하는 환경설정 파일은 다음과 같다.

# 15.12.16 추가. 초기 기본 파일이 없어진 것 같습니다. (적어도 7.0.2 에는 기본샘플파일이 없네요)

# vi /usr/local/php7/etc/php.ini

 

 

17 Comments

  1. 여러곳에서 php7이 빠르다고 난리네요 ㅎㅎ

    저는 좀더 안정화되고 호환이 잘 될때 적용하려고 합니다. 사실 적당한 시기라는것도 잡기 너무 힘들지만….

    블로그 잘 보고 있습니다 ^^

    1. 감사합니다!

      PHP7이 하위버전 대비 10%, 20% 빠른게 아니라 두배 정도 빠르니까 다들 열광하는 것 같습니다.

  2. 안녕하세요 라엘님 ^_^ 수고가많으십니다, 항상감사드리구요~!

    php7.1.0 dev + nginx 1.9.5 + mariadb 10.1 < 이렇게 최신버전으로 혹시, 포스팅 계획이 있으신지요.

    라엘님의 깔끔하고 가독성이 띄어난 포스팅으로 인해 서버를 구축하게됬습니다. 다시한번 감사의 말씀을 드리네요,

    원하는 포스팅은 위와같은데 혼자해보니 어려움을 겪게되네요 혹시 가능하시다면

    부탁드려도 될런지요 !!

    1. 글 작성을 고려해보겠습니다.
      다만 작성에 오랜 시간이 걸리므로, 당분간은 다른 분의 글을 찾아보셔야 합니다.

  3. 안녕하세요.
    아미나 초보입니다.

    현재 우분투 14 서버에
    nginx와 마리아db10 그리고 이글 보고 php7설치중입니다.

    리눅스 설치부터 apm까지 다 처음설치하는데

    위 설정으로 아미나 잘 작동될까 궁금합니다.

    그리고 본문 중 4. PHP7 을 Apache2 에 등록
    nginx도 똑같이 적용 되는지 질문드립니다.
    초면에 많은 질문 죄송합니다.

    1. 안녕하세요. Nginx 와 Apache 는 설정방법이 다릅니다. (환경설정 파일 위치도 다름.)

      곧 서술해서 쓰도록 하겠습니다.

      1. 감사합니다.
        좋은 주말 보내세요.

  4. 안녕하세요. 초면에 질문드리게 되어 죄송합니다…

    http://puu.sh/lBErs.png
    위 이미지와 같이 사이트를 보고 따라했는데 어디에선가 오류가 발생했습니다…
    혹시 조언을 구할 수 있을까 싶어 댓글을 남기고 갑니다.

    현재 OS는 Ubuntu 14.04.3 LTS
    Apache/2.4.7 (Ubuntu) 로 구성된 서버입니다.
    php -v시 v7.0.3로 정상적으로 보이는걸보아 apache와 연동에 문제가 있는 것 같은데 원인을 잘 모르겠습니다.

    1. PS. 해결했습니다!

      댓글을 삭제하기 보다 저처럼 문제가 발생하신 분들이 있으실까봐 남겨둡니다.
      기존에 php5를 이용하던 서버는 apt-get remove php5하시고
      a2dismod php5 까지 하셔야 정상 작동 됩니다.

      1. 아하 그런 경우가 있군요.
        본문에 해당사항을 추가해놓겠습니다.

  5. 안녕하세요 질문한가지를 할까합니다 윈도우에서도 php7이 가능한가요?

  6. 좋은 정리 감사합니다.
    ‘정식 버전 출시가 미루어 진것 같습니다.’ 라고 설명되어 있는데
    php7 release 가 12월 3일에 발표된으로 보입니다.
    http://php.net/archive/2015.php#id2015-12-03-1

    1. 감사합니다! 해당 내용을 수정 보완하였습니다.

  7. E: Unable to locate package php7-nightly 라고 나옵니다.

    어떻게 해결해야할까요..?

    1. 아마 중간에 오타를 입력하신 것 같습니다.
      컨트롤 C 로 본문의 명령을 복사한 후에 쉘에서 쉬프트 + INSERT 키로 붙여넣기 한 후에 실행해보세요.

  8. 자답합니다.. 링크타고들어가서 최신버전 받고

    설치하기 위하여 소프트웨어센터를 열고 들어가본 결과

    Wrong architecture ‘amd64’ 라고 나오네요.

    네, 제 컴퓨터는 32비트입니다.. 저같은 분이 또 계실까봐 자답 달아놓아요~

    php5버전으로 해야 될거같네요..ㅎㅎ

    그리고 블로그 참 유익하네요. 많이 배웁니다. 감사합니다!

Leave a Comment

작성하신 댓글은 관리자의 수동 승인 후 게시됩니다.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
*
*