Skip to main content

· One min read

4. OpenSSL 설정에서 이어집니다.

리눅스에서는 Curl 모듈을 확장만 하면 사용이 가능하지만 윈도우 로컬 서버에서는 사용이 되지 않는다. 해결해보자.

모듈 확장

php.ini에서 php_curl 모듈의 주석을 해제한다. image from hexo

dll 복사

총 4 개의 dll 파일을 C:\Windows\system32 폴더로 복사해야한다.

  • php7\ libeay32.dll
  • php7\ libssh2.dll
  • php7\ ssleay32.dll
  • php7\ext\ php_curl.dll

image from hexo

이제 php curl command 를 사용할 수 있다.

· 3 min read

3. Virtual Host 설정에서 이어집니다. 로컬에서 HTTPS 통신으로 프로젝트에 접근하시고 싶지 않으시다면 3 장으로 웹서버 구동은 완료됩니다.

Apache SSL 사용 설정

모듈 활성화

Apache24\conf\httpd.conf에서 ssl_module 과 socache_shmcb_module 의 주석을 해제한다. image from hexo

설정 활성화

Include conf/extra/httpd-ssl.conf의 주석을 해제한다. image from hexo

SSL 설정 변경

디렉토리 생성

Apache24\conf 경로에서 ssl폴더를 만든 뒤 conf/openssl.cnf 파일을 ssl 폴더로 복사한다.

키 생성

ssl 폴더로 들어와 cmd 창을 연 뒤 키를 생성한다.

$ openssl genrsa -out domain.key 1024
$ openssl req -new -config openssl.cnf -days 365 -key domain.key -out domain.csr

위 명령어를 입력하면 입력 폼 형식이 나오는데, 주제에 맞게 입력하면 된다. (KR, Seoul 등)

생성된 domain.key, domain.csr 파일을 확인한 뒤 아래 명령어를 입력한다.

$ openssl x509 -in domain.csr -out domain.crt -req -signkey domain.key -days 365

완성된 파일 구조의 형태는 다음과 같아야한다. image from hexo

SSL 연동

httpd-ssl.conf를 열어 키 파일을 연동해준다. image from hexo 그 밖에 다른 경로로 연결된 설정이 있다면 바로 잡아주면 된다.

HTTPS 접속

Apache restart 후 접속해보자. image from hexo

여담

오류 발생시

오류가 발생할 경우 Apache24\logs\error.log 파일을 확인해가며 진행하면 된다.

Virtual Host 설정

Virtual Host 에 직접 key 파일을 지정할 수도 있다.

<VirtualHost *:443>
SSLEngine on
SSLCertificateFile "d:/Apache24/conf/ssl/domain.crt"
SSLCertificateKeyFile "d:/Apache24/conf/ssl/domain.key"

DocumentRoot "D:/workspace/test"
ServerName local.test.com
</VirtualHost>

👏👏👏 이로서 로컬 HTTPS 서버를 가지게 되었습니다. 다음 장에서는 서버 통신을 위해 CURL 설정을 해보겠습니다.

· 2 min read

실컷 hosts 파일을 변경했는데 다시 들어가보니 원래대로거나, 권한이 없다고 아예 저장이 안 되는 경우가 있다.

해결

백신

백신에 따라 hosts 파일을 보호하기 때문에 수정을 제한될 수 있다. 잠시 백신을 사용안함 상태로 변경하자.

Windows10

Windows10 은 기본적으로 hosts 파일의 수정이 제한되어있다.

바탕화면 우클릭 > 새로만들기 > 바로가기를 실행한다. image from hexo

항목 위치 입력에 host 파일 경로를 입력해 바로가기를 만든다.

# 아래 내용을 항목 위치 입력에 넣어 바로가기 생성
C:\Windows\System32\notepad.exe C:\windows\system32\drivers\etc\hosts

image from hexo

관리자 권한으로 실행한다. image from hexo

이제 hosts 파일을 수정하면 된다.

· 2 min read

2. PHP 설치에서 이어집니다.

Apache와 PHP의 연동은 끝났지만 사용하고 싶은 프로젝트를 연동하는 작업을 해주어야 원하는 폴더를 웹으로 볼 수 있을 것이다.

Virtual Host 사용

httpd.conf를 열어 맨 아래쪽으로 내리면 있는 httpd-vhost.conf의 주석을 해제한다. image from hexo

디렉토리 접근 권한 변경

httpd.conf에서 모든 디렉토리 접근권한은 기본적으로 차단되어있기에 변경해야한다.

<Directory />
Options FollowSymLinks
AllowOverride none
Order allow,deny
Allow from all
</Directory>

image from hexo

Virtual Host 설정

