BOARD

문제 해결

리눅스 환경별 PHP mbstring 확장 모듈 설치 및 설정 가이드

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 7회 작성일 26-10-07 16:57

본문

리눅스 환경별 PHP mbstring 확장 모듈 설치 및 설정 가이드

CentOS 및 Ubuntu 리눅스 환경에서 PHP mbstring 확장 모듈 미설치로 발생하는 phpMyAdmin 오류 및 mb_substr() 함수 치명적 오류를 해결하고 설정하는 방법입니다.

리눅스 환경별 php-mbstring 패키지 설치 방법

그누보드 기능 구동이나 phpMyAdmin 접속 시 "The mbstring extension is missing" 에러가 발생하거나 mb_substr() 함수 관련 치명적 오류가 발생할 경우, 운영 중인 리눅스 배포판의 패키지 매니저를 통해 php-mbstring 모듈을 설치해야 합니다.

1. CentOS 환경

  • 기본 설치 명령어: yum 패키지 매니저를 사용하여 설치합니다.
    yum install php-mbstring
  • 옵션 포함 설치: 필요에 따라 -y 옵션을 붙여 자동으로 설치를 진행할 수 있습니다.
    yum install php-mbstring -y
  • 저장소 지정 설치 (예외 사례): 특정 레포지토리를 이용해야 하는 환경(예: remi-php56 등)에서는 다음과 같이 버전을 지정하거나 레포지토리를 활성화하여 설치할 수 있습니다.
    yum --enablerepo='remi-php56' install php-mbstring
  • Red Hat Linux 8 이상: dnf 패키지 매니저를 사용할 수 있습니다.
    dnf install php-mbstring

2. Ubuntu 환경

  • 기본 설치 명령어: apt 패키지 매니저를 사용하여 설치합니다.
    sudo apt-get install php-mbstring
    또는
    apt install php-mbstring
  • PHP 버전에 따른 설치: 특정 PHP 버전(예: PHP 5.6, 7.1, 7.2, 7.3, 7.4 등)을 명시하여 설치해야 하는 경우 버전별 패키지명을 지정합니다.
    sudo apt-get install php5.6-mbstring
    sudo apt-get install php7.1-mbstring
    sudo apt-get install php7.2-mbstring
    sudo apt-get install php7.3-mbstring
    sudo apt-get install php7.4-mbstring
  • phpMyAdmin 동시 설치 시: phpMyAdmin과 mbstring을 함께 설치할 수 있습니다.
    sudo apt-get install phpmyadmin php-mbstring php-gettext

3. 설치 후 다음 행동

패키지 설치 직후 모듈이 정상적으로 동작하지 않는다면 php.ini 파일에서 extension=php_mbstring 또는 관련 설정 항목 앞의 주석(세미콜론 ;)이 처리되어 있는지 확인하고 제거한 뒤, 아파치(Apache) 웹서버를 재시작해야 합니다.

php.ini 파일에서 mbstring 모듈 설정 변경 방법

패키지를 설치했음에도 mbstring 관련 오류가 지속되거나 모듈이 비활성화되어 있는 경우, php.ini 설정 파일을 수정하여 기능을 활성화할 수 있습니다.

1. php.ini 파일 위치 확인 및 편집

  • 에디터를 사용하여 php.ini 파일을 엽니다.
  • 파일 안에서 extension= 항목을 검색하여 확장자 목록을 확인합니다.
  • 목록에 mbstring 관련 설정이 있는지 확인하고, 만약 해당 줄 앞에 주석 기호인 세미콜론(;)이 붙어 있다면 이는 모듈이 비활성화된 상태임을 의미합니다.

2. 주석 제거 및 활성화

  • 주석 처리된 행에서 맨 앞의 세미콜론(;)을 제거하여 활성화합니다.
  • 예시: ; extension=php_mbstring.dll 또는 ; extension=php_mbstring.extension 형태의 행에서 세미콜론을 지워 extension=php_mbstring 형태로 변경합니다.
  • 만약 파일 내에 mbstring 관련 설정 항목 자체가 존재하지 않는다면, 해당 확장자 설정 구문을 적절한 위치에 직접 추가해 줄 수 있습니다.

3. 웹서버 재시작

  • 설정을 변경한 후에는 아파치(Apache) 등 사용 중인 웹서버를 재시작해야 변경된 설정이 적용됩니다.

phpMyAdmin mbstring 오류 확인 및 해결 방법

