본문으로 건너뛰기

"windows" 태그로 연결된 24개 게시물개의 게시물이 있습니다.

모든 태그 보기

chrome usb 디버깅 장치를 못 찾거나 연결이 안될 때

· 약 1분

usb 디버깅 승인 후 chrome://inspect#devices 탭에 접근하면 기기가 보이면서 디버깅이 가능해야하는데, 그렇지 못한 경우에 아래처럼 진행해주면 된다.

해결

먼저 usb 디버깅 권한을 모두 초기화하고 다시 연결한다.

## 디버깅 서버를 죽인 후 다시 실행한다.
$ adb kill-server
$ adb usb

개발자도구의 More tools > Remote devices의 목록에서 확인할 수 있다.

여담

  • PTP 연결을 하라는데 이건 안드로이드 구버전에 대한거라 필요 없다.
  • 웹뷰 디버깅시에는 디버깅 권한이 있는 앱이여야 가능하다.

Windows와 Mac에서 세계시간 설정하기

· 약 2분

윈도우

날짜/시간 설정

  • Window + R 키로 실행 창을 띄운다.
  • timedate.cpl 을 입력한 뒤 날짜/시간 설정에 들어간다.
  • 추가시계 탭에서 시계 표시를 체크한 뒤 시간대를 설정한다.
  • 시계표시줄에 세계 시간이 추가된 걸 확인할 수 있다.

알림 목록

우측 상단 시리 옆의 알림 목록에서 설정할 수 있다. 알림 목록의 편집 버튼을 클릭하면 세계시계 위젯을 추가할 수 있다.

Clocker

설치할 때 굳이 도시 추가를 안하지 않아도 설치 후에 더 직관적으로 추가할 수 있다.

  • Clocker 앱을 다운받는다.
  • 실행하고 원하는 도시를 추가한다.
  • 설치시에 권한은 따로 주지 않아도 시계는 볼 수 있다.
  • 설정의 ON/OFF 모양의 아이콘에서 세계 시간 설정이, 티셔츠 모양 아이콘에서 세부 표시 설정이 가능하다.

Hyper-V Virtual Eternet 네트워크 제거

· 약 3분

windows RS4, RS5 업데이트 이후로 Hyper-V 가 켜있으면 블루스크린이 발생한다. 에러 내용은 vmswitch.sys driver_irql_not_less_or_equal 또는 kernel security check failed 였다.

간헐적으로 발생되는 거라 시한폭탄을 들고 있는 거와 같다고 느껴져서, 이번 기회에 가상화는 맥북에서만 이용하려고 Hyper-V 를 모두 제거해봤다.

Hyper-V 제거

Docker for Windows 제거

Docker for Windows 를 먼저 제거한다.

남아있는 가상서비스 제거

Hyper-V 관리자에서 남아있는 가상 컴퓨터를 모두 삭제한다.

기능 제거

윈도우 실행에서 OptionalFeatures를 치면 바로 Windows 기능 켜기/끄기 메뉴로 들어가진다. Hyper-V 를 Disable 시키고 재부팅 2번을 기다리자.

네트워크 초기화

가상 네트워크 제거

위의 상태로 제거해도 네트워크 > 속성 > 어댑터 설정 에는 Hyper-V virtual Eternet 이 보이는데, 장치관리자 > 네트워크 어댑터 에서 직접 삭제해주면 된다.

장치관리자는 윈도우 실행에서 devmgmt.msc 치면 바로 들어갈 수 있다.

이더넷 재설정

가상 스위치를 제거하면 인터넷이 아예 끊겨버리는데, 이더넷을 원래 상태로 복원하면 된다. 이더넷 설정에서 Hyper-V Extensible Virtual Switch 를 체크 해제하고 확인 버튼을 누른다.

image from hexo

재부팅하고 클린한 네트워크 환경을 맞아보자.

이슈

systeminfo 입력 후 OS 버전이 17763 버전일 경우 Docker for windows의 설치가 아예 되지 않는 듯 싶다.

PS1 > systeminfo

windows에 spring boot cli 설치하기

· 약 3분

설치

스프링 부트를 설치해보자.

여기서 원하는 버전 스냅샷의 bin.zip 파일을 받아 압축을 풀어준다 예를 들면 spring-boot-cli-2.1.0.M1-bin.zipC:/spring에 압축을 풀면 된다.

