PHP 모듈을 사용할 때 Apache는 INI 파일 외부에서 PHP 변수를 설정하기 위한 두 가지 메커니즘을 제공합니다.
웹 서버가 여러 도메인을 제공할 때 INI 파일 예제의 구문을 사용하십시오. New Relic에서 이러한 각 도메인을 개별적으로 보려면:
기본 도메인의 경우 전역 INI 파일에서 newrelic.appname = "My Main Domain" 을 설정합니다.
가상 호스트 구성의 일부로 php_value 항목을 추가하여 각 가상 호스트의 값을 재정의합니다.
중요
PHP 설치에 적절한 모듈 이름을 사용했는지 확인하십시오. 아래 예에서 PHP_MODULE 을 설치된 PHP5 모듈의 이름으로 바꿉니다. 이 이름은 사용 중인 Linux 및/또는 PHP 배포판에 따라 다릅니다. 예를 들어, 일반 이름에는 php5_module , mod_php5 , php_module 등이 있습니다. 대문자 사용은 다를 수 있습니다.
Apache 서버의 경우 다음 방법 중 하나로 모듈 이름을 찾을 수 있습니다. 각각은 설치된 모듈 목록을 생성합니다.
명령줄에서 다음을 실행합니다.
bash
$
apachectl -t-D DUMP_MODULES
OR
웹 페이지 내에서 다음을 사용합니다.
<?php
print_r(apache_get_modules());
?>
다음은 도메인을 분리하는 예입니다. 여기서 PHP_MODULE 은 PHP5 모듈의 이름입니다.
<VirtualHost 192.168.42.43>
ServerName www.myvhost1.com
DocumentRoot"/path/to/vhost1/"
...
<IfModule PHP_MODULE>
php_value newrelic.appname "Virtual Host 1"
</IfModule>
</VirtualHost>
<VirtualHost 192.168.123.45>
ServerName www.myvhost2.com
DocumentRoot"/path/to/vhost2/"
...
<IfModule PHP_MODULE>
php_value newrelic.appname "Virtual Host 2"
</IfModule>
</VirtualHost>
위의 예에서 newrelic.appname 은 각 가상 호스트에 대해 다른 값으로 설정됩니다.
PHP-FPM을 사용할 때 INI 파일 외부에서 PHP 변수를 설정하는 두 가지 메커니즘과 NGINX 에 대한 한 가지 특수 기술이 있습니다.
중요
PHP-FPM 사용하면 디렉터리별로 변수를 변경하는 것이 더 어려울 수 있습니다. 각 가상 호스트 또는 고유 애플리케이션마다 하나씩 여러 PHP-FPM 풀을 사용해야 합니다.
pool 해당 풀에 대한 요청만 처리하는 전용 작업자 하위 집합입니다. 전용 작업자 하위 항목이 필요하기 때문에 개별 옵션을 설정하려는 가상 호스트나 애플리케이션이 많은 경우 PHP-FPM은 제대로 확장되지 않습니다.
디렉토리별로 PHP-FPM을 구성하려면:
INI 파일에서 기본 응용 프로그램 이름을 설정합니다.
두 개의 추가 응용 프로그램에 대해 두 개의 풀을 설정합니다.
해당 풀에서 응용 프로그램 이름 설정을 재정의합니다.
각 풀에는 고유한 연결 메커니즘이 있어야 합니다(따라서 웹 서버 구성 파일에서 사용할 풀을 식별할 수 있음). 다음은 php-fpm.conf 의 예입니다.
[app1]
listen=/tmp/pool-app1.sock
php_value[newrelic.appname]="My App 1"
[app2]
listen=/tmp/pool-app2.sock
php_value[newrelic.appname]="My App 2"
[app3]
listen=/tmp/pool-app3.sock
php_flag[newrelic.enabled]=off
풀당 변수 설정의 일반 형식은 문자열 또는 숫자 변수의 경우 php_value[name] = VALUE 이고 부울 값의 경우 php_flag[name] = VALUE 입니다. 문자열 값은 항상 인용 부호 " 로 묶습니다. 부울 값은 on 또는 off 여야 합니다.
구성 파일이 설정되면 웹 서버에 웹 사이트의 다른 부분에 대해 다른 풀을 사용하도록 지시해야 합니다. 자세한 내용은 웹 서버 설명서를 참조하십시오.
.user.ini 파일의 CGI/FastCGI에 대한 INI 파일 예제의 구문을 사용할 수 있습니다. 이것은 Apache의 .htaccess 파일과 유사하지만 PHP-FPM에 고유합니다. PHP가 실행되는 디렉토리에서 .user.ini 파일을 검색합니다. 이 기능에 대한 자세한 내용은 PHP user.ini 파일 문서 에서 확인할 수 있습니다.
웹 페이지의 루트 디렉터리에서 다음 단계를 사용하여 앱 이름을 변경합니다.
.user.ini 파일 만들기
변경하려는 설정 추가 newrelic.appname = "New Appname"
파일을 저장합니다.
기본적으로 .user.ini file 는 5분마다 읽히므로 다시 시작할 필요가 없습니다.
이는 다음 시나리오에서 유용합니다.
서버 구성이 작동하지 않습니다. NGINX/PHP-FPM 설정에서 FastCGI와 PHP 간의 통신이 부족할 수 있으며 fastcgi_param PHP_VALUE newrelic.appname="Appname"
PHP에 도달하지 않습니다.
PHP가 suPHP로 구현된 경우와 같이 .htaccess 이(가) 작동하지 않습니다.
중요
이 섹션은 PHP 5.3.3 이상에만 적용됩니다.
다음은 NGINX 위치를 기반으로 FastCGI 관리자에 값을 전달하는 일반적인 절차를 보여주는 NGINX 구성 파일의 작은 부분입니다.
애플리케이션의 코드에 액세스할 수 없거나 다른 이유로 애플리케이션을 자체 가상 호스트에 격리해야 하는 경우 다음 디렉터리별 설정을 사용하여 구성 파일 설정 을 재정의합니다.
롤업 애플리케이션 이름
모든 가상 호스트 또는 모든 응용 프로그램에서 서버가 어떻게 수행되고 있는지에 대한 전반적인 보기를 원할 경우 한 번에 둘 이상의 응용 프로그램에 보고할 수 있는 것이 편리합니다. 예를 들어, 가상 호스트 특정 애플리케이션과 롤업 애플리케이션에 보고합니다.
이렇게 하려면 각 애플리케이션 이름을 세미콜론으로 구분하여 newrelic.appname 매개변수에 대해 둘 이상의 애플리케이션 이름을 설정합니다. 기본 응용 프로그램 이름이 첫 번째이고 보조 응용 프로그램 이름이 그 다음입니다. 최대 2개의 추가 애플리케이션 이름을 정의할 수 있습니다.