Ubuntu 20.04에서 PHP 8.1을 설치하거나 업그레이드하는 방법

PHP 8.1은 2021년에 출시된 최신 PHP 버전입니다.

이 가이드에서는 Ubuntu 20.04 시스템 또는 서버에 현재 8.1인 최신 PHP 버전을 설치하고 Apache 및 Nginx로 구성하는 방법을 배우게 됩니다. 또한 PHP 버전을 최신 버전으로 업그레이드하는 방법도 배웁니다.

이 튜토리얼은 애플리케이션이 원활하게 실행되는 데 더 유용한 PHP INI 설정, FPM 설정, 풀 등을 구성하는 방법을 안내합니다.


전제 조건

Linux에서 SSH 터미널 사용에 대한 기본 지식.

이러한 명령은 되돌릴 수 없으므로 실행하기 전에 서버를 백업해야 합니다. 클라우드 호스팅을 사용 중인 경우 이러한 명령을 실행하기 전에 인스턴스를 이미지화해야 합니다.

현재 사용 중인 PHP 버전을 확인하려면 다음을 실행하십시오.

$ php -v
    

현재 서버에 어떤 PHP 7.x 확장이 설치되어 있는지 확인하고 만일의 경우를 위해 텍스트로 저장해 둡니다.

$ dpkg -l | grep php | tee packages.txt
    

시작하기

다음 명령을 실행하여 Ubuntu 서버에 최신 패키지가 있는지 확인하십시오.

$ sudo apt update
$ sudo apt upgrade
  

이렇게 하면 패키지 색인이 업데이트되고 설치된 패키지가 최신 버전으로 업데이트됩니다.

PHP 8.1용 PPA 추가

PHP 8.1 패키지 및 기타 필수 PHP 확장이 있는 ondrej/php를 추가합니다.

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

PPA를 추가하면 PHP 8.1을 설치할 수 있습니다.

Apache용 PHP 8.1 설치

다음 명령을 실행하여 PHP 8.1을 설치합니다.

$ sudo apt install php8.1
  

설치가 완료되면 다음 명령을 사용하여 설치를 확인할 수 있습니다.

$ php -v
  

Nginx용 PHP 8.1 FPM 설치

Nginx의 경우 FPM을 설치해야 합니다. 다음 명령을 실행하여 PHP 8.1 FPM을 설치합니다.

$ sudo apt install php8.1-fpm
  

설치가 완료되면 다음 명령으로 PHP 8.1 FPM이 올바르게 설치되었는지 확인하십시오.

$ php-fpm8.1 -v
  

PHP 8.1 확장 설치

PHP 확장 설치는 다음 구문으로 간단합니다.

$ sudo apt install php8.1-extension_name
  

이제 다음 명령을 사용하여 일반적으로 사용되는 일부 php-extensions을 설치합니다.

$ sudo apt install php8.1-common php8.1-mysql php8.1-xml php8.1-xmlrpc php8.1-curl php8.1-gd php8.1-imagick php8.1-cli php8.1-dev php8.1-imap php8.1-mbstring php8.1-opcache php8.1-soap php8.1-zip php8.1-redis php8.1-intl -y
  

PHP 8.1 구성

이제 php.ini 파일에서 일부 값을 변경하여 웹 애플리케이션용 PHP를 구성합니다.

Apache가 설치된 PHP 8.1의 경우 php.ini 위치는 다음 디렉토리에 있습니다.

$ sudo nano /etc/php/8.1/apache2/php.ini
  

Nginx를 사용하는 PHP 8.1 FPM의 경우 php.ini 위치는 다음 디렉터리에 있습니다.

$ sudo nano /etc/php/8.1/fpm/php.ini
  

편집기 내에서 검색하려면 F6을 누르고 더 나은 성능을 위해 다음 값을 업데이트하십시오.

    upload_max_filesize = 32M
    post_max_size = 48M
    memory_limit = 256M
    max_execution_time = 600
    max_input_vars = 3000
    max_input_time = 1000
  

PHP 설정을 수정한 후 변경 사항을 적용하려면 Apache를 다시 시작해야 합니다.

PHP-FPM을 사용하는 Nginx 사용자의 경우 PHP-FPM을 다시 시작해야 합니다.

$ sudo service php8.1-fpm restart
  

PHP 8.1 FPM 풀 구성

PHP-FPM을 사용하면 서비스가 실행될 user 및 group을 구성할 수 있습니다. 다음 명령으로 수정할 수 있습니다.

$ sudo nano /etc/php/8.1/fpm/pool.d/www.conf
  

username을 변경하려면 www-data를 username으로 대체하여 다음 행을 변경할 수 있습니다.

    user = username
    group = username
    listen.owner = username
    listen.group = username
  

CTRL+XY를 눌러 구성을 저장하고 구성이 올바른지 확인하고 PHP를 다시 시작하십시오.

PHP 8.1 FPM 재시작

PHP FPM 설정을 업데이트한 후 변경 사항을 적용하려면 다시 시작해야 합니다.

$ sudo php-fpm8.1 -t
$ sudo service php8.1-fpm restart
  

이제 PHP 8.1을 설치하고 구성했습니다.

Apache용 PHP 8.1로 업그레이드

PHP 8.1을 설치했으면 설치된 최신 버전의 PHP로 업그레이드해야 합니다.

지금 설치한 PHP 8.1 버전을 사용하려면 Apache에 지시해야 합니다. 이전 PHP 모듈을 비활성화하고(아래에서 php7.4를 언급했으며 Apache에서 사용하는 현재 PHP 버전을 사용해야 함) 다음 명령을 사용하여 새 PHP 모듈을 활성화합니다.

현재 활성화된 PHP 버전을 자신의 버전으로 교체하십시오.

$ sudo a2dismod php7.4
$ sudo a2enmod php8.1
  

변경 사항을 적용하려면 Apache를 다시 시작하십시오.

$ sudo service apache2 restart
  

Nginx용 PHP 8.1 업그레이드

Nginx의 경우 sites-available 디렉토리 내에 있는 Nginx 구성에서 PHP-FPM 소켓을 업데이트해야 합니다. location 블록 location ~ \.php$ 안에 위치합니다.

환경설정 수정…

$ sudo nano /etc/nginx/sites-available/your.conf
  

수정해야 하는 줄은 다음과 같습니다.

fastcgi_pass unix:/run/php/php7.4-fpm.sock;
  

이전 PHP 버전을 새 버전으로 교체해야 합니다.

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

환경설정을 테스트하십시오.

$ sudo nginx -t
  

파일을 저장하고 편집기를 종료한 다음 Nginx를 다시 시작하여 변경 사항을 적용합니다.

$ sudo service nginx restart