정식버전은 여기의 zip 파일을 받으면 된다.

설정

환경변수를 3 개 추가해줘야한다

  • JAVA_HOME 변수에 JDK 설치 경로 (C:/Program Files/Java/jdk-10.0.2)
  • SPRING_HOME 변수에 방금 압축푼 spring cli 의 경로 (C:/spring)
  • path 변수에 %SPRING_HOME%\bin 경로

오류

git bash에서 org.springframework.boot.loader.JarLauncher 을(를) 찾거나 로드할 수 없습니다란 오류가 뜰 때는 spring/bin/spring파일을 열어 다음과 같이 수정하자

spring
## 16번째 줄 if 문 주석처리
## For Cygwin, ensure paths are in UNIX format before anything is touched.
## if $cygwin ; then
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
## fi

## 94번째 줄 if 문 주석처리
## if $cygwin; then
PRING_HOME=`cygpath --path --mixed "$SPRING_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
## fi

출처

그래도 같은 오류가 발생한다면 spring 쉘 스크립트를 아예 새로 짜버리자

spring
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
## 아래에 다음 줄을 추가하자
## 이 구문은 스프링 홈 경로를 unix 스타일로 바꿔준다
[ -n "$SPRING_HOME" ] && SPRING_HOME=`cygpath --unix "$SPRING_HOME"`

## 94번째 줄을 다음과 같이 바꿔버리자
## if $cygwin; then
# SPRING_HOME=`cygpath --path --mixed "$SPRING_HOME"`
# CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
CLASSPATH=`cygpath --unix "$CLASSPATH"`
## fi

세 변수를 echo 찍었을 때 아래와 비슷하게 나오면 된다.

## echo $JAVA_HOME;
/d/Program Files/Java/jdk-10.0.2

## echo $SPRING_HOME;
/d/spring

## echo $CLASS_PATH;
.:/d/spring/bin:/d/spring/lib/spring-boot-cli-2.1.0.BUILD-SNAPSHOT.jar

그리고 마지막 줄의 명령어를 echo 할 때는 다음과 같다.

## echo "${JAVA_HOME}/bin/java" ${JAVA_OPTS} -cp "$CLASSPATH" org.springframework.boot.loader.JarLauncher "$@"
/d/Program Files/Java/jdk-10.0.2/bin/java -cp .:/d/spring/bin:/d/spring/lib/spring-boot-cli-2.1.0.BUILD-SNAPSHOT.jar org.springframework.boot.loader.JarLauncher

확인

$ spring --version

Spring CLI v2.1.0.M1

Window에서 aws cli 사용시 bad interperter 오류

· 약 1분

git bash에서 aws cli 명령어를 실행시에 c:\Program Files... bad interpreter 오류가 나오면서 실행이 안 될 때는 다음과 같이 하면 된다.

해결

~/.bash_profile 에 aws alias를 추가한다.

$ vi ~/.bash_profile
## aws script 경로를 강제로 지정한다
alias aws='python "C:\Program Files\Python\Scripts\aws"'
## 추가 후 저장
$ source ~/.bash_profile

Windows에서 환경변수 cmd로 등록하기

· 약 1분

매번 내 컴퓨터 > 설정 > 고급 설정 > 환경 변수에 들어가는 걸 그만하고 싶은 사람이라면 다음과 같이 하면 된다.

추가

setx path "%path%;새로운 경로"

refreshenv

설명

환경변수를 등록하고 그 변수를 반영한다.

Hyper-V를 사용한 VM 실행

· 약 5분

윈도우에서 테스트용으로 사용할 서버가 필요하다. Ubuntu, CentOS 환경을 구축한다던지, 여러 서버 프로그램을 테스트해본다던지.. 가장 유명한 프로그램은 VMware이지만 유료이다. VirtualBox도 있지만 느리다. 그렇다면 다른 대안이 무엇이 있을까?

바로 Windows10을 쓰고 있다면 사용할 수 있는 Hyper-V 가상화 기술이다. (아쉽지만 Home Edition은 지원하지 않는다.)

속도면에서 느리지는 않을까? 서버 실행에 가장 많은 부하를 주는 I/O의 테스트 결과가 있다.

Hyper-V 설정

지원 확인

cmd 또는 powershell을 열어 systeminfo.exe를 실행하자.

systeminfo.exe

결과 화면 중 아래 부분에

Hyper-V 요구사항

  • VM 모니터 모드 확장 : 예
  • 펌웨어 가상화 사용: 예
  • 두 번재 수준 주소 변환: 예
  • 데이터 실행 방지 사용 가능: 예

처럼 표시되면 Hyper-V를 지원하는 컴퓨터이다. 그렇지 않다면 재부팅 후 BIOS로 접근해 Advanced 탭으로 이동한 후 옵션을 켜준다.

  1. Intel Virtualization Technology 기능을 활성화
  2. VT-d 옵션 활성화 (있는 경우)

활성화

제어판 > 프로그램 및 기능 > Windows 기능 켜기/끄기 메뉴로 이동한다. image from hexo Hyper-V 관련 기능을 체크해주고 확인 버튼을 눌러 다시 시작하자.

가상 컴퓨터 실행

CentOS 다운로드

CentOS 7 이미지를 다운로드 받는다. kakao mirror를 이용해도 된다.

가상 네트워크 생성

시작 > Hyper-V 검색 > Hyper-V 관리자로 이동한다. image from hexo

가상 스위치 관리자 > 외부 > 가상 스위치 만들기 버튼으로 가상 스위치를 생성한다. 생성 후 이름 변경 및 연결할 외부 네트워크를 선택해주자. image from hexo

가상 컴퓨터 생성

새로만들기 > 가상 컴퓨터 버튼을 클릭해 가상 컴퓨터 마법사로 가상 머신을 생성한다. 2세대로 생성해주자.

네트워킹 구성 탭에서는 금방 만들었던 가상 네트워크를 선택한다. image from hexo

가상 하드디스크 연결 탭에서는 물리적으로 어디에 저장할지 선택해준다. image from hexo

설치 옵션 탭에서는 다운받았던 CentOS 이미지 파일을 선택한다. image from hexo

보안 부팅 해제

생성된 가상 컴퓨터의 옵션 > 보안 부팅 탭에서 보안 부팅 사용 체크박스를 해제한다. image from hexo

보안 부팅은 권한 없는 펌웨어, 운영 체제 또는 UEFI 드라이버(옵션 ROM)가 부팅 시 실행되지 않도록 하는 기능인데 켜주면 오류가 발생한다.

실행

만들어진 가상컴퓨터를 실행해 CentOS 설치를 진행하면 된다! 설치가 다 되고 쉘이 보이면 네트워크 서비스를 실행한다.

$ vi /etc/sysconfig/network-scripts/ifcfg-eth0

## onboot 속성을 yes로 변경해준다.
ONBOOT=yes

$ service network start

이제 yum을 활용해 서버를 구성하는 일만 남았다.

오류

잘 실행되던 가상서버가 하이퍼바이저가 실행되고 있지 않으므로 가상 컴퓨터를 시작할 수 없습니다 라는 오류를 뱉으며 실행이 되지 않을 경우 CMD 창에서 아래 명령어를 날리고 재부팅을 한다.

bcdedit /set hypervisorlaunchtype auto

Nginx for Windows - 3. Virtual Host

· 약 2분

Nginx - 2. PHP 연동에서 이어집니다.

설정

conf\nginx.conf 파일에서 쉽게 추가가 가능하다.

nginx.conf
http {
# 기존에 있던 default 설정
server {
...
}

# 이렇게 server 구문을 하나 더 추가한다.
server {
listen 8000;
# 서버 주소
server_name local.test.com;
index index.php;
# 서버 경로
root D:/workspace/testphp/;

location / {
try_files $uri /index.php$is_args$args;
}

# php 사용을 개별로 추가해야한다.
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9123;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
...
}

위 소스는 index.php를 라우터로 사용하기 위해 설정되었으므로, 17, 22, 23줄의 구문은 없어도 된다.

Host 파일 수정

Apache Virtual Host 설정 문서의 Host 파일 수정 메뉴를 따라 진행하면 된다.

연동 확인

nginx 서비스를 재시작하고 확인한다.

Nginx for Windows - 2. PHP 연동

· 약 3분

Nginx 설치에서 이어집니다.

Nginx를 설치했으니 PHP와 연동을 해보자.

설치

이전 포스트로 대체한다. Apache버전은 상관이 없으니 x64 Thread Safe 버전으로 3번까지만 따라서 설치하면된다.

연동

nginx 설정

Nginx 폴더에서 conf/nginx.conf를 수정한다.

http {
...
server {
...
location / {
root html;

# index.php를 추가
index index.html index.htm index.php;
}
...
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
# 이 부분 주석을 모두 제거해준다.
location ~ \.php$ {
root html;

# nginx에서 9123포트를 추천한다.
fastcgi_pass 127.0.0.1:9123;
fastcgi_index index.php;

# SCIPRT를 $document_root 로 변경
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
...
}
}

php-cgi 설정

nssm을 사용하는 방법과 배치 파일을 만드는 방법이 있는데 전자를 추천한다. bat 파일은 nginx restart를 할 때마다 따로 실행해줘야한다.

다른 포스팅에는 php-cgi 서비를 cmd에서 sc create 명령어를 사용하여 등록하는 부분이 있는데 windows10 환경에서 서비스가 1053 오류를 뱉으며 죽는다. 시간 낭비하지 말자.

nssm

nginx에 지난 스텝에서 설치한 nssm을 사용한다. nginx\nssm\win64 폴더로 이동해 php 등록 커맨드를 입력한다.

./nssm.exe install php

php-cgi 경로를 선택한 뒤 아래 명령어를 Arguments 필드에 넣어준다.

## 경로를 알맞게 수정해주자.
D:\php7\php-cgi.exe -b 127.0.0.1:9123 -c D:\php7\php.ini

image from hexo

서비스를 실행한다. image from hexo

실행이 안되는 경우 arguments에 앞의 경로를 제거하고 -b 127.0.0.1:9123 -c D:\php7\php.ini 만 입력해준다.

bat

배치 파일을 만들어 nginx가 실행 되기전만 php-cgi를 킬 수도 있다.

@ECHO OFF
ECHO Starting PHP CGI...
set PATH=D:\php7;%PATH%
D:\php7\php-cgi.exe -b 127.0.0.1:9123 -c D:\php7\php.ini

위 소스의 경로를 알맞게 수정한 뒤 start-php-cgi.bat으로 저장 후 실행한다.

확인

**nginx\html\**에 index.php를 만든다.

index.php
<?php
phpinfo();

localhost:88/index.php로 접속한다. image from hexo

여담

한 방에 설치하는 방법도 있지만 현재 버전까지는 C:\말고 D:\에 php를 설치한 사람에 대한 배려는 없다. (bat 파일을 건드려봐도 dll 안에 로깅하는 부분에서 오류 발생)

Nginx for Windows - 1. Setup

· 약 2분

Windows에서 Nginx로 로컬 웹서버를 돌려보자.

설치

다운로드

Nginx 홈페이지에서 Windows 버전을 다운로드 받는다. image from hexo

압축을 풀어 원하는 위치(D:\nginx)로 옮겨주자

설정

apache, iis가 중복이 된다면 conf/nginx.conf 파일을 열어 포트 설정을 바꿔준다.

nginx.conf
http {
...
server {
listen 88; # 여기를 수정해주자.
server_name localhost;
...
}
...
}

실행

nginx.exe를 더블 클릭한다.

서비스 등록

실행은 되었지만 서비스를 등록해야 자동으로 실행되고 on/off를 관리하기가 쉽다. 다른 포스트에 있는 github의 2011년 엔진엑스 서비스 등록 소스는 찾아봐도 없길래 새로운 방법으로 등록한다.

nssm

nssm에서 서비스 등록 프로그램을 다운받는다. image from hexo

압축을 풀어주고(D:\nginx\nssm-2.24) 자신의 windows bit에 맞는 폴더에서 nssm.exe를 커맨드로 실행하면 된다.

./nssm.exe install nginx

nginx 경로를 잡아주고 Install Service 버튼을 클릭한다. image from hexo

실행

services.msc를 실행해 서비스 창을 열어 nginx를 실행한다. image from hexo

확인

image from hexo

Nginx - 2. PHP 연동으로 이어집니다.