2018년 12월 6일(미국 현지시간)에 php 7.3 정식 버젼이 릴리즈 되었습니다. 여기서는 기존 php 7.2에 비해서 한층 빨라졌다는 php 7.3 설치 방법을 살펴 봅니다.
php 7.3은 2017년 11월 30일에 출시된 php 7.2에 이은 네번째 버전으로 한때는 php 7.2를 끝으로 php 8.0으로 넘어간다는 풍문도 있었지만 어째든 php 7.3이 출시되었죠. 아마 이후에 php 8.0이 따로 출시 준비하는 것으로 보입니다.
[참고] 최신 발표된 PHP 8 설치 방법은 아래 글을 참조
1. php 7.3 설치
그러면 php 7.3를 설치하려면 어찌해야 할까요? 아래 간단히 정리해 봅니다.
저는 ubuntu 7.2을 사용하고 있어 이를 기준으로 정리합니다. 우분투 계열은 같은 방식으로 적용 가능 합니다.
1.1. PPA 등록
php를 설치하기 위해서는 ppa를 사용해야 합니다. ppa는 Personal Package Archive의 약자로 개인이 관련 자료를 올려놓은 저장소를 말합니다.
아마 이전 버젼의 php 설치 시 등록했을지 모르지만 다시 ppa(Personal Package Archive)를 등록해 줍니다.
php 설치 시 사용하는 ppa는 Ondřej Surý의 개인 저장소 가 가장 유명하고 많이 사용됩니다. 여기서도 Ondřej Surý의 개인 저장소를 이용할 것입니다.
이는 아래와 같은 명령을 사용해 PHP 저장소 추가 및 보안키 등록합니다.
apt-get install software-properties-common && add-apt-repository ppa:ondrej/php
Code language: PHP (php)
add-apt-repository ppa:ondrej/php를 실행하면 여기서 메세지가 나오면서 엔터를 치라는 메세지가 나오는데요. 고민하지말고 엔터를 치면됩니다.
1.2. 현재 php 적용 패키지 확인
본격적으로 새로운 버젼의 php를 설치하기 전에 현재 적용된 php 패키지를 확인합니다. 그래야 기존에 적용된 패키지를 다시 설치할 수 있으니깐요.
아래 명령을 사용하면 현재 사용중이 php관련 패키지 모듈 리스트가 주욱 뜹니다. 그리고 packages.txt에 저장이 됩니다. 이 파일은 현재 작업하고 있는 디렉토리에 저장됩니다.
dpkg -l | grep php | tee packages.txt
Code language: PHP (php)
1.3. php 7.3 설치
php 7.3 설치는 기본 모듈을 먼저 설치하고 이어서 추가로 모듈을 설치할 수 도 있고요. 아니면 기본 모듈과 추가 모듈을 한꺼번에 설치할 수도 있습니다.
여기는 정석대로 기본 모듈 설치 후 추가 모둘을 설치하겠습니다.
먼저 기본 모듈 설치 명령입니다. 이렇게하면 PHP 7.3가 작동하는데 필요한 기본 패키지가 설치됩니다. php7.3-fpm 패키지는 웹 서버 통합에 사용됩니다.
apt-get install php7.3 -y
Code language: PHP (php)
PHP7.3을 설치하고나서 관련 모듈을 설치합니다. 이 과정에서 일반적으로 널리 사용되는 모듈 list가 많이 돌아다니고 있으므로 이를 기준으로 설치해도 되고, 아니면 PHP7.3 모듈 패키지 리스트를 보고 선택을 할 수도 있다.
아래 명령은 PHP 7.3 modules 리스트를 알려주는데 이를 보고 추가할 모듈 패키지가 있는지 볼 수 있다.
# apt-cache search php7.3
Code language: PHP (php)
다음으로는 php 추가 모듈을 설치합니다. 앞서 php 적용 패키지 확인 시 나왔던 모든 패키지를 설치해 줍니다.
apt-get install php7.3-bcmath php7.3-bz2 php7.3-cgi php7.3-cli php7.3-common php7.3-curl php7.3-dba php7.3-dev php7.3-enchant php7.3-fpm php7.3-gd php7.3-gmp php7.3-imap php7.3-interbase php7.3-intl php7.3-json php7.3-ldap php7.3-mbstring php7.3-mysql php7.3-odbc php7.3-opcache php7.3-pgsql php7.3-phpdbg php7.3-pspell php7.3-readline php7.3-recode php7.3-snmp php7.3-soap php7.3-sqlite3 php7.3-sybase php7.3-tidy php7.3-xml php7.3-xmlrpc php7.3-zip php7.3-xsl -y
Code language: PHP (php)
1.4. php handler 수정
설치 후 php handler 수정합니다.
nginx 기준으로 변경해야하는 파일은 /etc/nginx/conf.d/default.conf 인데요. 사람에 따라선 이를 다른 이름으로 사용하는 분도 있습니다. 여러 개의 사이트를 운영하는 경우 사이트명을 변경하는 경우도 있습니다. 저도 이를 happist.com.conf라는 이름으로 사용하고 있습니다.
아무튼 편집 화면으로 들어가서 PHP handler의 내용중
fastcgi_pass unix:/run/php/php7.2-fpm.sock; 을 fastcgi_pass unix:/run/php/php7.3-fpm.sock; 로 바꾸어줘야 합니다. 그래야 php7.3을 인식하고 php7.3로 작동합니다.
# Add PHP handler
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
fastcgi_pass unix:/run/php/php7.3-fpm.sock; <---------- 이 부분을 7.3로 변경해야합니다.
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 16k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
# This file is present on Debian systems..
include fastcgi_params;
}
Code language: PHP (php)
1.5. date.timezone setting
PHP Default timezone 설정할 필요가 있습니다. 이것을 하지 않으면 시스템 타임존을 사용합니다. 이를 한국 시간으로 변경합니다.
타임존의 변경은 fpm 및 cli 디렉토리의 php.ini 두개 차일 모두 변경해 줍니다.
vi /etc/php/7.3/fpm/php.ini
vi /etc/php/7.3/cli/php.ini
Code language: PHP (php)
php.ini 파일이 열리면 date.timezone을 찾아서 date.timezone = Asia/Seoul로 변경합니다.
1.6. phpMyAdmin DB 업로드 용량 확대
phpMyAdmin에서 DB를 백업 받고 또 필요에 따라 DB 업로드하려면 업로드 용량 확대가 필요합니다. 아마 처음 PHP를 설치하면 2M로 설정되어 있어 금방 용량 부족으로 업로드가 불가능하게 됩니다. 이를 방지하기 위해서 php.ini에서도 용량을 원하는 만큼 증대합니다.
upload_max_filesize = 2M → ***M으로 변경
post_max_size = 2M → ***M으로 변경
Code language: PHP (php)
파일 업로드 용량에 대해서는 보안 문제로 이를 금지하도록 가이드하는 곳도 있습니다. 그러나 워드프레스에서 가끔 큰 용량의 파일 업로드가 필요한 시기가 있긴 합니다. 예를 들어 pdf 파일을 올려서 공유한다든지 아니면 사이트를 복제해 이전하는 경우는 대용량 파일 업로드가 필요하긴 합니다.
필요에따라 적절하게 사용하면 됩니다.
1.7. php7.3-fpm 재시동
이러한 php.ini 설정이 끝났으면 php7.3-fpm를 재시동합니다. 그러면 변경된 옵션으로 작동할 것입니다.
systemctl restart nginx.service php7.3-fpm.service
Code language: PHP (php)
2 기존 버젼 php 삭제하기
php 업그레이드 후 기존 버젼 삭제할 것인지에 대해서는 이런 저런 이야기가 있지만 저는 삭제하는 게 좋다고 봅니다.
실제로 한 서버에서 두개의 php가 작동할 수 없으므로 제대로 업그레이드 되었다면 기존 버젼은 전혀 필요가 없습니다.
그래서 아래와 같은 명령어로 php 7.2을 삭제했습니다.
apt-get purge php7.2*
Code language: PHP (php)
참고
PHP 25년 역사의 새장을 여는 PHP 8 설치 방법 – 우분투 및 데비안 기준
[워드프레스 최적화] 한층 빨라진 최신 php 7.3 설치 방법
[워드프레스 최적화] 보안과 서버 속도 개선을 위한 php 7.2 설치 방법 및 주의 사항
더 빠른 워드프레스를 위한 PHP 7.1 업그레이드 방법
서버 운영 관련
가성비가 뛰어난 Vultr 가상서버호스팅(클라우드호스팅,VPS) 사용기
Vultr 가상서버호스팅의 새상품 High Frequency 사용기
가상 서버를 운영하고픈 勇者에게 전하는 가상 서버 운영 입문 노하우 – Vultr 가상서버호스팅(VPS)를 중심으로
해외 가상서버호스팅(VPS)이 국내 호스팅보다 빠르다? – 아이비호스팅과 해외 가상서버호스팅 VULTR간 비교
사이트 운영을 위한 안내 – 웹서버 세팅에서 워드프레스 설치까지(우분투 17.10, NGINX 1.13.6, Marian DB 10.2, PHP7.2)