Ubuntu20.04 에서 PHP8 업그레이드
우분투 20.04 서버에서 PHP7.4 환경으로 운영하다 PHP8.0 버전이 출시됐다고 해서 잠깐 시간을 내서 업그레이드를 진행했다. 7.4 버전도 사용하는 데 지장이 전혀 없고, 오히려 8.0 버전에서 워프드레스 플러그인 등이 대응되어있지 않으면 오류가 발생할 수도 있기 때문에 꼭 필요한 게 아니라면 굳이 지금 당장 업그레이드를 해야할 이유는 없다. 판단은 각자의 몫이다.
먼저 설치된 PHP7.4 버전의 패키지를 확인한다.
dpkg -l | grep php
나의 경우 7.4 버전에서는 아래의 패키지를 설치해서 운영했다.
php7.4-cli
php7.4-fpm
php7.4-bcmath
php7.4-bz2
php7.4-common
php7.4-curl
php7.4-dba
php7.4-gd
php7.4-json
php7.4-mbstring
php7.4-opcache
php7.4-readline
php7.4-soap
php7.4-xml
php7.4-xmlrpc
php7.4-zip
php7.4-ctype
php7.4-pdo
php7.4-redis
php7.4-mysql
php7.4-imagick
php7.4-intl
이제 PHP8.0 버전 설치를 위한 PPA를 추가한다.
sudo add-apt-repository ppa:ondrej/php
php8.0 패키지 설치를 위해 위의 7.4 패키지에서 7.4를 8.0으로 변경해 진행했더니 설치과정에서 에러가 발생했다. 몇몇 패키지는 통합되고 xmlrpc 패키지는 삭제가 됐기 때문이었다. 그래서 아래와 같이 변경해서 설치를 진행했다.
sudo apt install php8.0-cli php8.0-fpm php8.0-bcmath php8.0-bz2 php8.0-common php8.0-curl php8.0-dba php8.0-gd php8.0-mbstring php8.0-opcache php8.0-readline php8.0-soap php8.0-xml php8.0-zip php8.0-redis php8.0-mysql php8.0-imagick php8.0-intl
php8.0 설치 후 nginx 등에서 사용하기 위해서는 추가적인 설정이 필요하다. nginx 의 경우 아래와 같이 fpm 설정을 변경해주면 된다.
fastcgi_pass unix:/run/php/php8.0-fpm.sock;
업그레이드 후 오류 등이 발생하지 않는다면 7.4 버전은 삭제한다.
apt-get purge `dpkg -l | grep php7.4| awk '{print $2}' |tr "\n" " "`