보다 효율적인 우분투 서버 운영을 위해서 PHP모듈 관리 방법을 살펴보겠습니다. PHP 모듈을 사용 가능토록 만들거나 당분간 사용할 일이 없는 PHP 모듈을 사용하지 않토록 만드는 방법 등을 알아보도록 하겠습니다.
이 내용은 우분투 서버에서 PHP 모듈 관리 관련해 나름 잘 정리되어 있는 How to enable or disable PHP Modules on Ubuntu 내용을 기반으로 재정리 했습니다.
PHP 모듈 관리 필요성
설치된 모든 php 모듈의 설정 파일은 /etc/php/PHP_VERSION/mods-available 디렉토리에 있습니다. 여기를 보면 우리가 설치했던 php 모듈의 ini 파일을 볼 수 있습니다.
별 생각없이 php 모듈들을 설치했지만 어느 순간 이러한 모듈을 제거하거나 사용 중단시키고 싶을 때가 있을 것입니다. 사실 사이트에 엄청난 기능들이 탑재되지 않는 한 이렇게 많은 모듈들이 필요하지는 않겠죠.
일전에 설명한대로 PHP 8이 정식 런칭한 후 바로 워드프레스 운영 서버에 설치해 오랬동안 사용했지만 아무래도 PHP 8과 워드프레스는 어느 정도 충돌하는 것 같습니다.
PHP 8과 워드프레스 5.6의 궁합은 갈수록 개선되는 것을 볼 수는 있지만 안정한 버젼을 사용하려면 최소 6개월 정도는 기다리는 것이 좋겠다는 생각을 합니다.
그리고 보안 사항들으 검토하면서 일부 PHP 모듈은 사용을 중지 또는 삭제해야겠다는 생각을 했습니다.
제가 이 작업에 관심을 가졌냐면 워드프레스 보안을 위해서 xmlrpc 기능을 완전히 사용하지 않겠다고 마음먹었고, 그러려면 php에 있는 xmlrpc 모듈도 삭제 또는 사용 중지하는 것이 좋겠다는 생각을 했죠.
php 기능 제어 세가지 옵션
우리가 php 모듈 설치 시 사용하는 php-common 패키지는 php 모듈 제어를 위해서 아래와 같은 세가지 명령 옵션을 제공하고 있습니다.
- phpenmod – PHP 모듈을 사용 가능하도록 설정 시 사용
- phpdismod – PHP 모듈을 사용 가능하지 않토록 설정 시 사용
- phpquery – PHP 모듈 사용 상태를 살펴볼 때 사용
아시다시피 PHP에는 세가지 타입의 SAPI(Server API)를 사용할 수 있습니다. 가장 널리 사용되는 이 세가지에는 CLI, FPM, Apache2가 있습니다.
PHP 모듈 사용 가능하게 만들기
위에서 언급한 PHP 모듈 제어를 위한 세가지 명령 옵션 중 phpenmod를 사용해 모듈을 사용 가능하도록 만들 수 있습니다. phpenmod 다음에 모듈 이름을 적어서 표현합니다.
아래 명령은 모든 PHP 버전, 모든 SAPI에 적용되는 명령입니다.
### 기본 사용 방법(Syntax)
phpenmod MODULE_NAME
### mbstring php 모듈을 사용가능토록 만들기 예
phpenmod mbstring
Code language: PHP (php)
위 명령은 시스템에 설치된 모든 버젼에 효력을 미치는 명령인데요. 만약 특정 PHP 버전의 PHP 모듈에만 명령을 사용하고 싶다면 -v 다음에 PHP 버전을 표기해 사용합니다.
아래 명령은 특정 버전 PHP 모듈에 영향을 미치되 모든 SAPI(CLI, FPM, Apache2)에 영향을 미치는 명령입니다.
### 기본 사용 방법(Syntax)
phpenmod -v <PHP VERSION> <MODULE NAME>
### PHP 특정 버전에 mbstring php 모듈을 사용가능토록 만들기 예
phpenmod -v 8.0 mbstring
phpenmod -v 7.4 mbstring
Code language: PHP (php)
그러면 특정 SAPI에만 영향을 미치려면 -s 옵션을 사용합니다. -s 다음에 특정 SAPI를 지정하는 것입니다.
### 기본 사용 방법(Syntax)
phpenmod -s <SAPI> <MODULE NAME>
### 특정 SAPI에 mbstring php 모듈을 사용가능토록 만들기 예
phpenmod -s cli mbstring
phpenmod -s fpm mbstring
phpenmod -s apache2 mbstring
Code language: PHP (php)
PHP 모듈 사용 불가능하게 만들기
PHP 모듈 제어를 위한 세가지 명령 옵션 중 phpdismod를 사용해 모듈을 사용 가능하도록 만들 수 있습니다. phpdismod 다음에 모듈 이름을 적어서 표현합니다.
아래 명령은 모든 PHP 버전, 모든 SAPI에 적용되는 명령입니다.
### 기본 사용 방법(Syntax)
phpdismod MODULE_NAME
### mbstring php 모듈을 사용가능토록 만들기 예
phpdismod mbstring
Code language: PHP (php)
위 명령은 시스템에 설치된 모든 버젼에 효력을 미치는 명령인데요. 만약 특정 PHP 버전의 PHP 모듈에만 명령을 사용하고 싶다면 -v 다음에 PHP 버전을 표기해 사용합니다.
아래 명령은 특정 버전 PHP 모듈에 영향을 미치되 모든 SAPI(CLI, FPM, Apache2)에 영향을 미치는 명령입니다.
### 기본 사용 방법(Syntax)
phpdismod -v <PHP VERSION> <MODULE NAME>
### PHP 특정 버전에 mbstring php 모듈을 사용가능토록 만들기 예
phpdismod -v 8.0 mbstring
phpdismod -v 7.4 mbstring
Code language: PHP (php)
그러면 특정 SAPI에만 영향을 미치려면 -s 옵션을 사용합니다. -s 다음에 특정 SAPI를 지정하는 것입니다.
### 기본 사용 방법(Syntax)
phpdismod -s <SAPI> <MODULE NAME>
### 특정 SAPI에 mbstring php 모듈을 사용가능토록 만들기 예
phpdismod -s cli mbstring
phpdismod -s fpm mbstring
phpdismod -s apache2 mbstring
Code language: PHP (php)
[참고] 특정 PHP 버전 전체를 삭제하기
일반적인 시스템에서는 여러개의 php 버젼을 사용할 필요가 없습니다. 그렇기 때문에 업그레이드를 하게되면 이전 버전을 삭제하게 되죠.
이는 아래와 같은 명령을 사용합니다.
apt-get purge `dpkg -l | grep php7.4| awk '{print $2}' |tr "\n" " "`
Code language: PHP (php)
참고
PHP 25년 역사의 새장을 여는 PHP 8 설치 방법 – 우분투 및 데비안 기준
아직 워드프레스 PHP 8 적용은 시기상조, 속도 개선 없고 플러그인 문제 발생
[워드프레스 최적화] 한층 빨라진 최신 php 7.3 설치 방법
[워드프레스 최적화] 보안과 서버 속도 개선을 위한 php 7.2 설치 방법 및 주의 사항
더 빠른 워드프레스를 위한 PHP 7.1 업그레이드 방법
서버 운영 관련
우분투 20.04와 PHP 8 기반 워드프레스 설치 방법
가성비가 뛰어난 Vultr 가상서버호스팅(클라우드호스팅,VPS) 사용기
Vultr 가상서버호스팅의 새상품 High Frequency 사용기
가상 서버를 운영하고픈 勇者에게 전하는 가상 서버 운영 입문 노하우 – Vultr 가상서버호스팅(VPS)를 중심으로
해외 가상서버호스팅(VPS)이 국내 호스팅보다 빠르다? – 아이비호스팅과 해외 가상서버호스팅 VULTR간 비교
사이트 운영을 위한 안내 – 웹서버 세팅에서 워드프레스 설치까지(우분투 17.10, NGINX 1.13.6, Marian DB 10.2, PHP7.2)