티스토리 뷰

[설치버전]
CentOS version7.5
Postgresql12
Postgis version3.2

[리눅스 설치 환경]
소프트 웨어 선택 -> 개발 및 창조를 위한 워크스테이션
-> 선택한 환경의 기능 : 추가개발, 호환성 라이브러리, 개발용 도구, FTP 서버, Perl - Web용, 플랫폼 개발

※아래의 과정은 폐쇄망에서의 설치 과정이다.
사전에 서버A에서 내려받은 파일을 scp로 옮겨주고 Postgresql12, Postgis를 설치한다.

[centos 버전 확인방법]
# cat /etc/redhat-release

[ip주소 확인방법]
# ip addr
# ifconfig

 

 

PostgreSQL12 설치

 

1. scp 이용해서 라이브러리 파일 옮기기
라이브러리 파일을 폐쇄망인 리눅스 환경으로 옮기기
/home/
위의 경로에 아래의 파일을 옮겨놓기

--------------------------------------------------------------------------------------------------------------------------------------------------------
*SCP란(Secure Copy)
scp는 ssh프로토콜을 기반으로 원격지에 있는 파일과 디렉터리를 보내거나 가져올 때 사용하는 파일 전송 프로토콜이다. SSH포트 사용
윈도우 ↔ 리눅스 무조건 Power Shell에서 진행함 (리눅스 ↔ 리눅스 예외)
옵션 -r 디렉토리 전송
ex) 
로컬(윈도우) -> 원격(리눅스)
scp [파일명] [리눅스계정명]@[리눅스2ip주소]:[리눅스에서파일받을경로]
--------------------------------------------------------------------------------------------------------------------------------------------------------

1-1. home디렉토리 하위에 아래와 같이 설치 파일을 셋팅하였다.
[root@localhost opc]# ls
gdal-3.3.0.tar.gz   postgis-3.2.0.tar.gz  proj-6.0.0.tar.gz
geos-3.9.2.tar.bz2  postgresql12



2. 저장소 제외시키기
# cd /etc/yum.repos.d/
# mkdir old_repo
# mv *.repo old_repo
기존의 저장소를 old_repo로 옮겨준다.
이 과정을 해주는 이유: CentOS 내부의 같은 이름의 패키지가 자동으로 설치가 됨을 방지
예를들면 yum install postgres 명령어 실행시 구버전의 postgresql가 자동으로 설치되어짐



3. 저장소 생성하기 
# cd /etc/yum.repos.d/
# vi postgresql12.repo 
※ 저장소 이름에 버전 명시해주기. 이름이 겹치면 내장된 구버전이 설치될치될 수도 있음 (위에서 저장소 제외시킨 이유)

- 파일 내용은 아래와 같이 작성 
[postgresql12-repo] 
name=local repository
baseurl=file:///home/opc/postgresql12/
enabled=1
gpgcheck=0

- 로컬 저장소 선언
# createrepo /home/opc/postgresql12
→ potgresql12안에 repodata 디렉토리 생성됨



4. 저장소 확인
# yum repolist
postgresql12-repo 확인하기



5. 리눅스에 postgresql이 기본으로 설치 되어있을 수도 있음
- 아래 명령어로 확인
# rpm -qa | grep postgresql

- postgresql삭제
# yum remove *postgresql
삭제 완료 되었는지 확인하기



6. postgresql12 설치
# yum install postgresql12-libs
# yum install postgresql12
# yum install postgresql12-server 
# yum install postgresql12-contrib
위의 순서대로 설치해주자

설치 확인
[root@localhost postgresql12]# rpm -qa | grep postgres
postgresql12-server-12.11-1PGDG.rhel7.x86_64
postgresql12-libs-12.11-1PGDG.rhel7.x86_64
postgresql12-contrib-12.11-1PGDG.rhel7.x86_64
postgresql12-12.11-1PGDG.rhel7.x86_64



7. postgresql12-devel 설치
# yum install postgresql12-devel



8. postgresql12 실행

- 서비스 등록 및 시작
# systemctl enable postgresql-12
# systemctl start postgresql-12

- 기본 데이터베이스 생성
[root@localhost /]# /usr/pgsql-12/bin/postgresql-12-setup initdb
Initializing database ... OK

- postgresql 아이디 확인
# id postgres 

- 비밀번호 설정
# sudo passwd postgres

# su postgres
# psql
# alter user postgres password 'postgres';


9. 외부 접근 허용 설정
외부 접근을 허용해야지 DBeaver로 접속을 할 수 있다
- postgresql.conf 파일 수정
# vi /var/lib/pgsql/12/data/postgresql.conf
아래 listen_addresses의 주석을 해제하고 *로 바꿔준다.
listen_addresses='*'

