IT. POST LIST

POST ALL LABEL

Fatal error: Class ‘mysqli’ not found in….(php 오류)

By 때찌때찌맴매 - 12월 04, 2013

Fatal error: Class ‘mysqli’ not found in….(php 오류)

* [ php 재컴파일 ]
오류시 서버의 phpinfo 확인 후 mysqli 이 없으면

--with-mysqli=/usr/local/mysql/bin/mysql_config 옵션 추가 후 재컴파일
* [ phpize 를 이용한 모듈 컴파일 ] 

PHP 설치시 –with-mysqli 옵션을 걸지 않고 설치했을때 mysqli() 함수를 쓰기 위해 php extensions 로 추가하는 방법에 설명합니다.

MySQLi 확장은 추가적인 추적 (addtional tracing)와 디버깅, 로드 밸런싱, 복제기능을 지원합니다.

확장의 장점으로는,

1. 놀라운 속도 : ext/mysql 과 비교하여 특정 조건에서는 40 가량 빠릅니다.
2. 안전한 보안 : mysql RDBMS 의 이전 버전에서 네트워크로부터 약간 패스워드 해쉬를 뽑아내기 위한 공격의                가능성이 존재했고, 그 다음에 사용자 패스워드를 재생성했었습니다.  새로운 인증 절차는 보다               강하고 SSH 같은 안전한 인증 절차입니다.

출처 : Google 사이트


1. php 가 설치된 디렉토리로 이동합니다.

# cd /usr/local/src/APM_Setup/php-5.3.21/ext/mysqli

2. phpize 를 실행합니다.  권한이 없다면 permission 에러가 나므로 root 권한을 얻어 실행해줍니다.

# /usr/local/php/bin/phpize

다음과 같이 출력되야 정상

Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519

3. 옵션 값을 주어 설치를 진행합니다. 

# ./configure --with-php-config=/usr/local/php/bin/php-config --with-mysqli=/usr/local/mysql/bin/mysql_config

4. PHP 내에 모듈을 복사해둘 디렉토리를 만들어 둡니다.

# mkdir /usr/local/php/modules

5. mysqli 모듈을 복사합니다.

# cp modules/* /usr/local/php/modules/

복사되는 파일
mysqli.la
mysqli.so

6. php.ini 파일에서 extension directory의 경로와 모듈명을 추가해줍니다.

# vi /usr/local/apache/conf/php.ini   (php.ini 위치는 각자 설치 옵션에 따라 다를 수 있습니다.)

; Directory in which the loadable extensions (modules) reside.
extension_dir = /usr/local/php/modules
extension=mysqli.so

7. 아파치를 재시작합니다.

# /etc/init.d/apachectl restart

8. phpinfo 에서 ctrl + f 를 눌러 mysqli 를 확인할 수 있습니다.





  • Share:

You Might Also Like

0 개의 댓글