Story of CowHacker

PHP와 PostgreSQL 연동 본문

공부/Web

PHP와 PostgreSQL 연동

Cow_Hacker 2021. 1. 5. 12:47
728x90

PHP와 PostgreSQL을 연동시키는 법을 알아보겠다.

 

* 준비 환경 * 

 

1. 우분투 설치 완료 상태

cowhacker.tistory.com/81?category=884404

 

Ubuntu 20.04.1 LTS [ 설치 ]

이번 글은 우분투 설치 과정에 대해 포스팅하려고 한다. 먼저 구글에 "우분투" 라고 검색한 후 젤 첫 번째 있는 우분투 사이트에 접속한다. 다운로드 버튼을 눌러 우분투 ios 파일을 설치한다. 우

cowhacker.tistory.com

2. Apache2 설치 완료 상태

cowhacker.tistory.com/86?category=884404

 

우분투에 Apache2 설치하기

우분투에 Apache2를 설치해 보겠다. 내 우분투의 버전이다. 아파치가 설치돼있는지 확인해본다. 위 사진은 없는 걸로 보인다. apache2 -v 설치 방법은 매우 간단하다. 명령어 한 줄을 쳐주면 된다. sudo

cowhacker.tistory.com

3. PostgreSQL 설치 완료 상태

cowhacker.tistory.com/91?category=884404

 

우분투에서 PostgreSQL설치 및 사용법

==============================설치법============================== 우분투에 관계형 데이터베이스 중 PostgreSQL 설치하는 법이다. sudo apt-get install postgresql postgresql-contrib 위 명령어를 통해 Po..

cowhacker.tistory.com

4. PHP 설치 완료 상태

cowhacker.tistory.com/94?category=884404

 

우분투에 PHP 설치하기

cowhacker.tistory.com/86 우분투에 Apache2 설치하기 우분투에 Apache2를 설치해 보겠다. 내 우분투의 버전이다. 아파치가 설치돼있는지 확인해본다. 위 사진은 없는 걸로 보인다. apache2 -v 설치 방법은 매

cowhacker.tistory.com

 

 

 

 

 

 

 

먼저 위와 같은 준비 환경을 만들어 줬다는 전제를 깔고 알아보겠다.

 

 

php -r "pg_connect();"

 

 

일단 지금 연동이 안된 상태에서 위 명령어를 입력하면 error가 뜨는 걸 볼 수 있다. 아직 연동이 안됐다는 뜻이다.

 

 

 

 

 

sudo apt-get install php-pgsql

 

 

연동을 해주기 위해서 php-pgsql을 위 명령어를 통해 설치한다.

 

 

 

 

 

php -r "pg_connect();"

php-pgsql을 설치 완료 후 다시 위 명령어를 입력하면 이제 pg_connect(); 명령어가 먹히는 걸 볼 수 있다.

 

 

 

 

 

php정보를 보여주는 페이지를 확인해 보면 pgsql이 추가된 걸 확인할 수 있다.

 

 

 

**  만약 보이지 않을 시 **

service apache2 restart

위 명령어를 통해 apache2를 재시작해준다.

 

 

 

이제 php를 사용해서 연동이 되는지 확인해보겠다.

 

 

 

 

 

sudo -i -u postgres

위 명령어로 postgres 사용자로 로그인해준다.

 

 

 

 

 

createuser -d -P namja

사용자를 만드는 명령어다. 입력해 준 뒤 사용자를 생성한다.

 

 

** 옵션 설명 **

-d : 사용자를 생성할 시 database를 생성할 수 있게 한다.

-P : 사용자 생성 시 사용자의 비밀번호를 설정하게 한다.

 

 

Postgresql에서 \du 명령어를 통해 사용자 목록에 네모 박스처럼 Create DB라고 적용이 돼있어야 한다.

 

 

 

 

 

 

 

 

 

다음 사진에 나온 경로로 이동한다.

그리고 test.php 파일을 하나 만든다.

 

 

 

 

 

 

<?php
  echo "DB연동 결과는?!<BR>";
$pgsql = pg_Connect("host=127.0.0.1 dbname=namja user=namja password=1") or die('접속실패');

  $row = pg_fetch_array($pgsql);
  echo "접속성공" .$row;
?>

 

 

파일 안에 위 내용을 써준다.

 

** 내용 해석 **

세 번째 줄에서

1. host=127.0.0.1은 postgresql의 기본 주소이다.

2. dbname = namja는 아까 위에서 사용자를 만들 시 -d 옵션을 사용해서 만든 것이다.

3. user = namja 이것 또한 2번과 같다.

4. password = 1 이것 또한 2번과 같이 -P 옵션을 사용하여 만든 것이다.

 

 

 

localhost:Apache2 포트번호/test.php

위 내용을 URL에 입력하면 연동이 잘 된 걸 확인할 수 있다.

 

 

** 접속 성공 안될 시 **

 

위 방법대로 해도 접속 성공이 되지 않는다면 자신이 postgres 계정으로 만든 유저 이름 ( EX: test ) 이 실제 /etc/passwd파일에도 계정이 있어야 한다.

 

sudo useradd [ postres 사용자 이름 ]

위 명령어로 계정을 추가한 뒤

 

 

sudo -i -u postgres

위 명령어로 posetgres 계정으로 로그인 후

 

createdb [ dbname ]

위 명령어로 데이터베이스까지 만들어 주면 접속 성공이 될 거다.

 

 

 

 

 

 

 

이제 한번 일부러 틀린 값을 넣어 볼 것이다.

 

 

 

 

 

host 주소를 틀린 주소로 변경해봤다.

 

 

 

 

역시 접속 실패가 뜨면서 연동이 안된다고 뜬다.

 

 

 

 

 

여기서 host 주소는 기본 값이라고 했는데 한번 확인을 해보겠다.

 

 

 

 

 

위 경로를 간 다음 postgresql환경 설정 파일을 열어본다.

 

 

 

 

port를 검색해보면 지금 5432라고 기본 값이 돼있다.

 

 

 

 

 

netstat -ntlp

위 명령어를 통해 5432 포트의 주소를 보면 127.0.0.1 이란 걸 알 수 있다.

728x90

'공부 > Web' 카테고리의 다른 글

부트스트랩 CDN 테마  (0) 2021.01.13
부트스트랩 CDN 사용법  (0) 2021.01.13
PostgreSQL과 PHP의 연동을 통해 회원 가입 및 로그인 하기  (2) 2021.01.11
우분투에 PHP 설치하기  (0) 2021.01.04
PHP 1  (0) 2020.08.12
Comments