phpMyAdmin 접속 시 The mbstring extension is missing. Please check your PHP configuration 에러가 발생하거나, PHP 구동 시 Fatal error: Call to undefined function mb_substr() 치명적 오류가 발생하는 경우 PHP 구성에 문자열 조작을 처리하는 mbstring 확장 모듈이 누락되었거나 비활성화되어 있는지 확인해야 합니다.

1. mbstring 모듈 설치 상태 확인 및 패키지 설치

  • CentOS 환경
    • 패키지 설치 여부 확인 및 설치:
    rpm -qa php-mbstring
    yum install php-mbstring -y
  • Ubuntu 환경
    • 패키지 설치:
    sudo apt-get install php-mbstring
    또는 phpMyAdmin 패키지 설치 시 함께 포함하여 설치할 수도 있습니다.
    sudo apt-get install phpmyadmin php-mbstring php-gettext

2. php.ini 설정 변경

패키지를 설치했음에도 오류가 지속된다면 php.ini 파일에서 모듈이 주석 처리되어 활성화되지 않은 상태인지 확인합니다.

  1. 에디터로 php.ini 파일을 엽니다 (CentOS의 경우 기본 경로 예: /etc/php.ini).
  2. 내용 중 extension= 항목 및 mbstring 관련 설정 행을 찾습니다.
  3. 만약 해당 행 앞에 주석을 의미하는 세미콜론(;)이 있다면 이를 제거하여 활성화합니다.
    • 예시: ;extension=php_mbstring.dll 또는 관련 설정의 ; 제거

3. 웹서버 재시작

설치 및 설정 변경을 마친 후에는 웹서버를 재시작하여 변경 사항을 반영해야 합니다.

  • CentOS (Apache):
    service httpd restart
  • Ubuntu (Apache):
    sudo service apache2 restart

mb_substr 함수 미정의 치명적 오류 원인

mb_substr() 함수 호출 시 PHP Fatal error: Call to undefined function mb_substr() 또는 Fatal error: Uncaught Error: Call to undefined function mb_substr() 치명적 오류가 발생하는 원인은 PHP 멀티바이트 문자열(Multibyte String) 처리를 담당하는 mbstring 확장 모듈이 시스템에 설치되어 있지 않거나, 설치되어 있더라도 php.ini 설정 파일에서 비활성화(주석 처리) 상태이기 때문입니다.

그누보드 등의 PHP 애플리케이션이나 코드 실행 환경에서 한글 등 멀티바이트 문자열을 자르거나 조작하는 mb_substr() 함수를 호출할 때 해당 모듈이 로드되어 있지 않으면 함수를 인식하지 못해 이와 같은 치명적 오류가 발생합니다.

리눅스 환경별 PHP mbstring 확장 모듈 설치 및 설정

그누보드 기능 구동 시 mb_substr() 함수 관련 치명적 오류(Fatal error: Uncaught Error: Call to undefined function mb_substr())가 발생하거나 phpMyAdmin 실행 시 The mbstring extension is missing 에러가 나타나는 경우, PHP mbstring 확장 모듈이 설치되어 있지 않거나 php.ini에서 비활성화되어 있을 때 발생합니다.

1. 환경별 패키지 설치

사용 중인 리눅스 배포판 및 패키지 매니저에 맞춰 php-mbstring 패키지를 설치합니다.

  • CentOS 환경
    • 패키지 설치 명령어:
    yum install php-mbstring
    또는 버전에 따라 yum install php-mbstring -y 명령어를 사용합니다.
    • 참고 사례로 CentOS 6.x 버전 등에서는 yum install php-mbstring을 통해 설치를 진행하며, 패키지 설치 후 rpm -qa php-mbstring 명령어로 정상 설치 여부를 확인할 수 있습니다.
  • Ubuntu 환경
    • 우분투 배포판 및 PHP 버전에 따라 아래 명령어로 설치를 진행합니다.
    sudo apt-get install php5.6-mbstring
    sudo apt-get install php7.1-mbstring
    sudo apt-get install php7.2-mbstring
    sudo apt-get install php7.3-mbstring
    또는 공통 패키지 이름으로 설치할 수 있습니다.
    sudo apt-get install php-mbstring
    또는 apt install php-mbstring 명령어를 사용합니다.

2. php.ini 설정 변경

