PHP 7.4 버전의 환경에서 라이믹스를 사용해왔는데, 7.4 버전의 정식지원이 종료되었다. 라이믹스도 PHP8 환경에서 안정화되었다고 판단해서 PHP 버전을 업그레이드했다. 사용중인 모듈, 레이아웃, 스킨 등에서 PHP8 버전 지원이 안되고 있지만, 언제까지고 기다릴수는 없어서 일단 업그레이드 먼저 하고, 업그레이드 후 발생하는 문제는 직접 수정하기로 했다.
PHP 레파지토리를 추가하지 않았다면 아래 명령으로 레파지토리를 추가 후 업데이트한다.
$ sudo add-apt-repository ppa:ondrej/php $ sudo apt update
설치설치
$ sudo apt install php8.3 php8.3-{fpm,mysql,cli,common,opcache,readline,mbstring,xml,gd,curl,intl,zip,apcu} -y
$ sudo systemctl enable php8.2-fpm $ sudo systemctl start php8.2-fpm
nginx 사이트 설정에서 업데이트한 버전의 FPM 소켓으로 변경해주어야 한다. 아래 명령으로 사이트 설정을 연다.
$ vim /etc/nginx/site-available/my-site
라이믹스 공식메뉴얼의 NGINX 설정방법에 따라서 설치했다면, 다음과 같이 FPM 소켓을 지정하는 설정이 있는데, 이 부분을 설치한 PHP 버전으로 변경해준다. 예를 들어 이전에 PHP 7.4 버전을 사용했다면 fastcgi_pass unix:/run/php/php7.4-fpm.sock; 명령이 있을텐데, 여기에서 php7.4-fpm을 php8.3-fpm으로 수정한다.
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_pass 127.0.0.1:9000;
include snippets/fastcgi-php.conf;
}
NGINX 설정이 정확한지 테스트하고, 문제가 없다면 어플리케이션을 재시작한다. 사이트에 접속해서 웹페이지가 잘 동작하는지 확인한다.
$ sudo nginx -t $ sudo systemctl restart nginx
이전 버전의 PHP FPM을 더이상 사용하지 않는다면 아래 명령으로 비활성화해준다.
$ sudo systemctl disable php7.4-fpm
(선택사항) 더불어 이전 버전의 PHP가 더이상 필요하지 않다면 아래 명령으로 PHP 및 관련모듈을 삭제한다.
$ sudo apt remove php7.4 php7.4-{fpm,mysql,cli,common,opcache,readline,mbstring,xml,gd,curl,intl,zip,apcu}
PHP 버전을 업그레이드했는데 사이트에서 에러가 너무 많이 발생해서 이전에 사용하던 PHP 버전으로 돌아가야 한다면, 위의 NGINX 사이트 설정에서 수정했던 설정 파일을 열어서 PHP FPM을 이전 버전으로 수정한다. 예를 들어 이전에 사용하던 PHP 버전이 7.4 라면, 위에서 수정한 php8.3-fpm.sock 부분을 php7.4-fpm.sock으로 다시 수정하고 NGINX를 다시 시작한다. 8.3 FPM을 더이상 사용하지 않는다면 비활성해준다.
$ sudo nginx -t $ sudo systemctl disable php8.3-fpm $ sudo systemctl restart nginx