PHP 모듈 출력 옵션 (-m)
PHP는 코어 언어 스펙 외에도 다채로운 데이터베이스 연동, 이미지 처리, 압축 가공, 네트워크 통신 기능 등을 독립된 확장 모듈(Extension) 구조로 설계해 덧붙여 나갑니다.
PHP -m 옵션은 현재 동작하는 PHP CLI 환경에 어떠한 모듈들이 로드되어 실제로 기동 중인지 그 리스트를 터미널 화면에 일목요연하게 덤프하여 보여줍니다.
1. 사용법 및 결과 영역 식별
터미널 콘솔창에 옵션을 적어 수행합니다.
$ php -m
[PHP Modules]
bcmath
Core
curl
date
filter
hash
mbstring
openssl
pdo_mysql
zlib
[Zend Modules]
Zend OPcache
출력 내용은 크게 두 부분으로 구조화되어 나타납니다.
[PHP Modules](일반 모듈): PHP의 API 함수 및 드라이버 연결을 지원하는 일반 라이브러리들입니다.php.ini에 등록 시extension=모듈명형식으로 로드합니다.[Zend Modules](젠드 모듈): PHP 가상 머신의 동작을 제어하거나 최적화하는 데 관여하는 기저 로우레벨 엔진 확장입니다.php.ini에 등록 시zend_extension=모듈경로형식으로 정교하게 지정해주어야 로드됩니다. (예:Zend OPcache, 디버거 툴인Xdebug등)
2. 실무 트러블슈팅에서의 필수 가치
개발 중 또는 서버 세팅 후 특정 모듈이 없다는 에러 메시지를 수신했을 때, 모듈 탑재 유무를 교차 검증하기 위한 1순위 진단 도구입니다.
# 에러 예시
Fatal error: Uncaught Error: Call to undefined function curl_init()
위와 같은 에러가 발생한 경우, 우선적으로 터미널에서 모듈이 활성화되었는지 필터링합니다.
$ php -m | grep -i curl
curl
- 검색 결과 없음:
php.ini파일에서extension=curl앞에 붙은 주석 기호(;)를 풀지 않았거나, 서버 운영체제에php-curl패키지를 다운로드해 얹지 않은 상황이므로 이를 수정해야 합니다. - 검색 결과에 명시됨: CLI 터미널 환경에서는 curl이 잘 탑재되었으나, 실 가동되는 웹 프로세스(PHP-FPM 등)에서 로드하는
php.ini파일이 달라 웹 브라우저 접속 환경에만 curl 모듈이 전달되지 못하고 있음을 역추적할 수 있습니다.
이전 학습
« 게시판 만들기
서브목차