PHP PDO(pdo-mysql) 모듈을 활성화하는 방법(MySQL 커넥터)
PDO는 MySQL 데이터베이스와 상호 작용하는 데 가장 일반적으로 사용되는 커넥터입니다. PDO는 플랫폼에 독립적이고 다양한 데이터베이스 시스템을 지원합니다.
데이터베이스 지원(Database Support)
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
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
'리눅스' 카테고리의 다른 글
ipcalc 명령어 (0) | 2023.11.02 |
---|---|
우분투에서 rsyslog를 사용하여 로그를 원격으로 전송하는 방법 (0) | 2023.11.02 |
iotop 명령어 (0) | 2023.11.01 |
[draft] CentOS 7 컨테이너 내에서 init를 사용하는 방법 (0) | 2023.11.01 |
Elasticsearch 클러스터의 상태를 점검하고 모니터링하는 방법 (0) | 2023.10.31 |