원글 주소 : 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 와 메모리 사용량도 현저하게 줄었고!!.
날밤 깐 보람이 있네요.