Ubuntu 14.04 PHP 5.x 에서 PHP 7 업그레이드 방법 및 후기

php 7 업그레이드

원글 주소 : http://blog.inflearn.com/php-7-업그레이드-ubuntu/

*이글은 장.단기 기억 상실증인 스스로를 위해서 작성합니다.
*DigitalOcean 기술 블로그 글의 ‘How To Upgrade to PHP 7 on Ubuntu 14.04’ 를 99% 참고했어요.
*산더미 같은 기술적 허점이 존재할 수 있습니다.

Ubuntu 14.04 on PHP 5.6 환경에서 wordpress 로 만들어진 웹 서비스를 운영하고 있습니다. 사람이 실제로 사용하는 서비스가 되다보니 덕지덕지 붙은게 많아서 속도문제가 항상 있어요. 최근 사용자가 늘다보니 서버가 힘들어 하는 경우도 잦고, 해서 오토스케일링 적용하기 전까지 일단 PHP 7  업그레이드 진행하기로!

결론 부터 말하면 기능적인 면으로 봤을땐 엄청만족. 속도가 느껴질 정도의 개선이 있었고, 특히 CPU & 메모리 부담이 눈에 띄게 줄었어요. 너무 드라마틱 해서 전의 설정이 잘못됐었나 의심이 들정도라능..;;

준비

– 리눅스 Ubuntu 14.04  에 PHP 5.x (혹은 그 이하) 버전이 설치되어 있다는 전제하에 순서가 진행됩니다. Apache2 에서 mod_php 또는 NginX 에서 PHP-FPM을 사용하고 있겠지요.

– 이글 보는 분이라면 대부분 알겠지만 리눅스 서버로 접속은 당연 할줄 알아야 합니다. 앞으로 나오는 코드는 모두 콘솔에서 작성합니다.

– 혹시몰라서..
콘솔접속은 mac 터미널에서

ssh 아이디@내서버IP주소

를 써서 접속하면 되요.
그리고 앞으로 나오는 sudo 는 자신이 쓰는 계정이 최고 관리자가 아니면 항상 써야됩니다.

PHP 7.0 패키지 저장소 추가

패키지 저장소를 추가해야 됩니다.
ubuntu 서는 패키지저장소 라는 개념이 있는데 간단한 명령어로 그 저장소의 프로그램 들을 설치 할 수 있어요.
Ondřej Surý 이 PHP 7.0 패키지 저장소를 만들어 뒀습니다.

sudo add-apt-repository ppa:ondrej/php

위의 코드를 입력하면 저장소가 추가됩니다.
그리고

sudo apt-get update

위의 코드로 앞으로 사용할 패키지 저장소들의 리스트를 업데이트 합니다.

PHP 7.0   업그레이드

NGINX 버전

PHP-FPM 패키지와 관련된 것들을 설치.

sudo apt-get install php7.0-fpm

선택하는게 나오는데 Enter 를 쳐서 진행해용.
DB로 Mysql  이나 MariaDB 를 사용중이면 PHP 와 MYSQL 를 연결해줘야 되요.

sudo apt-get install php7.0-mysql

설치를 한 후엔 Serverblock 설정을 수정해 줘야 합니다.
서버블럭 설정은 환경마다 다를 수 있어요. 보통 /etc/nginx 부근 찾아보면 보여요!

서버블럭 설정 파일을 열어서 location ~ \.php$ { } 안에 있는
fastcgi_pass unix:/var/run/php5-fpm.sock; 를
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; 로 아래 처럼 바꿉니다.

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /var/www/html;
    index index.php index.html index.htm;

    server_name 내서버IP주소;

    location / {
        try_files $uri $uri/ =404;
    }

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; //여기!!
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

변경한 후에 NginX 를 재시작 해주세요.

service nginx restart

재시작 후엔

php -v

로 PHP 버전을 확인.

APACHE 버전

apache 는 좀 더 간편.
PHP 7 을 설치한다.

sudo apt-get install php7.0

php 7 과 mysql 과 연결한다.

sudo apt-get install php7.0-mysql

끄읏ㅌ~.

php 7.0  이 잘 설치됐나 확인합니다.

php -v

PHP 설치 확인

php -v 명령으로 간단히 확인할 수 있지만, phpinfo() 를 쏴주는 파일을 만들어서 열람해 보면 좀 더 자세한 내용을 볼 수 있어요.
서버 아무데나 info.php 파일을 만들고 아래의 코드를 넣습니다.

<?php
phpinfo();
?>

저장하고 해당 주소로 들어가면 잘 보임.
중요한 서버 정보니까 후딱 자기만 보고 지우세요.

후기

전 환경이 잘못됐는지

sudo apt-get install php7.0-fpm

에서 관련된 패키지들이 설치되지 않았어요. 원래 그런건지.. 아닌건지..
그래서 wordpress 여러 플러그인들이 제대로 돌아가지 않는 문제가 발생했었는데, 설치가 안된 것들을 찾아서 재설치 했습니다.

sudo apt-get install php-soap
sudo apt-get install php-xml
sudo apt-get install php-xml
등등...

을 설치했어요.

성능은 확실히 좋아졌어요.
속도면에서 페이지가 전환되는 건 다운로드 속도가 더 영향을 미쳐서 잘 느끼지 못하지만, 비동기로 처리되는 것으로 비교해보면 훨씬 빨라졌다는게 느껴지네요.
게다가 CPU 와 메모리 사용량도 현저하게 줄었고!!.

php 7 업그레이드 비교
대략적인 비교지만 눈에 띄게 CPU 사용량이 적어요. 먼저 설정이 잘못된건가..? 싶을정도로

날밤 깐 보람이 있네요.

Subscribe
Notify of
guest

0 Comments
Newest
Oldest Most Voted
Inline Feedbacks
모든 댓글 보기
0
생각을 나눠주시면 감사해요!x
()
x
Please enter Google Username or ID to start!
Example: clip360net or 116819034451508671546
Title
Caption
File name
Size
Alignment
Link to
  Open new windows
  Rel nofollow