./conf/extra/httpd-vhosts.conf 파일을 연다. 임시로 있는 VirtualHost를 지워주고 아래처럼 내가 사용할 프로젝트를 입력한다. image from hexo DocumentRoot에는 프로젝트 경로, ServerName은 URL로 접근할 경로를 적는다.

Host 파일 수정

C:\Windows\system32\drivers\etc\hosts 파일을 관리자 권한으로 열고 주소를 추가한다.

127.0.0.1 local.test.com

저장 불가일시

잠시 hosts 파일을 수정가능하게 손을 보고 다시 오자.

연동 확인

Apache restart 후에 확인한다. image from hexo

👏👏👏 이로서 기본 웹서버 설치는 마무리 됬습니다. 다음 장에서는 HTTPS 환경을 위해 OpenSSL 설정을 해보겠습니다.

· 3 min read

1. Apache 설치에서 이어집니다.

PHP 다운로드

여기서 Apache 의 VC 버전에 맞는 Thread Safe 타입의 PHP 를 다운받으면 된다. image from hexo

압축을 풀고 Apache 와 같은 폴더에 php7 로 변경해 저장한다. (D:\php7) 폴더 안의 php.ini-developmentphp.ini로 변경한다.

모듈 활성화

사용할 모듈의 세미콜론을 지워주면 된다. image from hexo curl, mysqli, gettext, mbstring, openssl, pdomysql는 기본으로 지워주고, 나머진 나중에 지워도 된다.

설정 변경

php.ini 파일의 설정을 변경한다.

시간대 설정

date.timezone 을 추가한다. image from hexo

short_open_tag 설정

<?php<? 로도 사용할 수 있게 해주는 short_open_tag 옵션을 켠다. image from hexo

에러 리포팅 설정

에러 발생시 서버에 오류가 노출되기에 에러 노출 단계를 낮춰주자. image from hexo

error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_USER_DEPRECATED

모든오류 & not runtime notice & not deprecated & not user deprecated 의 상태이면 오류를 출력한다.

확장 모듈 경로 설정

C:\php에 php 설치를 하지 않았을 경우 확장 모듈 경로를 변경해줘야한다.

extension_dir = "D:\php7\ext"

Apache에 PHP 연동

httpd.conf 파일을 열고 아래 구문을 모두 추가한다.

# 인덱스 파일 설정
DirectoryIndex index.php index.html index.htm
# 모듈 연동 (php 설치 경로를 적는다)
LoadModule php7_module "D:/php7/php7apache2_4.dll"
# 핸들러 및 타입 연동
AddHandler application/x-httpd-php .php
AddType application/x-httpd-php .php .html
# PHP INI 경로 설정
PHPIniDir "D:/php7"

image from hexo

연동 확인

D:\Apache24\htdocs 경로의 index.html 파일을 index.php 로 변경 후 저장한다.

index.php
<?
phpinfo();
?>

image from hexo

여담

php5에서 php7로 오는 중 큰 변경점이 몇 가지 있다.

  1. 속도가 php5보다 2배 향상
  2. mysql 함수 사용 불가 (Mysqli로 대체)
  3. 기본값 연산자 사용 가능 (A ?? B ?? C 로 사용가능)

👏👏👏 다음 장에서는 실제 프로젝트를 웹서버에 돌리기 위한 Virtual Host 설정을 해보겠습니다.


· 2 min read

APM_setup 은 좋은 선택이지만, PHP 버전업에 있어서 충돌이 너무 심하고 Nginx 도 좋은 선택이지만 나중에 정리하기로 하자.

아파치 다운로드

여기에서 운영체제에 맞는 버전을 다운로드 한다. image from hexo VC14, VC11 은 PHP 버전과도 관련있으니 다운받으면서 확인해 놓는다. 압축을 풀면 Apache24 폴더가 생기는데 이 폴더를 원하는 경로로 옮겨준다. (D:\Apache24)

경로 변경

C:\Apache24 에 압축을 풀었다면 3 번으로 넘어가자

Apache24/conf/httpd.conf를 열어 경로를 변경한다. image from hexo 초기 설치 상태에서 C:\로 검색시 4 개정도 찾아지는데 모두 변경해주면 된다.

httpd 서비스 등록

cmd 를 관리자 권한으로 실행 후 아래 명령어를 입력해준다.

  • Windows10 : 시작메뉴 우클릭 > 명령 프롬프트(관리자) 메뉴
  • Windows7 : 시작메뉴 > 모든 프로그램 > 보조 프로그램 > 명령 프롬프트 우클릭 > 관리자 권한으로 실행
$ httpd.exe -k install

image from hexo

httpd 구동

Apache24\bin\ApacheMonitor.exe 실행한 뒤 작업표시줄에서 Apache 아이콘 클릭 후 서비스를 시작한다. image from hexo

localhost 접근

