메뉴 건너뛰기

enjoyTools.net

피씨방스튜디오 만들기 #1/4 - vscode 포터블 설정

피씨방스튜디오 만들기 #2/4 - MariaDB, HeidiSQL 준비

피씨방스튜디오 만들기 #3/4 - NginX, PHP 준비

피씨방스튜디오 만들기 #4/4 - 취합 및 마무리

 

피씨방스튜디오 만들기 #번외1 - Node.js 준비

피씨방스튜디오 만들기 #번외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 로 실행되게 만들면 된다.

 

 

여기까지 해서 나홀로 개발환경 꾸미기 놀이 끝.

 

 

끝.

번호 제목 글쓴이 날짜 조회 수
36 php7.4 확장 꿈돌이 2024.04.20 0
35 sql server 우분투 클라이언트로 연결 꿈돌이 2023.11.01 19
34 vscode 리눅스에서 실행시 검은 화면 먹통 꿈돌이 2023.10.30 38
33 vscode 워크벤치 화면 이동 단축키 꿈돌이 2023.08.29 36
32 스크롤 할 때 함수명을 위쪽에 딱 붙이기 꿈돌이 2023.06.08 34
31 c_cpp 확장에서 goto definition이 header내 extern 으로만 넘어갈 때 꿈돌이 2023.06.08 2283
30 vscode c_cpp vcformat if else while 줄바꿈 안시키기 꿈돌이 2022.12.29 64
29 vscode 워크벤치 편집창에서 웹폰트 사용하기 꿈돌이 2022.09.21 156
28 vscode italic 설정 꿈돌이 2022.07.01 173
27 vscode 제안항목 트리거 취소 꿈돌이 2022.02.17 161
26 vscode 빈 패널 유지하기 꿈돌이 2021.10.07 71
25 vscode 1.60 이후 bracket pair colorizer 꿈돌이 2021.09.06 158
24 vscode 1.58 이후 편집창에 터미널 띄우기 꿈돌이 2021.07.09 246
23 vscode 1.55 이후 터미널 실행 내꺼 설정 꿈돌이 2021.05.17 78
22 vscode terminal 목록 켜기 꿈돌이 2021.05.07 72
21 VSCode git (Source Control)에 remote 표시 꿈돌이 2020.08.17 336
20 피씨방스튜디오 만들기 #번외6 - 닷넷코어 준비 꿈돌이 2019.01.02 633
19 피씨방스튜디오 만들기 #번외5 - JSP 준비 꿈돌이 2018.11.01 683
18 피씨방스튜디오에서 vscode 업데이트 꿈돌이 2018.09.06 573
17 vscode offline mode 설정 항목 꿈돌이 2018.08.18 3481