패키지 설치 후에도 함수 오류가 지속된다면 php.ini 파일에서 모듈 활성화 여부를 확인해야 합니다.

  1. 텍스트 에디터로 php.ini 파일을 엽니다.
  2. 파일 안에서 extension= 구문을 검색하여 mbstring 관련 설정 항목을 찾습니다.
  3. 해당 행 앞에 세미콜론(;)이 붙어 주석 처리되어 있다면, 세미콜론을 제거하여 활성화합니다.
    • 예시: ;extension=php_mbstring.dll 또는 관련 행의 주석 제거
    • 만약 설정 항목이 존재하지 않는다면 적절한 위치에 extension=php_mbstring 또는 모듈 설정을 추가합니다.

3. 웹서버 재시작

패키지 설치 및 php.ini 수정 후에는 변경 사항을 웹서버에 즉시 반영하기 위해 아파치(Apache) 웹서버를 재시작해야 합니다.

  • CentOS 환경:
    service httpd restart
  • Ubuntu 환경:
    sudo service apache2 restart

4. 설치 및 동작 확인

  • CLI 환경에서 아래 명령어를 입력하여 mb_substr() 함수가 정상 호출되는지 점검할 수 있습니다.
    php -r "mb_substr();"
  • 패키지 설치 버전을 확인할 때는 다음 명령어를 사용합니다.
    rpm -qa php-mbstring
  • 웹서버 재시작 후 인터넷 주소창에 서버의 IP/phpmyadmin/ 등을 입력하여 에러가 해소되고 로그인 화면이 정상적으로 출력되는지 확인합니다.

CLI 환경에서 mb_substr 함수와 패키지 설치 상태 점검 방법

명령어 창(CLI)에서 PHP 환경에 mbstring 모듈이 정상적으로 로드되어 있는지 확인하려면 다음 점검 단계를 진행합니다.

1. mb_substr 함수 동작 확인

현재 PHP 환경에서 mb_substr() 함수를 직접 호출해 실행 가능한지 테스트합니다.

php -r "mb_substr();"
  • 참고사례: 모듈이 미설치 또는 미활성화된 환경에서는 PHP Fatal error: Call to undefined function mb_substr() 에러가 발생합니다.

2. 패키지 설치 상태 확인

CentOS 등 RPM 기반 시스템에서 php-mbstring 패키지가 시스템에 설치되어 있는지 조회합니다.

rpm -qa php-mbstring
  • 실행 결과 패키지명이 출력되지 않거나 설치되어 있지 않다면 yum 등의 패키지 매니저를 통해 추가로 설치해야 합니다.

상황별 판단 및 행동 지침

1. phpMyAdmin 접속 시 "The mbstring extension is missing" 에러가 발생하는 경우

  • 내 상황: 웹브라우저로 phpMyAdmin에 접속했을 때 mbstring 모듈 관련 에러 문구가 나타남
  • 선택 기준: 사용 중인 리눅스 배포판 확인 (CentOS 계열은 yum/dnf, Ubuntu 계열은 apt/apt-get)
  • 다음 행동: 패키지 설치 후 웹서버 재시작 (CentOS: service httpd restart, Ubuntu: sudo service apache2 restart)

2. 코드 실행 중 mb_substr() 함수 관련 치명적 오류가 발생하는 경우

  • 내 상황: 그누보드 구동이나 CLI 명령어(php -r "mb_substr();") 실행 시 Call to undefined function 에러 발생
  • 선택 기준: 패키지 설치 여부 확인 (rpm -qa php-mbstring 또는 php -m | grep mbstring)
  • 다음 행동: 모듈이 설치되어 있다면 php.ini 파일에서 extension=php_mbstring 설정의 주석(;) 제거 후 웹서버 재시작

Q. 패키지를 설치하고 php.ini에서 주석도 제거했는데 웹 서비스에서 여전히 에러가 납니다.

  • 예외 상황: CLI 환경과 웹 서비스 환경이 서로 다른 php.ini 파일을 참조할 수 있습니다. php -i 명령어 결과와 웹상의 phpinfo() 출력을 비교하여 실제 로드되는 설정 파일 경로를 확인하세요.

Q. php.ini 파일 내에 mbstring 관련 설정 행 자체가 존재하지 않습니다.

  • 대안: 파일 내 확장자 설정 영역에 extension=php_mbstring 구문을 직접 추가한 후 웹서버를 재시작하십시오.

함께 보면 좋은 글

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.