글 작성자: drizzle_
728x90

 

워드프레스 팀은 계속해서 모든 사용자들이 최신 버전의 PHP를 실행하도록 장려하고 있다.(덕분에, lightsail등을 이용해 블로그를 호스팅하는 블로거 분들은 php의 새로운 버전이 나올때마다 번거로운 절차를 거쳐야한다. 스냅샷, 업그레이드, db복원, 테마 복원..)

따라서 PHP 8.0이 완전히 지원되는 경우 PHP로 업그레이드하여 출시된 최신 기능과 향상된 기능을 활용할 수 있다.

하지만 현재 PHP 8.0은 WordPress와 함께 사용할 준비가 되지 않았다.

최근에 출시된 워드프레스 5.6이 이를 지원할 수도 있지만, 개발자들은 여전히 워드프레스 5.6을 PHP 8.0의 베타 호환이라고 부르고 있다.

하지만 정말로 시도하고 싶다면, PHP 8.0으로 업그레이드를 계속하고 워드프레스와 함께 사용하면 된다.

 

이 글을 따라해서 생긴 모든 문제의 책임은 따라한 본인에게 있습니다. 따라서, 서버의 스냅샷을 만들어 놓거나 설정 파일등을 백업 해놓는것을 추천합니다.


Nginx에서 php8.0으로 마이그레이션하기

Apache2 HTTP 서버에서 WordPress를 실행하는 경우 이걸 할 필요가 없다. 조금만 내리다 보면 Apache2에서 마이그레이션하는 방법이 나온다.

 

이 게시물은 PHP 7.4 이전 버전을 실행 중인 것으로 가정한다.

현재 Ubuntu에는 기본 리포지토리에서 사용할 수 있는 PHP 8.0-FPM 패키지가 없다.

 Ubuntu에 최신 버전의 PHP를 설치하려면 타사 리포지토리를 추가해야 할 수도 있다.

아래 명령을 실행하여 Ubuntu에 아래 리포지토리를 추가합니다.

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php

그리고 apt리스트를 업데이트해준다

sudo apt update -y

이제 php8.0과 연관 모듈들을 설치한다.

sudo apt install php8.0-fpm php8.0-common php8.0-mysql php8.0-gmp php8.0-curl php8.0-intl php8.0-mbstring php8.0-xmlrpc php8.0-gd php8.0-xml php8.0-cli php8.0-zip

php8.0과 연관 모듈들을 설치했다면, Nginx의 PHP설정 파일을 자신이 선호하는 편집기로 연다

이 글에서는 nano를 이용할것이다.

sudo nano /etc/php/8.0/fpm/php.ini

취향껏 설정파일을 편집하고 저장한다.

file_uploads = On
allow_url_fopen = On
short_open_tag = On
memory_limit = 256M
cgi.fix_pathinfo = 0
upload_max_filesize = 256M
max_execution_time = 360
date.timezone = Asia/Seoul

설정 파일을 수정했다면 nginx와 php8.0을 재시작한다.

sudo systemctl restart nginx.service
sudo systemctl restart php8.0-fpm.service

그런 다음 아래 명령을 실행하여 Nginx에 대한 PHP 8.0 지원을 활성화한다.
현재 WordPress 가상 호스트 사이트 구성 파일을 열고 php 블록이 PHP 8.0-FPM을 사용하도록 설정한다.
다음 위치에서 Ubuntu 기본 사이트 구성 파일을 찾을 수 있을 것 이다.

선호하는 편집기로 파일을 연다.

sudo nano /etc/nginx/sites-available/default

아래처럼 수정한다.(php7.x > php8.0)

fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;

저장하고, nginx 서버를 재시작한다.

sudo systemctl restart nginx.service

이제, php7.4패키지를 삭제한다.

sudo apt-get purge `dpkg -l | grep php7.4| awk '{print $2}' |tr "\n" " "`

이렇게 하면 시스템 변경 사항을 수락하라는 메시지가 표시된 다음 Y를 입력하여 계속한다.
PHP 7.3 이전 버전을 실행 중인 경우 7.4를 Ubuntu에서 제거할 특정 PHP 버전 번호로 교체하면 된다.

 


Apache2에서 Php8.0으로 마이그레이션하기

Apache2는 PHP 8.0에서 실행되는 반면 Nginx는 PHP 8.0-FPM에서 실행된다.

다시 Ubuntu의 기본 리포지토리에서 사용할 수 있는 PHP 8.0 패키지가 없을 수 있다.

WordPress를 지원하기 위해 Ubuntu에 PHP 8.0을 설치하려면 아래 명령을 실행하여 타사 저장소를 추가해야 할 수 있다.

아래 커맨드를 이용해 ondrej/php 저장소를 설치한다.

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php

그 후, apt리스트를 업데이트해준다.

sudo apt update -y

이제 PHP8.0과 관련 모듈들을 설치한다.

sudo apt install php8.0 libapache2-mod-php8.0 php8.0-common php8.0-mysql php8.0-gmp php8.0-curl php8.0-mbstring php78.0-xmlrpc php8.0-gd php8.0-xml php8.0-cli php8.0-zip

PHP8.0을 설치하였다면, 아래 커맨드를 이용해 PHP설정 파일을 취향껏 수정한다. 기본 설정이 마음에 들면 건너뛰어도된다.

sudo nano /etc/php/8.0/apache2/php.ini

아래의 설정을 추천한다.

file_uploads = On
allow_url_fopen = On
short_open_tag = On
memory_limit = 256M
cgi.fix_pathinfo = 0
upload_max_filesize = 256M
max_execution_time = 360
date.timezone = Asia/Seoul

Apache2 및 PHP 8.0의 경우 이전 버전의 PHP를 사용하지 않도록 설정하고 Apache2가 최신 버전을 사용하도록 설정해야 한다.

먼저 아래 명령을 실행하여 PHP 7.4를 비활성화한다.

sudo a2dismod php7.4

PHP7.4를 비활성화했다면, PHP8.0을 활성화한다.

sudo a2enmod php8.0

PHP 8.0을 사용하도록 설정한 후 아래 명령을 실행하여 Apache2를 재시작한다.

sudo systemctl restart apache2.service

마지막으로, 아래 커맨드를 이용해 모든 php7.4관련 패키지들을 삭제한다.

sudo apt-get purge `dpkg -l | grep php7.4| awk '{print $2}' |tr "\n" " "`

 

728x90
Email: b1@yeonw.me / 여기를 눌러 다른 연락 수단들 알아보기