디지털 오션에서 워드프레스 이미지로 설치한 서버의 PHP 버전을 PHP 7.2로 업그레이드하기

이전 글에서 가상 서버 호스팅(VPS) 디지털 오션에 워드프레스 이미지를 사용하여 워드프레스를 설치하고, 도메인을 추가한 후 무료 Let's Encrypt SSL 인증서를 설치하는 방법을 살펴보았습니다.

Digital Ocean에서 제공하는 워드프레스 원클릭 앱을 사용하여 서버를 구성하면 PHP 버전이 7.0입니다.

@wordpress:~$ php -v
PHP 7.0.22-0ubuntu0.16.04.1 (cli) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.22-0ubuntu0.16.04.1, Copyright (c) 1999-2017, by Zend Technologies

워드프레스에서 PHP 권장 버전을 PHP 7.2로 조정하였습니다("워드프레스에서 권장 PHP 버전을 7.2 이상으로 조정" 참고).

다음과 같은 방법을 통해 PHP 버전을 7.2로 업그레이드할 수 있습니다.

1. PPA ondrej/php 추가

Ondřej Surý의 PHP PPA를 사용합니다. PPA를 추가하고 패키지 정보를 업데이트합니다. 다음 명령을 실행합니다.

Ubuntu:

sudo add-apt-repository ppa:ondrej/php
sudo apt update

Debian:

sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
sudo sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
sudo apt update

2. 현재 PHP 패키지

이전 버전을 업그레이드하는 경우에만 해당합니다. 현재 PHP 패키지를 메모하도록 합니다.

dpkg -l | grep php | tee packages.txt

3. PHP 7.2 설치

다음 명령을 실행합니다. 그러면 PHP 7.2를 실행하는 데 필요한 기본적인 패키지가 설치됩니다.

sudo apt install php7.2 php7.2-common php7.2-cli php7.2-fpm

4. 추가 모듈 설치

상기 단계 2에서 생성한 packages.txt 파일을 참고로 하여 추가 PHP 패키지를 설치합니다. 저는 다음과 같은 패키지를 추가로 설치했습니다.

sudo apt-get install php7.2-common php7.2-json php7.2-opcache php7.2-mysql php7.2-mbstring php7.2-zip php7.2-gd php7.2-curl php7.2-xml php7.2-readline php7.2-cgi php7.2-phpdbg php7.2-dev php7.2-enchant php7.2-imap php7.2-interbase php7.2-intl php7.2-ldap php7.2-odbc php7.2-pgsql php7.2-snmp php7.2-xsl php7.2-sybase php7.2-sqlite3 php7.2-bcmath php7.2-dba

혹시 누락된 패키지가 있으면 아래에 알려주시면 추가하도록 하겠습니다.

5. 웹 서버 구성

다음 절차를 통해 웹 서버에서 PHP 7.2 소켓/모듈을 올바르게 사용하고 있는지 확인하라고 참조한 글에서 나와 있지만 불필요한 단계 같습니다(확실치 않습니다).

Apache with php-fpm

Before we remove the old PHP packages, make sure that your web server correctly uses the PHP 7.2 sockets/modules. If you installed php7.2-fpm above, and using Apache, a2enconf php7.2 will make Apache use PHP 7.2 FPM. Type a2disconf php7.1-fpm to disable existing FPM configurations.

The steps would be similar for Nginx. Refer to the relevant documentation to change socket paths or IP:Port information.

Apache with mod_php
You can disable the current PHP integration with a2dismod php7.1 (or your current version) and enable new PHP 7.2 module with a2enmod php7.2.

6. 이전 버전 제거

사이트가 제대로 작동하면 다음 명령을 통해 기존 버전을 제거합니다.

sudo apt purge php7.0*

마치며

packages.txt 파일을 제대로 참고하여 기존 패키지에 맞게 설치해야 하지만, 기존 버전을 삭제하면서 누락된 패키지만을 확인하여 추가했기 때문에 필요한 패키지가 누락되었을 수가 있습니다.

테스트해보니 사이트 자체는 문제 없이 잘 돌아가는 것 같습니다.

하지만 테스트로 워드프레스 테마 하나(구입해놓고 사용하지 않고 있는 Enfold 테마를 예시로 사용)를 업로드하려고 하니 오류가 발생하네요. php.ini 파일을 살펴보니 PHP 설정 값이 전반적으로 낮은 편이네요.

디지털 오션에서 워드프레스 이미지로 설치한 서버의 PHP 버전을 PHP 7.2로 업그레이드하기 2

info.php 파일을 하나 만들어서 php.ini 파일의 위치를 확인해볼 수 있습니다. 저는 다음과 같이 설정을 조정했습니다.

php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 600
php_value max_input_time 300
php_value memory_limit 512M
php_value max_input_vars 2000

php.ini 파일을 수정한 후에는 웹서버를 재시작합니다.

sudo service apache2 restart

다시 Enfold 테마를 설치하니 문제 없이 설치가 되네요.

VultrDigital Ocean 같은 가상 서버 호스팅(VPS)을 이용하면 저렴하게 VPS를 이용할 수 있습니다. 하지만 서버를 직접 세팅하고 관리해야 하는 번거로움이 있습니다. 서버 관리에 부담을 느끼는 경우 이 블로그에 사용된 Bluehost VPS와 같은 관리형 VPS를 고려해볼 수 있습니다("블루호스트(Bluehost) 소개" 참고).

References:

 


댓글 남기기

* 이메일 주소는 공개되지 않습니다.