Q&A

mysql을 5.1에서 5.7로 업그레이드 하였습니다. 그런데 phpinfo에서는... api버전이 다르게 나오네요.

 

쉘에서 php -v => 7.0으로 정상적으로 뜹니다.

mysql --version => 5.7.13 으로 정상적으로 뜹니다.

 

다만 phpinfo에서만 아래 그림과 같이

클라이언트 API버전이 업그레이드 전의 버전이 뜨고 있습니다. ㅠㅠ

 

php.ini에서 설정을 찾아봤는데 별 것 없었구요.

[Pdo]
; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off"
; http://php.net/pdo-odbc.connection-pooling
;pdo_odbc.connection_pooling=strict

;pdo_odbc.db2_instance_name

[Pdo_mysql]
; If mysqlnd is used: Number of cache slots for the internal result set cache
; http://php.net/pdo_mysql.cache_size
pdo_mysql.cache_size = 2000

; Default socket name for local MySQL connects.  If empty, uses the built-in
; MySQL defaults.
; http://php.net/pdo_mysql.default-socket
pdo_mysql.default_socket=/var/lib/mysql/mysql.sock

 

하나 걸리는게 있는데 php가 컴파일버전입니다.

컴파일 명령어로는

'./configure' '--with-mysql=/home/mysql' '--with-mysqli=/home/mysql/bin/mysql_config' '--with-pdo-mysql=/home/mysql' '--with-apxs2=/home/apache/bin/apxs' '--with-gd' '--with-curl' '--with-jpeg-dir=/usr' '--with-freetype-dir=/usr' '--with-png-dir=/usr' '--with-xpm-dir=/usr' '--with-zlib' '--with-zlib-dir=/usr' '--with-gdbm' '--with-gettext' '--with-iconv' '--with-openssl' '--with-libxml-dir=/usr/lib' '--with-bz2' '--with-mcrypt' '--enable-zip' '--enable-gd-native-ttf' '--enable-exif' '--enable-sockets' '--enable-soap' '--enable-mbstring=all' '--enable-bcmath' '--enable-ftp' '--enable-opcache' '--enable-fpm' '--with-vpx-dir=/usr/include/vpx

을 사용했는데 /home/mysql 이라는 것은 사실 업그레이드 이전의 mysql 디렉토리이구요.

 

왜 컴파일 명령어에서 mysql부분 설정을 수정하지 않았느냐면,

 

새로 설치한 mysql (yum package버전)은 /usr/bin에 명령어들이 있고,

데이터들은 /var/lib/mysql에 저장되고 있는데

 

해당정보로 컴파일하려고 하면 라이브러리가 없다면서 php 컴파일이 실패하더군요.

그래서 업그레이드 이전의 mysql 설치 디렉토리를 저렇게 지정해놓고 쓰고 있습니다...

 

쓰다보니 왠지 이게 원인일 것 같네요.

'--with-mysql=/home/mysql' '--with-mysqli=/home/mysql/bin/mysql_config' '--with-pdo-mysql=/home/mysql'

여기에 뭘 적어줘야 컴파일 오류가 안날까요.

 

=============== 수정 ================

컴파일과는 관련없는 것 같네요.

정상적으로 새로 설치한 디렉토리로 옵션을 바꾸거나 지우고 재컴파일 했지만,

아파치를 껐따켜도 클라이언트 버전은 바뀌질 않네요...

'./configure' '--with-mysql=/usr/bin/mysql' '--with-pdo-mysql'

 

 

111.PNG

 

222.PNG

 

댓글 3

  • 2016.06.16 07:31 #303773

    MySQL은 세 부분으로 이루어져 있고, 각 부분의 버전이 다를 수 있습니다.

    - mysql-server

    - mysql-client

    - libmysql

     

    PHP는 이 중에서 libmysql의 버전을 따라갈 거예요. 단, mysqlnd 모듈을 사용하면 PHP에서 자체 구현한 MySQL 클라이언트를 사용하게 됩니다.

     

    컴파일하지 않고 O/S에서 기본 제공하는 패키지를 사용하거나 O/S에 맞춰서 나오는 rpm, deb 등을 사용하면 이런 문제가 발생하지 않습니다. 현존하는 거의 모든 리눅스 배포판은 컴파일 작업 없이 최신 버전의 PHP와 MySQL을 설치할 수 있습니다.

  • 2016.06.16 07:44 #303779
    카페24에서 가상서버를 사용하고 있는데요.
    리눅스를 제가 잘 모르지만 사실 yum 정도로 저도 쉽게 생각했습니다.

    그런데 알고보니까
    아파치 / php / mysql 이게 소스설치로 되어있더군요...

    싹다 무시하고
    아파치도 yum으로 설치하고
    php도 yum으로 설치하고
    mysql도 yum으로 설치하고 그러고 쉽지만
    리눅스를 잘 모르기 때문에 그렇게 거대 변경은 좀 막막하게 느껴집니다.

    지금 덕분에 설정이 많이 복잡해져있습니다.

    아파치는 카페24에서 설치해준 그대로 소스설치
    php는 새롭게 컴파일 설치 (5.3은 그대로이고, 7.0으로 새롭게 설치하고 아파치랑 연동)
    mysql는 yum으로 설치 (mysql도 5.1은 그대로있고, 5.7을 새롭게 설치하고 php랑 연동)

    카페24 가상서버는... 왜 소스설치해서 파는걸까요...
    머리 아픕니다.
  • 2016.06.16 07:56 #303796
    거기뿐만 아니라 꽤 많은 국내 업체에서 지멋대로입니다.
    스크립트로 만들어 놓은거 그냥 실행시킵니다.
    centos 7 최소설치로 해주세요 라고 요구해도 그대로 해주는데 거의 못봤습니다.
    해외 업체가 그런면에서는 편합니다.