본문 바로가기

리눅스

PHP PDO(pdo-mysql) 모듈을 활성화하는 방법

728x90

PHP PDO(pdo-mysql) 모듈을 활성화하는 방법(MySQL 커넥터)

PDO는 MySQL 데이터베이스와 상호 작용하는 데 가장 일반적으로 사용되는 커넥터입니다. PDO는 플랫폼에 독립적이고 다양한 데이터베이스 시스템을 지원합니다.

데이터베이스 지원(Database Support)

출처-https://cdn.tutsplus.com/net/uploads/legacy/2013_phpvsmysqli/tutorial_3.png

PDO 이점

  • 플랫폼에 독립적 : PDO는 Windows, Linux, macOS 등 다양한 플랫폼에서 작동합니다.
  • 다양한 데이터베이스 시스템 지원 : PDO는 MySQL, PostgreSQL, Oracle 등 다양한 데이터베이스 시스템을 지원합니다.
  • 단순하고 사용하기 쉬움 : PDO는 사용하기 쉽고 배우기 쉽습니다.

1. 필수 패키지 설치

sudo yum install epel-release
sudo yum install -y gcc gcc-c++ autoconf automake libtool re2c flex make cmake bison libxml2-devel

2. PHP 소스 코드 다운로드

PHP 7.3.33 버전의 소스 코드를 다운로드합니다. PHP 공식 웹사이트에서 소스 코드를 찾아 다운로드합니다.

wget https://www.php.net/distributions/php-7.3.33.tar.gz --no-check-certificate
tar -xfz php-7.3.33.tar.gz
cd php-7.3.33

3. PHP 컴파일 옵션 설정

--with-pdo-mysql 옵션을 사용하여 PDO MySQL 모듈을 활성화하도록 PHP 컴파일 옵션을 설정합니다.

./configure --with-pdo-mysql
더보기

---

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/apache2/conf --enable-sockets --with-mysqli --enable-opcache=no --with-zlib --enable-ftp --enable-debug --enable-shmop --with-gd --with-freetype-dir --with-zlib --with-iconv --with-jpeg-dir=/usr/lib --with-libxml-dir --without-pear --enable-mbstring --with-curl --with-mcrypt=/usr/local/src/libmcrypt-2.5.8 --with-openssl --with-imap-ssl --enable-sigchild --with-libdir=/usr/lib64 --with-pdo-mysql
  • configure 옵션
     
    • --prefix=/usr/local/php : PHP를 설치할 경로를 지정합니다.
    • --with-apxs2=/usr/local/apache2/bin/apxs : Apache 웹 서버와 연동하기 위한 apxs 실행 파일의 경로를 지정합니다.
    • --with-config-file-path=/usr/local/apache2/conf : PHP 설정 파일(php.ini)의 경로를 지정합니다.
    • --enable-sockets : 소켓 함수 지원을 활성화합니다.
    • --with-mysqli : MySQLi 확장 모듈을 활성화합니다.
    • --enable-opcache=no : OPcache를 비활성화합니다.
    • --with-zlib : Zlib 압축 라이브러리를 사용하도록 활성화합니다.
    • --enable-ftp : FTP 지원을 활성화합니다.
    • --enable-debug : 디버깅 지원을 활성화합니다.
    • --enable-shmop : 공유 메모리 함수 지원을 활성화합니다.
    • --with-gd : GD 그래픽 라이브러리를 사용하도록 활성화합니다.
    • --with-freetype-dir : FreeType 라이브러리 경로를 지정합니다.
    • --with-iconv : Iconv 확장 모듈을 활성화합니다.
    • --with-jpeg-dir=/usr/lib : JPEG 라이브러리 경로를 지정합니다.
    • --with-libxml-dir : LibXML 라이브러리 경로를 지정합니다.
    • --without-pear : PEAR 라이브러리를 비활성화합니다.
    • --enable-mbstring : 멀티바이트 문자열 지원을 활성화합니다.
    • --with-curl : cURL 확장 모듈을 활성화합니다.
    • --with-mcrypt=/usr/local/src/libmcrypt-2.5.8 : Mcrypt 확장 모듈을 사용하도록 활성화하고 Mcrypt 라이브러리 경로를 지정합니다.
    • --with-openssl : OpenSSL 확장 모듈을 활성화합니다.
    • --with-imap-ssl : IMAP 확장 모듈에서 SSL을 사용하도록 활성화합니다.
    • --enable-sigchild : SIGCHLD 신호를 지원합니다.
    • --with-libdir=/usr/lib64 : 라이브러리 디렉토리 경로를 지정합니다.
    • --with-pdo-mysql : PDO MySQL 확장 모듈을 활성화합니다.

---

4. PHP 컴파일 및 설치

PHP를 다시 컴파일하고 설치합니다.

make -j10
sudo make -j10 install
728x90

5. PHP 설정 파일 업데이트

PHP 설정 파일 (php.ini)을 열고 PDO MySQL 모듈이 로드되도록 활성화합니다. 파일의 위치는 PHP 설치에 따라 다를 수 있습니다.

extension=pdo_mysql.so

또는 php.ini 파일에서 ;extension=pdo_mysql와 같이 주석 처리를 제거할 수 있습니다.

6. PHP를 다시 시작

변경 사항을 적용하기 위해 PHP를 다시 시작합니다.

/usr/local/apache2/bin/apachectl start

 

  • PHP 버전 정보 확인
/usr/local/php/bin/php --version
$ /usr/local/php/bin/php --version
PHP 7.3.33 (cli) (built: Nov  1 2023 12:52:10) ( ZTS DEBUG )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.33, Copyright (c) 1998-2018 Zend Technologies
  • PDO MySQL(pdo-mysql) 확장 정보 확인
/usr/local/php/bin/php --ri pdo_mysql
$ /usr/local/php/bin/php --ri pdo_mysql

pdo_mysql

PDO Driver for MySQL => enabled
Client API version => mysqlnd 5.0.12-dev - 20150407 - $Id: 7cc7cc96e675f6d72e5cf0f267f48e167c2abb23 $

Directive => Local Value => Master Value
pdo_mysql.default_socket => /tmp/mysql.sock => /tmp/mysql.sock
pdo_mysql.debug => no value => no value

 

이제 CentOS 7에서 PHP 7.3.33에 PDO(pdo-mysql) 모듈이 활성화되었을 것입니다. 이 모듈을 사용하여 PHP에서 MySQL 데이터베이스와 상호 작용할 수 있게 됩니다.

 

참고URL

- W3Schools : PHP Connect to MySQL

- Written by Haseeb A. Basil : MySQL vs MySQLi vs PDO Performance Benchmark, Difference and Security Comparison

- Envato Tuts+ : PDO vs. MySQLi: Which Should You Use?

- Sysadmins of the North : How to use SSL in PHP Data Objects (PDO) mysql

 

728x90