728x90
PHP 애플리케이션(특히 XML을 다루는 코드)을 실행할 때 이런 치명적 오류를 만나는 경우가 있습니다.
PHP Fatal error: Call to undefined function utf8_encode()
원인
utf8_encode()/utf8_decode() 함수는 PHP의 XML 확장 모듈(php-xml)에 포함되어 있습니다. CentOS 등에서 PHP를 최소 구성으로 설치하면 이 모듈이 빠져 있어, 함수를 호출하는 순간 "정의되지 않은 함수" 오류가 납니다.
해결 — php-xml 설치
CentOS/RHEL 계열에서는 php-xml 패키지를 설치하고 웹서버를 재시작합니다.
sudo yum install php-xml
sudo systemctl restart httpd
데비안/우분투 계열이라면 패키지 이름이 다릅니다.
sudo apt install php-xml
sudo systemctl restart apache2 # 또는 php-fpm 재시작
참고
- 설치 후
php -m | grep xml로 모듈이 로드됐는지 확인할 수 있습니다. - 같은 이유로
simplexml,dom관련 함수가 없다는 오류도 php-xml 설치로 해결되는 경우가 많습니다. - PHP 8.2 이상 주의 —
utf8_encode()/utf8_decode()는 PHP 8.2에서 deprecated, 9.0에서 제거 예정입니다. 신규 코드에서는mb_convert_encoding($str, "UTF-8", "ISO-8859-1")로 대체하는 것이 좋습니다. - FPM을 쓴다면 httpd/apache2가 아니라
php-fpm서비스를 재시작해야 반영됩니다.
CentOS php-xml 설치 - 제타위키
zetawiki.com
728x90
'푸닥거리' 카테고리의 다른 글
| 일학습병행 PBL 운영 (0) | 2022.04.20 |
|---|---|
| PBL(Problem/Project Based Learning)의 이해 (0) | 2022.04.19 |
| ERROR 2059 (HY000) (0) | 2022.04.16 |
| 웹사이트에서 사용된 기술을 식별하는 크롬 확장팩 (0) | 2022.04.15 |
| SQLSTATE[HY000] [2002] Permission denied (0) | 2022.04.15 |
댓글