|
|

작성일 : 12-01-03 15:51
|
php 컴파일시 Cannot find libmysqlclient_r 오류 발생..
|
|
 조회 : 27,641
|
|
|
* 컴파일 순서 : mysql -> apache -> php ------------------------------------------------ mysql과 apache는 올바르게 컴파일되어 서비스가 제공 되었으나 php 컴파일이 올바르게 되지 않았습니다. (중략) configure: error: Cannot find libmysqlclient_r under /usr/local/mysql Note that the MySQL client library is not bundled anymore!
[root@client2 mysql]# pwd /usr/local/mysql/lib/mysql
[root@client2 mysql]# ls libdbug.a libmyisammrg.a libmysqlclient.so.15 libmysys.a libheap.a libmysqlclient.a libmysqlclient.so.15.0.0 libvio.a libmyisam.a libmysqlclient.la libmysqlclient_r.so libmysqlclient.so libmystrings.a
원인) libmysqlclient_r 이 mysql을 컴파일 할 때 생성되지 않아서 생기는 문제입니다. Apache 가 Thread 모드로 설치되어있으나, MySQL 은 Thread Safe 옵션을 주지 않았기 때문입니다. 맨 처음 Apache 를 컴파일 할 때 --with-mpm=worker 옵션으로 MPM 방식을 Worker 로 지정하였습니다. Worker 방식의 경우 Thread 단위로 요청을 처리하지만 mysql 은 Thread 처리를 하도록 컴파일 되지 않았기 때문에 PHP 컴파일을 하면서 오류가 발생한 것입니다. 물론 Apache 컴파일시 prefork (기본값)으로 설치시에는 이런 문제가 발생하지 않습니다.
해결방안) mysql 컴파일 시 다음 옵션을 추가해 봅니다. --enable-thread-safe-client
# ./configure --prefix=/usr/local/mysql --with-charset=euckr --enable-thread-safe-client && make &&make install
[root@client2 mysql]# pwd /usr/local/mysql/lib/mysql
[root@client2 mysql]# ls libdbug.a libmyisammrg.a libmysqlclient_r.a libmysqlclient_r.so.15 libmysqlclient.so.15 libmysys.a libheap.a libmysqlclient.a libmysqlclient_r.la libmysqlclient_r.so.15.0.0 libmysqlclient.so.15.0.0 libvio.a libmyisam.a libmysqlclient.la libmysqlclient_r.so libmysqlclient.so libmystrings.a
mysql library 디렉토리에 libmysqlclient_r 가 올바르게 생성되었습니다.
이제 php를 다시 컴파일 하면 됩니다.
| 엠돌이
2007/08/31 14:52 2007/08/31 14:52
|
|
|
|
|