PHP 매뉴얼
이전 | 4. 장. 실행 환경 설정 | 다음

# 환경 설정을 변경하는 방법

## `PHP`를 아파치 모듈로 실행

PHP를 아파치 모듈로 사용할 때, 아파치 환경 설정 파일(예. `httpd.conf`)과 `.htaccess` 파일("AllowOverride Options"이나 "AllowOverride All" 권한이 필요합니다)을 이용해서 환경 설정을 변경할 수 있습니다.

PHP 4.0에서는, 아파치 환경 설정 파일에서 PHP 설정을 변경할 수 있게 하는 몇가지 아파치 설정이 존재합니다. 가능한 설정 목록은 ini_set() 문서에 있는 테이블의 `PHP_INI_ALL`, `PHP_INI_PERDIR`, `PHP_INI_SYSTEM`을 참고하십시오.

> 참고: PHP 3.0에서는, `php3.ini` 이름에 각각 대응하는 "php3_"를 붙여서 사용할 수 있는 아파치 설정이 존재합니다.

php_value `이름` `값`

  특정한 설정값을 설정합니다. `PHP_INI_ALL`과 `PHP_INI_PERDIR`형 지시자에만 사용할 수 있습니다. 기존 설정값을 제거하기 위해서는 값을 `none`로 설정하십시오.

  > 참고: boolean 값을 설정하기 위해서 `php_value`를 사용하지 마십시오. 대신, `php_flag`(아래를 참고)를 사용해야만 합니다.

php_flag `이름` `on|off`

  Boolean 환경 설정에 사용합니다. `PHP_INI_ALL`과 `PHP_INI_PERDIR`형 지시자에만 사용할 수 있습니다.

php_admin_value `이름` `값`

  특정한 설정값을 설정합니다. `.htaccess` 파일에서는 사용할 수 없습니다. php_admin_value의 설정값은 `.htaccess`나 버추얼 호스트 설정으로 바꿀 수 없습니다. 기존 설정값을 제거하기 위해서는 값을 `none`로 설정하십시오.

php_admin_flag `이름` `on|off`

  Boolean 환경 설정에 사용합니다. php_admin_flag의 설정값은 `.htaccess`나 버추얼 호스트 설정으로 바꿀 수 없습니다. 기존 설정값을 제거하기 위해서는 값을 `none`로 설정하십시오.

예 4-2. 아파치 환경 설정 예제

    <IfModule mod_php4.c>
      php_value include_path ".:/usr/local/lib/php"
      php_admin_flag safe_mode on
    </IfModule>
    <IfModule mod_php3.c>
      php3_include_path ".:/usr/local/lib/php"
      php3_safe_mode on
    </IfModule>

경고
PHP 상수는 PHP 외부에서는 존재하지 않습니다. 예를 들면, `httpd.conf`에서는 error_reporting을 설정하기 위해서 `E_ALL`나 `E_NOTICE` 등의 PHP 상수를 사용할 수 없으며, 아무런 의미를 가지지 않기에 0으로 처리합니다. 대신 비트마스크 결합값을 사용하십시오. `php.ini`에서는 상수를 사용할 수 있습니다.

## 윈도우 레지스트리를 통해 `PHP` 설정 변경하기

윈도우에서 PHP를 실행할 때, 윈도우 레지스트리를 통해서 디렉토리 단위로 설정값을 변경할 수 있습니다. 레지스트리 키 `HKLM\SOFTWARE\PHP\Per Directory Values`에 기록된 설정값은, 경로명이 서브키로 연결됩니다. 예를 들면, 디렉토리 `c:\inetpub\wwwroot`를 위한 설정값은 `HKLM\SOFTWARE\PHP\Per Directory Values\c\inetpub\wwwroot`에 기록합니다. 디렉토리 단위의 설정은 그 디렉토리와 그 하위 디렉토리에서 실행되는 모든 스크립트에 영향을 줍니다. 키가 가지는 이름은 PHP 설정 지시어이고, 문자열 값을 가집니다. 값에 지정한 PHP 상수는 처리되지 않습니다.

## `PHP`의 다른 인터페이스

`PHP`의 인터페이스에 상관 없이, ini_set()를 이용하여 스크립트 실행시의 몇가지 값을 변경할 수 있습니다. 아래의 표는 설정값이 어느 레벨에서 변경/지정될 수 있는지 보여줍니다.

표 4-1. PHP_INI_* 상수 정의

상수 | 값 | 의미
--- | --- | ---
PHP_INI_USER | 1 | 유저 스크립트에서 설정 가능한 엔트리
PHP_INI_PERDIR | 2 | `php.ini`, `.htaccess`, `httpd.conf`에서 설정 가능한 엔트리
PHP_INI_SYSTEM | 4 | `php.ini`나 `httpd.conf`에서 설정 가능한 엔트리
PHP_INI_ALL | 7 | 어디에서라도 설정 가능한 엔트리

환경 설정의 설정값은 phpinfo() 출력에서 확인할 수 있습니다. ini_get()나 get_cfg_var()을 이용하여 개별 설정값에 접근할 수도 있습니다.

이전 | 처음으로 | 다음
실행 환경 설정 | 위로 | 기타 환경 설정 지시자