image from hexo 👏👏👏 다음 장에서는 PHP 를 설치해 Apache 와 연동을 해보겠습니다.

· 2 min read

서브라임 텍스트에서 단축키를 수정해보자.

설정

Preferences > Key Bindings 메뉴를 들어간다. Default 와 User 로 나눠진 창에서 User 창에 내 단축키를 등록하면 된다.

단축키

다른 환경과 호환되는 사용하기 편한 단축키

[
// ctrl+d 로 줄삭제
{
keys: ["ctrl+d"],
command: "run_macro_file",
args: { file: "res://Packages/Default/Delete Line.sublime-macro" },
},
// 기존 ctrl+d의 기능을 옮김
{ keys: ["ctrl+shift+k"], command: "find_under_expand" },
{ keys: ["ctrl+k", "ctrl+shift+k"], command: "find_under_expand_skip" },
// 들여쓰기 활성화
{ keys: ["f12"], command: "reindent", args: { single_line: false } },
// 파일 새로고침
{ keys: ["f5"], command: "revert" },
// f1키 누를시 package controller 띄우기 (기존 ctrl+shift+p 기능)
{
keys: ["f1"],
command: "show_overlay",
args: { overlay: "command_palette" },
},
// terminal package가 있을시 현재 프로젝트 터미널 띄우기
{ keys: ["ctrl+alt+t"], command: "open_terminal_project_folder" },
// sidebarEnhancement package가 있을시 파일명 변경
{ keys: ["f2"], command: "side_bar_rename" },
// sidebarEnhancement package가 있을시 새 파일 생성
{ keys: ["ctrl+n"], command: "side_bar_new_file2" },
];

· One min read

빛나미로 설치된 레드마인에 플러그인을 추가해보자

플러그인 폴더 이동

root 권한으로 접근해야한다.

$ cd /opt/redmine/apps/redmine/htdocs/plugins

플러그인 설치

$ git clone 플러그인

레드마인 쉘 접속

$ cd /opt/redmine
$ ./use_redmine

레드마인 번들 업데이트

번들은 플러그인이라고 생각하면 된다.

$ cd apps/redmine/htdocs
$ rake redmine:plugins:migrate RAILS_ENV=production

rake 명령어가 실행이 안될시

$ bundle install --without development test
$ rake redmine:plugins:migrate RAILS_ENV=production

레드마인 재시작

$ exit
$ cd /opt/redmine
$ ./ctlscript.sh restart

이제 레드마인 관리자에서 플러그인을 관리할 수 있다.

· 2 min read

서브라임 텍스트 사용시 쓸만한 패키지를 모아봤다.

패키지

NameDescription
additional PHP SnippetsPHP 자동완성
All Autocomplete열려있는 모든 문서의 구문을 가져와 자동완성
Auto RefreshN초마다 자동 파일갱신
AutoFileName파일경로 입력시 자동으로 목록을 보여줌
BracketHighlighter괄호 하이라이터
Color HighlighterHEX 및 색상 하이라이터
ConvertToUTF8UTF8 환경 사용가능
DocBlockr괄호 자동생성
EJS2ejs 사용 가능
GitGit 사용 가능
IMESupport한글 및 기타 문자 사용가능
JavaScript & NodeJS Snippetsjs 및 node 자동완성
Javascript Beautify압축된 js의 아름답게
Javascript Completionsjs 자동완성
Javascript PatternsES5이하에서 최적화된 js패턴 사용
JSHint Gutterjs hint를 gutter 아이콘으로 표시
LESSless 사용 가능
MarkdownEditingmarkdown 사용 가능
Material Theme메테리얼 테마
SFTPftp 사용 가능
SideBarEnhancements기본 우클릭메뉴 강화
SublimeCodeIntelHTML 구문 자동완성
SublimeLinter문법 체크
SublimeLinter-jshintjs 문법체크
SublimeLinter-phpphp 문법체크
SublimeLinter-xmllintxml 문법체크
SyncedSideBar파일 선택시 사이드바의 폴더가 자동으로 열림
Terminal터미널
TortoiseSVNSVN 사용가능
TrailingSpaces빈공간 제거
TypeScriptts 사용 가능
UMD snippetsUMD 모듈패턴 자동완성

진하게 표시가 된 패키지들은 필수로 설치하는걸 추천한다.

· One min read

Windows10 Anniversary 업데이트 후에 갑자기 80 포트 또는 Apache 서비스를 사용할 수 없는 경우가 있다.

원인

WWW Publishing service 가 80 포트를 사용해서 충돌이 발생했다.

해결

services.msc 를 실행해 *WWW Publishing 서비스사용안함으로 체크한 뒤 재부팅해주면 된다. (로컬 웹을 돌릴 정도면 서비스창을 띄울 수 있을 것이라 믿는다) image from hexo