- pg_hba.conf 파일 수정
# vi /var/lib/pgsql/12/data/pg_hba.conf
pg_hba.conf 파일에서 맨 아래부분에 아래 코드를 추가해준다.
host all all 0.0.0.0/0 md5



10. 수정했으면 Postresql 서비스 재시작 해야함
# systemctl restart postgresql-12



11. 실행확인
# systemctl status postgresql-12



12. 방화벽 설정
외부접근을 했는데도 DBeaver와 연결이 안되면 방화벽을 확인하자.

- 방화벽 상태 확인
# systemctl status firewalld

- 방화벽 등록 포트 확인
# firewall-cmd --permanent --zone=public --list-ports
위의 코드를 작성했는데 아무것도 뜨지 않으면 포트가 아무것도 등록 안된거니까 , 5432 포트에 등록해주면 된다.

- 방화벽 포트 등록
# firewall-cmd --permanent --zone=public --add-port=5432/tcp



 

 

PostGIS3.2.0 설치


1. postgis3.2.0 설치 요구사항
아래사이트에서 확인 가능
https://postgis.net/docs/postgis_installation.html
------------------------------------------------------------------------------------------
- PostgreSQL11이상
- gcc
- make -v확인
- Proj 4.9이상 (4.9는 몇몇 기능 이상이 있을수도 있으니까 5.0이상 설치하기)
- GEOS 3.6이상 (3.9이상 설치, 3.11은 안정화된 버전 아니니까 피하기)
- LibXML2 version 2.5.x 이후 
- JSON-C 0.9 이후
- GDAL 3.0~3.4
------------------------------------------------------------------------------------------


해당 서버에 위의 패키지 설치 확인하기
# rpm -qa | grep gcc
# make -v
# proj -v   -------------------------> 설치 필요
# geos-config --version  ---------------------------> 설치 필요
# rpm -qa | grep LibXML
# rpm -qa | grep json
# gdalinfo --version  ---------------------------> 설치 필요



2. proj-6.0.0
https://proj.org/download.html
# tar -xvf proj-6.0.0.tar.gz
# cd proj-6.0.0
# ./configure
# make
# make install
# proj -v



3. geos-3.9.2
https://libgeos.org/usage/download/
# tar -xvf geos-3.9.2.tar.bz2
# cd geos-3.9.2
# ./configure
# make
# make install
# geos-config --version



4. gdal-3.3.0
http://download.osgeo.org/gdal/3.3.0/
# tar -xvf gdal-3.3.0.tar.gz
# cd gdal-3.3.0/
# ./configure
# make 
# make install
# gdalinfo --version



5. postgis-3.2.0 설치
http://download.osgeo.org/postgis/source/
# tar -xvf postgis-3.2.0.tar.gz 
# cd postgis-3.2.0
# ./configure --with-pgconfig=/usr/pgsql-12/bin/pg_config --with-raster --with-geosconfig=/usr/local/bin/geos-config --with-gdalconfig=/usr/local/bin/gdal-config --without-protobuf
# make
# make install
# systemctl restart postgresql-12.service

※make && make install
하는데 너무 오래 걸림/... 중간에 끄지말자 (한 20분...?)


 
6. 모듈 파일(.so) 업데이트
# echo /usr/local/lib >> /etc/ld.so.conf
# ldconfig



7. postgis 배포
설치한 postgis-3.2.0 폴더 위치에 extenstion
# cd /home/opc/postgis-3.2.0/extenstions/postgis
# make clean
# make && make install
# cd ..
# cd postgis_topology
# make clean
# make && make install



8. Postgis 설치 완료 
postgres=# create extension postgis;
CREATE EXTENSION



9. shp2pgsql을 사용해서 postgres, postgis가 잘 설치되었는지 확인해보자
https://wldnjd2.tistory.com/57

 

shp2pgsql로 PostgreSQL에 .shp파일 올리기 (Linux)

https://wldnjd2.tistory.com/35 shp2pgsql로 postgreSQL에 shp파일 올리기 (윈도우) 이전에는 PostGIS Shapefile Import/Export Manager를 이용해서 DB에 shp파일을 올렸었다. 이번에는 shp2pgsql을 이용해서 pos..

wldnjd2.tistory.com

 

이전글

https://wldnjd2.tistory.com/54?category=1003764 

 

폐쇄망에서 Postgresql, PostGIS 설치1 (서버A)

[설치버전] CentOS version7.5 Postgresql12 Postgis version3.2 [리눅스 설치 환경] 소프트 웨어 선택 -> 개발 및 창조를 위한 워크스테이션 -> 선택한 환경의 기능 : 추가개발, 호환성 라이브러리, 개발용 도구,.

wldnjd2.tistory.com

 

 

댓글