피씨방스튜디오 만들기 #번외2 - PostgreSQL 준비
2017.11.02 02:37
피씨방스튜디오 만들기 #1/4 - vscode 포터블 설정
피씨방스튜디오 만들기 #2/4 - MariaDB, HeidiSQL 준비
피씨방스튜디오 만들기 #3/4 - NginX, PHP 준비
피씨방스튜디오 만들기 #번외2 - PostgresSQL 준비
Visual Studio Code 윈도우용과 NginX, PHP, MySQL 등을 피씨방에서도 설치 없이, 압축만 풀어서 바로 쓸 수 있게 하기 위한 삽질.
주로 배치파일을 활용하며, 일부는 MSys Shell 에서 파일을 가져다 쓸 것임.
준비할 파일들은 64비트용으로 할 것임.
0. 폴더는 아래와 같이 구성. 앞으로 여기에 필요한 폴더들을 추가해 나갈 것임.
* 루트 폴더
- tools : 프로그램들이 들어갈 폴더
** vscode : 비주얼스튜디오코드
** heidisql : 하이디SQL은 MySQL 클라이언트
** servers
-- mariadb : MySQL 대신, 마리아DB 사용
-- nginx : http 웹서버
-- pgsql : PostgreSQL
-- php
** utils
-- sed : 텍스트 파일 변조용. MSys에서 필요한 것만 가져올 거임
** nodejs
- workspace : 작업 공간으로 사용할 폴더
1. pgsql 준비
* https://www.enterprisedb.com/download-postgresql-binaries 에서 Win 86-x64 버튼을 클릭해서 다운로드 받는다.
- 가입 필요.
* 0번 항목에 적힌 경로에 압축을 푼다.
2. 폴더용량 다이어트 - 이전에 MariaDB에서 했던 것 처럼 필요없는 파일 또는 폴더들을 삭제함.
* 삭제할 폴더
- symbols : *.pdb 파일들만 잔뜩 있는 걸로 봐서 디버그용인 것 같다.
- pgAdmin 3 또는 pgAdmin 4 : 이거 대신 하이디SQL 쓸끼다.
- doc : 설명서
3. 초기 데이터 준비
* DB 데이터 생성
- pgsql 설치된 폴더로 이동
- data 폴더 생성
- 하위에 존재하는 bin 폴더로 이동
- 아래와 같이 입력하여 데이터 생성. 아래에 -U postgres 는 수퍼유저임. 아니면 -U root 로 하등가...
** 이 때, -W 옵션에 의해 password 질의를 받게 된다.
initdb -D ..\data -U postgres -W -E UTF8 -A md5
-- 또는 --
initdb -D ..%\data -U postgres -W -E UTF8 -A md5 --no-locale
* %pgsql폴더%\data\postgresql.conf 파일을 열고 연결 및 동작 설정을 입맛에 맞게 수정한다.
- 나는 port만 15432로 변경함.
* %pgsql폴더%\data\pg_hba.conf 파일을 열고 허용할 연결 계정이나 경로 등을 잡아준다.
- 나는 로컬 개발용으로 쓰려고 이러고 있는 거라서 아래와 같이 설정함.
# TYPE DATABASE USER ADDRESS METHOD
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
4. 실행 및 종료용 배치파일을 작성
* 실행용 파일 생성
- %pgsql폴더% 에 pgsql_start.cmd 라는 이름으로 배치파일을 만들어서 아래와 같은 내용을 넣어준다.
rem pgsql_start.cmd
cd %PGSQL_ROOT%
start bin\pg_ctl -D .\data start
* 종료용 파일 생성
- %pgsql폴더% 에 pgsql_stop.cmd 라는 이름으로 배치파일을 만들어서 아래와 같은 내용을 넣어준다.
rem pgsql_stop.cmd
cd %PGSQL_ROOT%
bin\pg_ctl -D .\data stop
5. run_vscode.bat 파일에 관련 내용 추가
* 기존 내용에 아래의 파란 부분을 적당한 위치에다가 추가한다.
rem @echo off
rem vscode path
set "VSC_ROOT=%cd%"
set "VSC_DRIVE=%CD:~0,2%"
set "PATH=%cd%;C:\Windows;C:\Windows\System;C:\Windows\System32"
rem 기존 시스템 설정의 PATH에 NPM이 깔려있으면 충돌나므로, 기존 패스는 아예 다 날려버림
rem set "PATH=%cd%;%PATH%"
rem heidisql path
cd ..\heidisql
set "PATH=%cd%;%PATH%"
rem node.js path
cd ..\nodejs
set "PATH=%cd%;%PATH%"
rem set "NODE_ENV=production"
rem set "NODE_ENV=development"
set "NODEJS_ROOT=%cd%"
set "NODEJS_CACHE=%NODEJS_ROOT%\npm-cache"
RunHiddenConsole "" npm config set cache %NODEJS_CACHE% --global
rem nginx path
cd ..\servers\nginx
set "PATH=%cd%;%PATH%"
rem php path
cd ..\php
set "PATH=%cd%;%PATH%"
set PHP_FCGI_CHILDREN=0
set PHP_FCGI_MAX_REQUESTS=10000
rem postgres path
cd ..\pgsql
set "PATH=%cd%;%PATH%"
set "PGSQL_ROOT=%cd%"
rem mariadb path
cd ..\mariadb
set "PATH=%cd%;%PATH%"
cd bin
set "PATH=%cd%;%PATH%"
cd %VSC_ROOT%
Code.exe --extensions-dir .\data\extension --user-data-dir .\data\user-data
rem vscode 종료 시, 기존 프로세스 모두 종료
taskkill /F /IM nginx.exe > nul
taskkill /F /IM php.exe > nul
taskkill /F /IM php-cgi.exe > nul
taskkill /F /IM mysqld.exe > nul
cd %PGSQL_ROOT%
bin\pg_ctl -D .\data stop
rem vscode 종료 시, 아래 항목 삭제
rem * 크로미움 캐시데이터
rem * npm-cache
%VSC_DRIVE%
cd %VSC_ROOT%
del .\data\user-data\Cache\*.* /Q
del .\data\user-data\CachedData\*.* /Q
FOR /D %%p IN (".\data\user-data\CachedData\*.*") DO rmdir "%%p" /s /q
npm cache clear --force
exit
6. vscode 실행항목 추가
* 이전과 동일하며, 아래 과정을 거쳐서 vscode에서 pgsql 을 실행할 수 있게 설정한다.
- vscode 메뉴 파일 > 기본 설정 > 설정 [Ctrl+Comma] 을 선택한다.
- 탭을 보면 vscode의 버전에 따라서 settings.json 또는 {} 사용자 설정 이라는 이름으로 표시되는데 아래와 같이 Launcher Extension을 위한 내용을 추가한다.
"launcher.commands": [
{
"description": "Web Browser",
"executable": "cmd.exe",
"parameters": "/c start http://localhost:8800",
"startIn": "%workspace%"
},
{
"description": "NginX/PHP Start",
"executable": "nginx_start.bat",
"startIn": "%workspace%"
},
{
"description": "NginX/PHP Stop",
"executable": "nginx_stop.bat",
"startIn": "%workspace%"
},
{
"description": "MariaDB Start",
"executable": "mariadb_start.bat",
"startIn": "%workspace%"
},
{
"description": "MariaDB Stop",
"executable": "mariadb_stop.bat",
"startIn": "%workspace%"
},
{
"description": "PgSQL Start",
"executable": "pgsql_start.cmd"
},
{
"description": "PgSQL Stop",
"executable": "pgsql_stop.cmd"
},
{
"description": "HeidiSQL",
"executable": "heidisql.exe",
"startIn": "%workspace%"
}
]
7. 마무리
위에서 만든 계정과 암호로 접속할 수 있게, 하이디SQL에 관련 설정을 추가한다.
사실, 내가 mysql을 거의 모르는데, pgsql은 mysql 보다도 더 모른다. 아는게 아예 없다.
당장 쓰지도 않을 것을 굳이 이렇게 만든 이유는 mysql의 라이선스 문제 때문에, 언젠가는 사용할 일이 생길 것 같은 느낌이 들어서 그랬다.
(라이선스가... MySQL은 GPL/Commercial, PgSQL은 BSD.)
내 기준은 딱 두 개다.
1. 피씨방 같은 곳에서 압축 풀어서 즉시 실행 가능
2. %AppData% 등에 흔적을 남기지 않음
배치파일을 잘 활용해서 파이썬 같은 것들도 설치 없이 사용할 수 있다.
해보니 안되는 것도 있긴 하지만...
* 파이썬은 아래의 문제만 해결해주면 됨. 참고
- pip 등의 모듈 등에 하드코딩된 C:\Python36 등으로 인해 에러가 나기 때문에 Hex에디터로 수정해줘야 한다.
* 닷넷코어를 제외한 MS 제품들과 서비스로 도는 것들을 제외하면 웬만하면 다 되는 것 같다.
* 여기까지 작업한 결과물 예시 (이전의 NodeJS 포함) : 깃헙으로 옮김 - https://github.com/edp1096/pcbangstudio
- 이 작업물(윗줄 다운로드 링크)에 있는 pgsql 계정: root / pgsql
- 주의: 기존에 APM이 설치되어 있으면, vscode 종료시 APM에서 실행 중인 php나 mysql 프로세스가 같이 죽을 수 있다.
추가
Postgres 실행 시 콘솔이 남아있는데, 없애려면 이전에 사용했던 배치파일을 수정해서 RunHiddenConsole.exe 로 실행되게 만들면 된다.
여기까지 해서 나홀로 개발환경 꾸미기 놀이 끝.
끝.
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
18 | 피씨방스튜디오에서 vscode 업데이트 | 꿈돌이 | 2018.09.06 | 1117 |
17 | vscode offline mode 설정 항목 | 꿈돌이 | 2018.08.18 | 3790 |
16 |
피씨방스튜디오 만들기 #번외4 - Go 준비
![]() | 꿈돌이 | 2018.07.14 | 1437 |
15 | VSCode 터미널에서 - Powershell 프롬프트 경로 짧게 하기 | 꿈돌이 | 2018.06.29 | 1367 |
14 | 피씨방스튜디오 만들기 #번외3 - Python(3.x) 준비 | 꿈돌이 | 2018.03.16 | 1184 |
» | 피씨방스튜디오 만들기 #번외2 - PostgreSQL 준비 | 꿈돌이 | 2017.11.02 | 1037 |
12 | 피씨방스튜디오 만들기 #번외1 - Node.js 준비 | 꿈돌이 | 2017.09.19 | 1212 |
11 |
피씨방스튜디오 만들기 #4/4 - 취합 및 마무리
![]() | 꿈돌이 | 2017.09.08 | 1168 |
10 | 피씨방스튜디오 만들기 #3/4 - NginX, PHP 준비 | 꿈돌이 | 2017.09.08 | 1271 |
9 |
피씨방스튜디오 만들기 #2/4 - MariaDB, HeidiSQL 준비
![]() | 꿈돌이 | 2017.09.07 | 1292 |
8 |
피씨방스튜디오 만들기 #1/4 - vscode 포터블 설정
![]() | 꿈돌이 | 2017.09.07 | 2468 |
7 | VSCode 외 웹서버 및 node.js 등 포터블 설정 백업 | 꿈돌이 | 2017.03.21 | 1335 |
6 | VSCode 다중커서 | 꿈돌이 | 2017.02.28 | 19928 |
5 | External tools, Run 설정 이전 | 꿈돌이 | 2016.06.02 | 894 |
4 |
C/C++ CDT/MinGW32에서 pthread 사용하기
![]() | 꿈돌이 | 2015.03.03 | 5655 |
3 |
GTK+ 3 설정
![]() | 꿈돌이 | 2015.03.01 | 2348 |
2 |
CDT(c c++ development tools) 및 MinGW / MSYS 설정
![]() | 꿈돌이 | 2015.02.26 | 3688 |
1 |
이클립스 최소판을 포터블형식으로 만들기
![]() | 꿈돌이 | 2015.02.22 | 1500 |