PHP 에이전트 문제 해결
WhaTap PHP 설치 및 설정 오류를 진단하고 해결하는 방법을 안내합니다.
Linux/FreeBSD
PHP 확장 모듈 및 whatap-php 서비스 수동 설정
PHP 확장 모듈과 whatap-php 서비스 설치 및 선택 설치(install.sh)가 정상적으로 이루어지지 않을 경우 수동으로 설정하는 방법을 설명합니다. PHP 컴파일 설치 등의 이유로 환경 정보를 확인할 수 없는 경우 사용하세요.
whatap.ini 생성
$ cp /usr/whatap/php/template.ini /usr/whatap/php/whatap.ini
$ vi /usr/whatap/php/whatap.ini
# 상단에 내용 추가
; Enable whatap extension module
extension=whatap.so
whatap.license= # 발급된 액세스 키
whatap.server.host= # 발급된 서버 IP
whatap.app_name= # 웹서버 구분 APHP, FPHP (apache : APHP, php-fpm : FPHP)
whatap.app_process_name= # apache, php-fpm 의 프로세스 이름(httpd,php-fpm)
| 설정 | 설명 |
|---|---|
| whatap.license | 프로젝트 메뉴 > 관리 > 에이전트 설치 페이지에서 발급된 액세스 키를 확인할 수 있습니다. |
| whatap.server.host | 프로젝트 메뉴 > 관리 > 에이전트 설치 페이지에서 발급된 서버 IP를 확인할 수 있습니다. |
| whatap.app_name | Apache 서버는 APHP, php-fpm 은 FPHP를 사용합니다. |
| whatap.app_process_name | Apache 또는 php-fpm 의 실행 프로세스 이름 설정으로 정확한 프로세 스명 입력하면, 해당 프로세스에 대한 사용 메모리를 수집합니다. 예시로 httpd, apache2, php-fpm 등을 들 수 있습니다. |
PHP 명령어(CLI) 경로 확인
$ which php
/usr/bin/php
whatap-php 서비스 환경 변수 설정
$WHATAP_PHP_BIN 환경 변수에 PHP CLI 명령어의 경로를 설정하세요.
$ sudo vi /etc/init.d/whatap-php
export WHATAP_PHP_BIN= # PHP 명령어 위치(/usr/bin/php)
PHP API 버전 확인
$WHATAP_PHP_BIN 환경 변수에 PHP CLI 명령어의 경로를 설정하세요.
$ sudo php -i | grep 'PHP API'
PHP API => 20100412
PHP ZTS(Zend Thread Safe) 지원 여부 확인
$ sudo apachectl -V | grep MPM
Server MPM: Prefork # ZTS 지원 안함
Server MPM: Worker # ZTS 지원
$ sudo php-fpm -i | grep Thread
Thread Safety => disabled # ZTS 지원 안함
Thread Safety => enabled # ZTS 지원
PHP 확장 모듈 경로 확인 및 설정
PHP 확장 모듈 경로 확인
$ sudo php -i | grep extension_dir
extension_dir => /usr/lib64/php/modules => /usr/lib64/php/modules
PHP 확장 모듈 설정
PHP API 버전, PHP ZTS 지원 여부를 확인하여 환경에 적합한 라이브러리를 선택하세요. PHP 확장 모듈(PHP Extension module) 경로에 whatap.so 파일명을 복사하세요.
-
PHP ZTS를 지원할 경우 - whatap_zts_[PHP API 버전].so
-
PHP ZTS를 지원하지 않을 경우 - whatap_[PHP API 버전].so
# PHP ZTS 지원하지 않을 경우 예시
$ sudo cp /usr/whatap/php/modules/x64/whatap_20100412.so /usr/lib64/php/modules/whatap.so
whatap-php 서비스 환경 변수 설정
$ sudo vi /etc/init.d/whatap-php
export WHATAP_PHP_EXT_HOME= # PHP Extension 경로(/usr/lib64/php/modules)
export WHATAP_PHP_EXT_SRC= # 와탭 라이브러리 경로 및 파일명
# (/usr/whatap/php/modules/x64/whatap_20100412.so)]
$WHATAP_PHP_EXT_HOME환경변수에 PHP 확장 모듈 경로를 설정하세요.$WHATAP_PHP_EXT_SRC환경변수에 와탭 라이브러리 전체 파일 경로를 설정하세요.
whatap.ini 설정
-
PHP 추가 ini 설정 경로를 확인하세요.
$ sudo php -i | grep '.ini files'
Scan this dir for additional .ini files => /etc/php.d -
whatap.ini를 해당 경로에 복사하세요.
$ sudo cp /usr/whatap/php/whatap.ini /etc/php.d/whtap/ini
Windows
PHP 확장 모듈 및 WhaTap PHP 서비스 수동 설정
PHP 확장 모듈이나 whatap-php 서비스 설치 및 선택 설치(install.sh)가 정상적 설치되지 않은 경우, 수동 설정 방법을 안내합니다.
PHP 환경 정보 확인
PHP 환경 정보를 확인합니다.
REM PHP API 버전 확인
php -i | findstr "PHP API"
REM Thread Safety 확인
php -i | findstr "Thread Safety"
REM Extension 디렉토리 확인
php -i | findstr extension_dir
REM PHP 설정 파일 위치 확인
php --ini
- 예시
PHP API => 20230831
Thread Safety => disabled
extension_dir => C:\PHP\ext
Configuration File (php.ini) Path: C:\Windows
Loaded Configuration File: C:\PHP\php.ini
Scan for additional .ini files in: C:\PHP\conf.d
Additional .ini files parsed: (none)
php_whatap.dll 복사
확인한 extension_dir 경로에 적절한 DLL을 복사합니다.
REM 위에서 확인한 extension_dir 사용
REM 예: extension_dir => C:\PHP\ext
REM Non-ZTS 버전
copy "C:\Program Files\WhaTap\PHP\modules\x64\php_whatap_[API_VERSION].dll" "C:\PHP\ext\php_whatap.dll"
REM ZTS 버전
copy "C:\Program Files\WhaTap\PHP\modules\x64\php_whatap_zts_[API_VERSION].dll" "C:\PHP\ext\php_whatap.dll"
- 예시
REM PHP 8.3 (API 20230831) NTS, extension_dir = C:\PHP\ext
copy "C:\Program Files\WhaTap\PHP\modules\x64\php_whatap_20230831.dll" "C:\PHP\ext\php_whatap.dll"
REM PHP 8.3 (API 20230831) ZTS, extension_dir = C:\Program Files\PHP\v8.3\ext
copy "C:\Program Files\WhaTap\PHP\modules\x64\php_whatap_zts_20230831.dll" "C:\Program Files\PHP\v8.3\ext\php_whatap.dll"
whatap.ini 생성 또는 php.ini 수정
Scan Directory가 있는 경우
php --ini에서 확인한 Scan Directory에 whatap.ini 파일을 생성합니다.
REM 예: Scan for additional .ini files in: C:\PHP\conf.d
notepad "C:\PHP\conf.d\whatap.ini"
- whatap.ini
extension=php_whatap.dll
Scan Directory가 없는 경우
php --ini에서 확인한 php.ini 파일에 직접 추가합니다.
REM 예: Loaded Configuration File: C:\PHP\php.ini
notepad "C:\PHP\php.ini"
- php.ini에 추가할 내용
[whatap]
extension=php_whatap.dll