일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Python
- AdaGrad
- PICO CTF
- C언어
- Apache2
- 아파치
- HTML
- 신경망 학습
- 우분투
- 리뷰
- 백준
- 오차역전파법
- FastAPI
- 파이썬
- PHP
- 신경망
- 기울기
- Python Challenge
- 순전파
- flag
- 역전파
- 코딩
- 딥러닝
- 설치
- CTF
- 소프트맥스 함수
- 책
- sgd
- picoCTF
- PostgreSQL
- Today
- Total
Story of CowHacker
PHP와 PostgreSQL 연동 본문
PHP와 PostgreSQL을 연동시키는 법을 알아보겠다.
* 준비 환경 *
1. 우분투 설치 완료 상태
cowhacker.tistory.com/81?category=884404
2. Apache2 설치 완료 상태
cowhacker.tistory.com/86?category=884404
3. PostgreSQL 설치 완료 상태
cowhacker.tistory.com/91?category=884404
4. PHP 설치 완료 상태
cowhacker.tistory.com/94?category=884404
먼저 위와 같은 준비 환경을 만들어 줬다는 전제를 깔고 알아보겠다.
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 이란 걸 알 수 있다.
'공부 > 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 |