Interface(PHP) 개요
PHP란?
특히 웹 개발에 적합한 널리 사용되는 범용 스크립팅 언어입니다. 빠르고 유연하며 실용적인 PHP는 블로그부터 세계에서 가장 인기 있는 웹사이트까지 모든 것을 지원합니다.
– PHP 공식 문서 –
설치 요구사항
선행 라이브러리 및 패키지
선행 라이브러리 / 패키지 | OS | 버전 | 비고 |
---|---|---|---|
gcc | Linux | 4.8.5 | c언어 컴파일러 |
make | Linux | 3.82 | 빌드 도구 |
gcc-c++ | Linux | 4.8.5 | C++ 컴파일러 |
pcre-devel | Linux | 8.32 | Perl Compatible Regular Expressions 개발 도구 제공 |
expat-devel | Linux | 2.1.0 | XML parser인 Expat 라이브러리 개발 도구 제공 |
sqlite-devel | Linux | 3.7.17 | SQLite 데이터베이스 라이브러리 개발 도구 제공 |
libxml2-devel | Linux | 2.9.1 | xml 문서 처리를 위한 개발 도구 제공 |
***** 선행 패키지는 사용 시스템 기준 최신버전 사용가능합니다.***
***** 기입한 버전은 CentOS 7 기준 최신버전입니다.***
필수 라이브러리 및 패키지
필수 라이브러리 / 패키지 | OS | 버전 | 비고 |
---|---|---|---|
apache | Window/Linux | 2.4.x(2.4.57 latest) | |
apr | Linux | 1.7.x(1.7.4 latest) | Apache Portable Runtime |
apr-util | Linux | 1.6.x(1.6.3 latest) | Apache Portable Runtime Util |
pcre | Linux | 8.45(latest) | Perl Compatible Regular Expressions |
PHP | Window/Linux | 8.x(8.2.7 latest), 7.x |
** PostgreSQL 14.2와 호환되는 버전입니다.
시놉시스
CRUD 위주로 작성된 시놉시스로, 시놉시스 내에 들어간 쿼리나 테이블, 컬럼명은 예시 입니다.
Connect 시놉시스
- apache와의 연동 후에 php에 접속정보를 입력하여 postgresql에 접속합니다.
- pg_connect() 메서드를 통해 접속정보를 입력받아 직접 DB에 접속합니다.
- 작업 후 pg_close() 메서드를 이용해 연결을 닫습니다.
- PDO(PHP Data Object) 인터페이스를 통해 접속정보를 입력받아 DB에 접속할 수도 있습니다.
PHP Connect 시놉시스
connect_db = pg_connect(“$host $port $dbname $password”)
…pg_close.($connect_db);
PDO Connect 시놉시스
$conn = new PDO(“pgsql:host=$host;dbname=$database;user=$username;password=$password”);
SELECT 시놉시스
PHP SELECT 시놉시스
$query = “SELECT * FROM test”;
$result = pg_query($conn, $query);if ($result) { while ($row = pg_fetch_assoc($result)) { $col1 = $row['col1']; $col2 = $row['col2']; $col3 = $row['col3'];
…
PDO SELECT 시놉시스
$query = “SELECT * FROM test”;
$stmt = $conn->query($query);if ($stmt) { while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { $col1 = $row['col1']; $col2 = $row['col2']; $col3 = $row['col3'];
…
readData($conn);
…
INSERT 시놉시스
PHP INSERT 시놉시스
function createData($conn, $col1Value, $col2Value, $col3Value) {
$query = “INSERT INTO test (col1, col2, col3) VALUES (‘$col1Value’, ‘$col2Value’, ‘$col3Value’)”;
$result = pg_query($conn, $query);
…
}…
createData($conn, ‘value1’, ‘value2’, ‘value3’);
…
PDO INSERT 시놉시스
function createData($conn, $col1Value, $col2Value, $col3Value)
{
$query = “INSERT INTO test (col1, col2, col3) VALUES (?, ?, ?)”;
$stmt = $conn->prepare($query);
$stmt->execute([$col1Value, $col2Value, $col3Value]);…
createData($conn, ‘value1’, ‘value2’, ‘value3’);
…
UPDATE 시놉시스
PHP UPDATE 시놉시스
function updateData($conn, $col1Value, $updatedCol2Value) {
$query = “UPDATE test SET col2 = ‘$updatedCol2Value’ WHERE col1 = ‘$col1Value'”;
$result = pg_query($conn, $query);
…
}…
updateData($conn, ‘value1’, ‘updatedValue’);
…
PDO UPDATE 시놉시스
function updateData($conn, $col1Value, $updatedCol2Value)
{
$query = “UPDATE test SET col2 = ? WHERE col1 = ?”;
$stmt = $conn->prepare($query);
$stmt->execute([$updatedCol2Value, $col1Value]);…
updateData($conn, ‘value1’, ‘updatedValue’);
…
DELETE 시놉시스
PHP DELETE 시놉시스
function deleteData($conn, $col1Value) {
$query = "DELETE FROM test WHERE col1 = '$col1Value'"; $result = pg_query($conn, $query);
…
}…
deleteData($conn, ‘value1’);
…
PDO DELETE 시놉시스
function deleteData($conn, $col1Value)
{
$query = “DELETE FROM test WHERE col1 = ?”;
$stmt = $conn->prepare($query);
$stmt->execute([$col1Value]);…
deleteData($conn, ‘value1’);
…
PHP 활용 실습
Windows 활용 실습
- apache를 다운로드 합니다.
URL : **https://www.apachelounge.com/download/**
Apache win64 버전 다운로드 후, 압축해제하여 Apache24 폴더만 C드라이브로 이동합니다. - Apache24conf에 들어가서 http.conf 파일 내용을 수정합니다.

- apache를 설치합니다.
cmd 창을 관리자 권한으로 실행하여 c:Apache24bin 폴더 이동 후 다음 명령어를 수행합니다.
httpd.ext -k install

** 다음 오류 발생시 httpd.conf에서 해당 내용을 주석 해제 하고 수정 후에 재기동합니다.
httpd.exe -k stop
httpd.exe -k start

- apache 기동을 확인합니다.
브라우저 창에 http://localhost/ 입력 후 It works! 문구를 확인합니다

여기까지가 apache 설치과정이었습니다. 계속해서 php를 다운로드하고, apache와 연동하는 과정을 같이 진행해보도록 하겠습니다!
- php를 다운로드합니다.
URL : **https://windows.php.net/downloads/releases/archives/**
php-7.4.30-Win32-vc15-x64.zip 파일을 다운받고 압축해제하여 php7로 디렉토리 이름을 바꿉니다. 그 후 C: 위치로 이동합니다.
- php.ini-production 파일 내용을 수정하여 php.ini로 저장합니다.
extension_dir 주석 해제 후 다음과 같이 수정 합니다.
extension_dir = “C:/php7/ext”아래 내용 주석 해제 후 저장합니다.
extension=pdo_pgsql
extension=pgsql

- C:Apache24confhttpd.conf 파일 내용을 다음과 같이 수정합니다.
DirectoryIndex index.php index.html

- 파일 마지막 줄 아래에 다음 내용을 추가합니다.
PHPIniDir “C:/php7“
LoadModule php7_module “C:/php7/php7apache2_4.dll”
AddType application/x-httpd-php .html .php
AddHandler application/x-httpd-php .php
LoadFile “C:/php7/libpq.dll“

- apache를 재기동 합니다.
httpd.exe -k stop
httpd.exe -k start

- apache와 PHP 연동 테스트를 진행합니다.
C:Apache24htdocs 폴더에 index.php 파일을 생성하고 다음 내용을 입력합니다.
<?php
phpinfo();
?>

** 추가로, 시놉시스를 바탕으로 만든 예제파일을 통해 페이지를 확인합니다.
C:Apache24htdocs 폴더에 pgsql.php 파일을 업로드하고
http://localhost/pgsql.php
페이지에서 수행 결과 확인

Linux 활용 실습
- 필수 패키지 설치 후 apache를 먼저 설치합니다.
#yum install gcc make gcc-c++ pcre-devel expat-devel sqlite-devel libxml2-devel
#su – opensql
$ mkdir ./interface/php
$ cd ./interface/php
$ wget https://archive.apache.org/dist/apr/apr-1.7.4.tar.gz
$ tar –xzvf apr-1.7.4.tar.gz
$ cd apr-1.7.4
$ ./configure –prefix=/usr/local/apr-1.7.4
$ cp libtool libtoolT
$ ./configure –prefix=/usr/local/apr-1.7.4
$ make
$ sudo make install
- apache portable runtime utility를 설치합니다.
$ cd /opensql/intefrace/php
$ wget https://archive.apache.org/dist/apr/apr-util-1.6.3.tar.gz
$ tar -xzvf apr-util-1.6.3.tar.gz
$ cd apr-util-1.6.3
$ ./configure –prefix=/usr/local/apr-util-1.6.3 –with-apr=/usr/local/apr-1.7.4
$ make
$ sudo make install
- perl compatible regular expressions를 설치합니다.
$ cd /opensql/interface/php
$ wget https://osdn.net/projects/sfnet_pcre/downloads/pcre/8.45/pcre-8.45.tar.gz
$ tar -xzvf pcre-8.45.tar.gz
$ cd pcre-8.45
$ ./configure –prefix=/usr/local/pcre-8.45
$ make
$ sudo make install
- apache 2.4.57를 설치합니다.
$ cd /opensql/interface/php
$ wget https://archive.apache.org/dist/httpd/httpd-2.4.57.tar.gz
$ tar -xzvf httpd-2.4.57.tar.gz
$ cd httpd-2.4.54/
$ ./configure –prefix=/usr/local/httpd-2.4.57 –with-apr=/usr/local/apr-1.7.4 –with-apr-util=/usr/local/apr-util-1.6.3 –with-pcre=/usr/local/pcre-8.45 –enable-mpms-shared=all –enable-so
$ vi build/config_vars.mk
//AP_LIBS = $(MOD_SOP_LDADD) … 맨 끝에 -lexpat 추가 후 저장
$ make -j 4
$ sudo make install
여기까지가 linux의 apache 설치과정이었습니다. 마찬가지로 계속해서 php를 다운로드하고, apache와 연동하는 과정을 같이 진행해보도록 하겠습니다!
- php를 설치합니다.
$ cd /opensql/interface/php//https://www.php.net/releases/index.php에서 8.2.7.tar.gz 다운받아 업로드
$ tar -xzvf php-8.2.7.tar.gz
$ cd php-8.2.7
$ ./configure –with-apxs2=/usr/local/httpd-2.4.54/bin/apxs –with-pgsql=/usr/pgsql-14/
$ make
$ sudo make install
- 각 모듈이 설치된 /usr/local 디렉토리를 확인합니다.

- apache와의 연동 설정을 합니다.
$ sudo vi /usr/local/httpd-2.4.57/conf/httpd.conf
//mpm_event_module 주석처리, mpm_prefork_module 주석 해제LoadModule mpm_event_module modules/mod_mpm_event.so
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
//php모듈 로딩 추가, 이미 설정되어 있으면 경로 맞는지 확인
LoadModule php_module modules/libphp.so//메인 페이지로 읽어올 수 있도록 index.php 추가
DirectoryIndex index.html index.php//php 타입추가. AddType 검색 후 다음 내용 추가
AddType application/x-httpd-php .php .html .htm .inc
AddType application/x-httpd-php-source .phps//ServerName 주석 해제 및 변경
ServerName IP주소:80//수정 후 저장 및 vi 종료
- apache를 기동합니다.
$ sudo /usr/local/httpd-2.4.57/bin/apachectl start
- apache와 PHP 연동 테스트를 진행합니다.
$ cd /usr/local/httpd-2.4.57/htdocs
$ sudo vi index.php//저장 후 접속확인 합니다.
http://ip/index.php

** 추가로, 시놉시스를 바탕으로 만든 예제파일을 통해 페이지를 확인합니다.
$ cd /usr/local/httpd-2.4.57/htdocs
//파일 업로드//업로드 후 실행 결과를 확인 합니다.
http://ip/pgsql.php

지금까지 PostgreSQL의 (Interface) PHP에 관해 알아보았습니다
PostgreSQL을 쉽게 사용할 수 있도록 유용한 팁을 가지고 돌아오겠습니다.
다음 컨텐츠도 기대해주세요! (컨텐츠는 격주 업데이트 됩니다.)