기본적으로 php에 제공되는 함수들 이외의 라이브러리를 호출할 경우가 종종 생기는데(CURL, GD 등등), php.ini 에서 미리 설정해주면 편하다. 구글링 결과 php.ini 에서 dll 이 써있는 줄 맨 앞에 주석처리(;) 를 없애주면 된다고 한다.
그런데 ;를 제거했음에도 불구하고 Call to undefined function 라고 뜨면서 여전히 extension 을 가져오지 못하는 것이다.
꽤 긴 삽질-_- 후 알아낸 원인은, extension 의 dir 설정이 제대로 되지 않았다는 것이다.
두 가지 방법이 있는데, 첫째로 각 dll마다 개별설정을 해주는 것. 예를 들어 curl을 보면..
;extension=php_curl.dll
이 상태를
extension=php_curl.dll
로 바꾸는 게 끝이 아니라
extension=ext/php_curl.dll
이렇게 extension의 디렉토리를 명시해줘야 알아먹는다는 것이다.(물론 설정 저장 후 서버 재시작 필수)
하지만 이렇게 하려면 매번 번거로우니 두 번째 방법을 추천.
php.ini에서 extension_dir 항목을 주석처리에서 해제하면 된다(extension_dir = "ext" 요렇게). 이렇게 하면, 매번 ext/를 써줘야 하는 번거로움에서 해방!