[Ubuntu] Ubuntu에 Chromium 브라우저 설치하기[Ubuntu] Ubuntu에 Chromium 브라우저 설치하기

Posted at 2020. 9. 9. 12:51 | Posted in Linux/Ubuntu





■ 우분투에 크로미움 브라우저 설치하기




$ sudo apt-get install chromium-brower






Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

[Ubuntu] Naver Whale Broswer 설치하기[Ubuntu] Naver Whale Broswer 설치하기

Posted at 2020. 3. 12. 04:09 | Posted in Linux/Ubuntu



참고 : https://forum.whale.naver.com/topic/10763/




■ 우분투에 네이버 웨일 브라우저 사용하기




우분투 터미널 창을 실행하고 해당 포스팅의 순서대로


명령어를 차례로 입력하면 설치가 가능하다.



 $ sudo sh -c 'echo "deb http://repo.whale.naver.com/linux/ stable/" >> /etc/apt/sources.list.d/naver-whale.list'



 $ wget -q -O - http://repo.whale.naver.com/linux/stable/public.key | sudo apt-key add -



 $ sudo apt-get update





 $ sudo apt-get install -y naver-whale-stable




이제 설치된 프로그램 리스트를 확인해 보면.


Naver Whale이 추가된 것을 확인 할 수 있다.






해당 아이콘을 선택하고 실행해 하면





이제 우분투 데스크 환경에서 웨일 브라우저가 정상적으로 실행되는 것을 확인 할 수 있다.







Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

[Ubuntu] 18.04 LTS 버전에서 Flash Player 실행[Ubuntu] 18.04 LTS 버전에서 Flash Player 실행

Posted at 2020. 3. 12. 04:08 | Posted in Linux/Ubuntu




URL : https://brown.ezphp.net/entry/우분투-1804에-flash-player-설치하는-방법





■ 우분투 18.04 LTS 버전에서 플래쉬 플레이어 사용하기




먼저 의존성 패키지를 설치한다. 


PPA( Personal Package Archive ) 개인용 소프트웨어 패키지 저장소가 준비되어 있지 않다면, 아래 명령부터


준비되어 있다면 2번째 명령문부터 실행 하면 된다.



 $ sudo apt-get install software-properties-common




 $ sudo add-apt-repository "deb http://archive.canonical.com/ $(lsb_release -sc) partner"




 $ sudo apt-get update




 $ sudo apt-get install -y adobe-flashplugin browser-plugin-freshplayer-pepperflash












Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

[Ubuntu] 파이프와 리다이렉션[Ubuntu] 파이프와 리다이렉션

Posted at 2020. 1. 31. 19:08 | Posted in Linux/Ubuntu




■ 파이프와 리다이렉션




리눅스 콘솔에서 작업을 하다 보면 2개 이상의 명령어를 조합해서 원하는 작업을 하는 경우가 있다.


명령어들 각각의 특징과 기능을 정확히 이해하고 조합함으로써


새로운 명령 형태 또는 복잡한 명령 형태를 수행할 수 있게 해준다.


이렇게 여러 명령어를 조합하기 위해서는 파이프와 리다이렉션의 개념을 이해하고 있어야 된다.


두 가지 개념은 비슷하지만 다르다.




#01. 파이프



파이프는 기호 「 |  」 를 의미한다. 파이프는 앞쪽에서 수행된 명령어의 결과를 


파이프 뒤쪽 명령어에게 전달하라는 의미이다.


뒤쪽 명령어는 앞 명령어가 수행한 결과를 가지고 적절한 결과를 다시 보여줄 수가 있게 된다.



 $ ls | more 

 




위 명령어는 간단하게 ls 명령어와 more라는 명령어를 파이프로 조합한 것이다.


ls 명령어는 앞에서 자주 봤듯이 현재 디렉토리에 있는 파일과 하위 디렉토리 목록을 보여주는 명령어이다.


그리고 more라는 명령어는 화면에 출력할 내용을 커서키를 이용해서 한 줄씩 출력하게 해주는 명령어이다.


ls 명령어를 입력했는데 보여줄 내용이 많아서 한 화면에 다 담을 수 없을 경우 위쪽에 출력된 내용은 잘리게 된다.


하지만 more 명령어를 파이로 조합해서 수행하게 되면 전부 살펴 볼 수 있다.


이처럼 more라는 명령어는 파이프와 함께 자주 사용되는 명령어이다.



 $ cat test.txt | more 



위 명령어는 test.txt의 내요을 한 줄 씩 키보드 커서를 이용해서 살펴볼 수 있게 해준다.


파일의 내용을 살펴보다가 종료혀라면 키보드 q를 누르면 된다.



 $ ps -aux | grep init

 


위 예제는 ps 명령어를 이용해서 시스템의 프로세스 목록을 얻어온 후에 init이라는 단어를 찾아서


해당 라인만 보여주라는 명령어이다.


grep 역시 more와 마찬가지로 파이프와 같이 사용되는 대표적인 명령어이다.


앞쪽 명령어가 수행된 결과에서 특정 키워드를 찾아준다.


파이프는 2개 이상의 명령어를 연결하는 것도 가능하다.


계속 파이프를 이용해서 여러 명령어를 연결할 수도 있다.





#02. 리다이렉션



리다이렉션은 「 > 」 또는 「 < 」 기호를 의미한다.


표준 출력 또는 표준 입력의 방향을 바꿔줄 때 사용한다.


표준 출력과 표준 입력이 좀 생소할 수 있는데 아래 예제를 살펴보자.


 $ ls > result.txt



ls라는 명령어의 결과는 원래 화면에 그 내용을 보여주도록 되어 있다.


하지만 리아디렉션 기호 「 > 」 를 입력하면 화면에 출력해야 할 결과를 result.txt 라는 파일에 저장하게 할 수 있다.


반대의 경우( 「 > 」 기호를 사용하는 경우 )는 아래와 같다.


 $ grep init < test.txt 

 


test.txt 파일을 읽어서 init 이라는 단어가 있는 줄만 화면에 출력한다.


원래 grep 명령어는 키보드 입력이나 다른 명령어의 결과 입력을 기반으로 동작하는 명령어인데


리다이렉션을 이용해서 text.txt 파일의 내용을 입력으로 쓸 수 있게 해준다.


만약 리다이렉션을 이용하지 않고 파이프를 이용한다면 아래와 같이 해도 동일한 결과를 얻는다.



 $ cat text.txt | grep init 

 


리다이렉션은 화면에 출력할 내용( 표준 출력 ) 이나 사용자가 키보드로 입력한 내용(표준 입력)의 방향을


파일이나 특정 장치로 방향을 바꾸는데 사용된다.


파이프에 비해서 조금 어려울 수 있지만 다행이 리다이렉션은 파이프에 비해서 초보자들이 많이 쓸 일은 없다.







Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

[Ubuntu] 파일찾기 및 파일내용 검색 하기[Ubuntu] 파일찾기 및 파일내용 검색 하기

Posted at 2020. 1. 28. 14:37 | Posted in Linux/Ubuntu




■ 터미널 - 특정 파일 찾기





#01. 파일찾기 - find 명령어



특정 파일을 찾는 방법은 아래와 같다.


 $ find . -name '*.jpg'




위 명령은 현재 디렉토리와 그 하위 디렉토리를 검색해서 모든 jpg 파일을 찾으라는 명령이다.


다른 예제 하나 더 살펴보자.


 $ find / -name 'Music' -type d 

 



위 명령은 루트( root ) 디렉토리부터 검색해서 Music이라는 폴더를 찾으라는 명령이다.




그 외에도 find 명령은 매우 다양한 옵션으로 파일을 찾을 수가 있다.


예를 들어 특정 크기 이상의 파일만 찾을 수도 있다.


더 많은 옵션을 살펴보고자 한다면 help 명령을 이용하자.



 $ find -help 

 




#02. 파일찾기 - whereis 명령어


 $ whereis vi



위 결과를 살펴보면 vi 실행 파일이 어디 있는지 물어보고 있다.


whereis 명령어는 특정 실행 파일의 위치와 실행 파일과 관련된 파일들의 위치를 알려주는 명령어이다.


이 명ㄹ형어는 모든 파일을 다 찾는 명령어는 아니고 실행 파일이나 라이브러리 파일 같이


시스템 관련 디렉토리에 존재하는 파일만을 찾는다.





#03. 파일찾기 - locate 명령어


 $ locate test.txt




이 명령어는 find와 비슷하게 동작한다.


특정 파일명을 넣으면 해당 파일명이 포함된 파일들을 검색해 준다.


find보다 속도가 좀 빠르지만 다양한 옵션은 부족하다.









■ 터미널 - 파일 내용 검색하기





간혹 파일명이 아니라 파일의 내용 중에서 뭔가를 찾고 싶은 경우가 있다.


특정 키워드가 파일 내용 안에 있는지 검색할 수 있는 방법이 있다.


 $ find . -name '*.txt' | xargs grep -n test




현재 디렉토리와 하위 디렉토리에 있는 확장자가 txt인 파일들 중에서


저장된 내용중에 test라는 문자열을 포함하는 파일을 찾으라는 명령이다.


또는 아래처럼 입력해도 된다.



 $ grep -r test ./

 



현재 디렉토리와 하위 디렉토리를 검색해서 test 라는 문자열을 가지고 있는 파일을 찾으라는 명령이다.


파일의 내용을 살펴보고자 한다면 아래와 같이 입력한다.



 $ cat test.txt




파일이 너무 크다면 가장 끝에 몇 줄만 보고 싶을 수 있을 것이다.



 $ tail -n 50 test.txt




위 명령어는 끝 부분 50줄만 보여주는 명령이다.


tail 명령어 반대로는 head 라는 명령어도 있다.


파일의 맨 앞 줄 몇 라인만 보여주는 명령어이다.






Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

[Ubuntu] Ubuntu18.04 LTS 버전 Numix 테마 설치하기[Ubuntu] Ubuntu18.04 LTS 버전 Numix 테마 설치하기

Posted at 2020. 1. 23. 14:10 | Posted in Linux/Ubuntu



Windows 10이 지원 종료와 함께, 이사를 하게되면서.


집에서 놀고 있는 노트북 한대를 스마트TV 처럼 사용하고 싶다는 생각이 들어 


누믹스를 세팅하게 되었다, 생각했던 것보다 어렵지 않게 진행할 수 있었고


게임이 아닌 정말 영상감상용 정도로 쓰기에는 이제 윈도우나 맥 이외의 기기를 쓴다라는


불편함은 없었다.



■ 우분투 18.04 LTS 버전 - 누믹스 테마 설치하기




제일먼저 레파지토리에 누믹스를 다운받는다.



 $ sudo add-apt-repository ppa:numix/ppa



이후 한번 우분투를 업데이트 시켜준다.



 $ sudo apt-get update



그리고 누믹스 관련 테마들을 설치해 주면 된다.



 $ sudo apt-get install numix-gtk-theme numix-icon-theme-circle numix-icon-theme-square



 $ sudo apt-get install gnome-tweak-tool



 $ sudo apt-get install chrome-gnome-shell









■ 우분투 18.04 LTS 버전 - 누믹스 테마 적용하기





터미널을 통해 누믹스 테마의 적용이 끝났다면 이제 누믹스를 실제로 적용해 보자.


우분투 데스크탑 화면에서 우분투 소프트웨어 센터를 열고


Dash to Dock 프로그램을 실행하여 다운받는다.






설치가 완료되면 응용프로그램 리스트에서


기능개선을 실행하여 설정을 하나하나 변경해 보자.






기능개선이 실행하면 카테고리 가장 하단에 위치한


확장 메뉴에 들어가 우분투 소프트웨어 센터에서 다운받은


Dash to Dock을 켬( Open )으로 설정해 준다.






그리고 Dash to Dock의 환경설정 버튼을 클릭해 주면


아래와 가팅 설정창이 나타날 것이다.


필자는 Apple의 Mac OS X 와 같은 느낌을 만들고 싶어


화면 아래에 독을 위치 시켰다.








다시 기능개선으로 돌아와서.


모양새를 이제 Numix 테마로 탈바꿈 시켜보자.





# 실행순서

① 기능개선 카테고리에서 모양새를 선택 한다.

② 프로그램 목록에서 Numix를 선택한다.

③ 커서는 기호에 맞게 선택한다.

④ 아이콘도 통일감을 위해 몇가지 Numix ~ 중 한가지를 선택해 준다.( 해당 포스팅에서는 Numix-Circle 선택 )

⑤ 바탕화면을 원하는걸로 변경해 본다.

⑥ 잠금화면도 변경할 수 있다.






이렇게 우분투 18.04 LTS 버전에 누믹스 테마를 적용해 보았다.





Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

[Ubunt] CRON을 이용한 반복작업 수행하기[Ubunt] CRON을 이용한 반복작업 수행하기

Posted at 2019. 9. 29. 15:49 | Posted in Linux/Ubuntu




참고 : https://soooprmx.com/archives/6786

참고 : https://webdir.tistory.com/174

참고 : https://blog.naver.com/tyboss/70048237053

참고 : https://jhnyang.tistory.com/68




리눅스에 크론의 사용법에는 /etc/crontab을 직접 수정하는 방법과


crontab -e 로 등록하는 방법 두가지로 나뉘며


두 방식은 설정하는 방법과 동작이 다르다.


해당 포스팅은 /etc/crontab 에서 직접 수정하여 사용하는 방법을 다룬다.







■ 크론이란?



-. CRON은 유닉스 사용자로 하여금 특정한 명령이나 스크립트를 지정한 시간 / 날짜에 자동으로 실행하게 해주는 프로그램의 이름이다.


-. 주기적으로 시스템 백업 스크립트를 실행하는 등 시스템 관리자에 의해 많이 사용되며, 그 외에도 특정한 작업을 스케줄링하기 위해 사용될 수 있다.


-. 최근에는 자동으로 인터넷에 접속해서 이메일을 다운로드 받는 등의 용도로 쓰이기도 한다.




# 실행된 크론 이력 확인하기

 $ ps aux | grep crond




-. CRON은 일종의 데몬이다. 즉 한 번 실행되면 시스템에 상주하며 필요할 때마다 동작한다.


-. 비슷한 예로 웹서버도 일종의 데몬으로 웹페이지에 대한 요청이 들어올 때만 작동한다.


-. 데몬 크론은 crond라는 이름을 갖는데, 설정 파일 혹은 crontab에 기록된 날짜나 시간이 될 때까지 기다린 다음 동작을 시작한다.


-. 대부분의 유닉스 배포판에서 crond는 이미 포함되어 있고, 시작 스크립트에 기록되어 있다.








■ 크론 세팅하기




VIM을 사용하여 crontab을 수정한다.


 $ sudo vim /etc/crontab



위와 같이 crontab 창이 열리면


# m h dom mon dow user command 라는 주석 아래로


실행 명령들이 쭉 적혀있는 것을 볼 수 있다.


작성 방법은 아래와 같다.



 crontab 설정방법

설명

 * * * * *(실행주기) 사용자계정 명령어 /home/사용자계정/실행파일.sh

샘플

 00 * * * * saak sh /home/saak/shell_script.sh

※ 샘플의 명령은 매시 정각마다 shell_script.sh 파일을 saak 사용자의 권한으로 실행한다라는 의미이다.



위와 같이 작성해 주면 되는데.


실행주기를 뜯하는 에스터리스크( * )기호와

 

명령 권한을 가지는 사용자 계정


실행 명령어 혹은 실행될 스크립트 파일을 지정해준다.

(되도록이면 쉘 스크립트.sh 파일을 만들어서 진행을 해주는것이 좋다.)




# CRON 환경변수 설명

순 서

설    명

Minute

 · 분(Minute)을 나타내며, 몇 분에 실행될 것인지를 정의한다.

 · 00 ~ 59 사이의 숫자값을 사용한다.

Hour

 · 시(Hour)을 나타내며, 몇 시에 실행될 것인지를 정의한다.

 · 00 ~ 23 사이의 숫자값을 사용한다.

Dom

 · 일(Day of Month)을 나타내며, 몇 일에 실행될 것인지를 정의한다.

 · 1 ~ 31 사이의 숫자값을 사용한다.

Month

 · 월(Month)을 나타내며, 몇 월에 실행될 것인지를 정의한다.

 · 1 ~ 12 사이의 숫자값을 사용한다.

 · 숫자 이외의 월의 영문자를 사용할 수 있다.
   ( 1월 : jan, 2월 : feb, 3월 : mar, 4월 : apr, 5월 : may, 6월 : jun,

     7월 : jul, 8월 : aug, 9월 : sep, 10월 : oct, 11월 : nov, 12월 : dec )

Dow

 · 요일(Day of Week)을 나타내며, 실행될 것인지를 정의한다.

 · 0 ~ 6 사이의 숫자값을 사용한다.

 · 숫자 이외의 요일의 영문자를 사용할 수 있다.
   ( 일요일 : sun, 월요일 : mon, 화요일 : tue, 수요일 : wed, 목요일 : thu, 금요일 : fri, 토요일 : sat )

Usr

 · 명령을 실행할 사용자를 지정한다.

 · user-name 사용자 이름을 입력한다.

 · 되도록이면 root(관리자)보단 권한을 가지고 있는 사용자를 지정하는 것이 좋다.

Cmd

 · 실행할 명령을 작성한다.




모든 설정이 완료되면 CRON을 한번 재시작 시켜준다.


 $ sudo service cron reload

 $ sudo service cron restart










■ 크론 실행주기 사용예제




크론의 실행주기 (Minute), (Hour), (Dom), (Month), 요일(Dow)의 값을 설정할때.

몇가지 방법을 통해 실행주기를 설정할 수 있다.

먼저 CRON에서 연산기호를 사용하는 방법을 알아보자.



# CRON 연산기호 사용방법

기 호

설    명

*

 · 각 필드 자리에 에스터리스크( * ) 기호가 오면 해당 필드의 모든 값을 의미한다.
   예를 들어 Hour 필드에 *가 오면 매 시간, Month 필드는 매 일, Dow 필드의 *는 매월을 의미한다.

-

 · 하이픈( - ) 기호는 숫자와 숫자 사이에 사용되어 해당 숫자들 사이의 값을 구한다.

   예를 들어 1-10이라고 표현하면 1부터 10사이의 모든 값을 의미한다.

,

 · 콤마( , ) 기호는 지정한 값의 구분을 위해 사용된다.

 · 주로 불규칙한 값을 지정할때 사용된다.

   예를 들어 Hour 필드에 2, 3 ,5라고 입력하면 2시, 3시 5시에 실행된다.

/

 · 슬래시( / ) 기호는 연결된 설정 값 범위에서 특정 주기로 나눌 때 사용합니다.



위의 기호를 확인 했다면 아래의 예를 살펴보도록 하자.



① 9시부터 17시 사이의 시간에 매 15분간격으로 실행

실행주기

      */15    9-17    *    *    *



② 매월 1~15일 20~25일 그리고 17일의 정오에 실행

실행주기

     *    12    1-15,17,20-25    *    *



③ 10일, 12일, 14일, 16일 17시마다 실행

실행주기

     *    17    10-16/2    *    *



④ 매일 평일 오후1시에 실행

실행주기

     *    13    *    *    mon,tue,wed,thu,fri
     *    13    *    *    1,2,3,4,5
     *    13    *    *    1-5



⑤ 매달 16일이나, 매주 월요일 1시에 실행

실행주기

     *    1    16    *    *
     *    1    *    *    mon

※ 해당 예제와 같이 요일, 날짜등이 동시에 설정된 경우에는 두 조건 중 한 조건을 만족하면 실행된다.
   매달 16일과, 월요일이라는 두개의 설정을 하나로 압축한 예제이다.









Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

[Ubuntu] 우분투 타임존(Timezone) 변경하기[Ubuntu] 우분투 타임존(Timezone) 변경하기

Posted at 2019. 7. 30. 15:10 | Posted in Linux/Ubuntu




참고 : https://twpower.github.io/95-set-ubuntu-timezone




■ 우분투 시간대 설정 변경하기




날짜 확인


 $ date

 



지원하는 날짜셋 확인


 $ ls /usr/share/zoneinfo/

 



시간변경


 $ sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime

 



날짜 재확인


 $ date

 








Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

[Ubuntu] CURL 설치하기[Ubuntu] CURL 설치하기

Posted at 2019. 4. 23. 10:47 | Posted in Linux/Ubuntu




참고 : https://zetawiki.com/wiki/우분투_curl_설치

참고 : https://www.lesstif.com/pages/viewpage.action?pageId=14745703




■ 우분투에 CURL 설치하기




-. curlcommand linedata transfer tool 이다.

-. DOWNLOAD / UPLOAD 모두 가능하다.

-. HTTP / HTTPS / FTP / LDAP / SCP / TELNET / SMTP / POP3 등 주요 프로토콜을 지원한다.

-. LINUX / UNIX 계열 및 Windows 등 주요한 OS에서 구동되므로 여러 플랫폼과 OS에서 유용하게 사용할 수 있다.

-. libcurl 이라는 C 기반의 library가 제공되므로 C / C++ 프로 그램 개발시 위의 protocol과 연계가 필요하다면 libcurl을 손쉽게 연계할 수 있다.

-. libcurlPHP, RUBY, PERL 및 여러 언어에 바인딩 되어 있으므로 사용하는 언어나 개발 환경에 맞게 libcurl을 사용할 수 있다.



우분투에 curl을 설치해 보자.



 $ sudo apt-get install -y curl




설치가 완료되었다면 아래와 같이 설치된 버전을 확인 함으로서


정상적으로 설치되었는지 살펴보자.



 curl --version



명령

설   명

-f

 · HTTP 요청 헤더의 contentType을 multipart/form-data로 보낸다.

-s

 · 진행 과정이나 에러 정보를 보여주지 않는다.(–silent)

-S

 · SSL 인증관련

-L

 · 서버에서 301, 302 응답이 오면 redirection URL로 따라간다.

 · apt-key : apt가 패키지를 인증할 때 사용하는 키 리스트를 관리한다.

               이 키를 사용해 인증된 패키지는 신뢰할 수 있는 것으로 간주한다.

 · add 명령어는 키 리스트에 새로운 키를 추가하겠다는 의미이다.




CURL을 이용해 Node.js를 다운받아보자.



$ curl -fsSl https://deb.nodesource.com/setup_버전 숫자.x | sudo -E bash -







Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

[Ubuntu] 아파치 Virtual Host 설정하기[Ubuntu] 아파치 Virtual Host 설정하기

Posted at 2019. 3. 25. 02:31 | Posted in Linux/Ubuntu






※ 해당 포스팅은 Ubuntu 18.04 LTS, 버전에서 작업을 진행하였습니다.




참고 : https://webdir.tistory.com/178

참고 : https://webdir.tistory.com/196

참고 : https://seyul.tistory.com/28





 $ sudo a2enmod rewrite

 








■ 버츄얼 호스트란?



Web Server에는 기본적으로 존재하는 Host가 있으며, 이를 Main Host라고 합니다.

하나의 Web Server에는 Main Host 외에 별도의 디렉토리를 가진 여러개의 Host를 설정하여


버츄얼 호스트(virtualhost)를 설정을 통해 1개의 서버에서 여러개의 웹사이트를 운영할수 있다.






■ 버츄얼 호스트 설정하기





가장 먼저 버츄얼 호스트를 사용하여 연결할 작업 디렉토리를 하나 만들어 보자



 $ mkdir /home/사용자계정/virtual




먼저 폴더를 하나 새로 만든다.


폴더를 생성하는데 성공했다면




 $ sudo chmod -R 755 /home/사용자계정/virtual




해당 폴더를 사용하여 접근권한을 좀 풀어주으로서


외부(웹브라우저를 통한 사용자의 접속)을 허가해 준다.








우분투에 설치한 Apache의 설정들 /etc/apache2/ 위치에 존재하고 있다.


이중 버추얼 호스트를 추가하기 위해서는 sites-available, sites-enaabled 디렉토리의 새로운 설정파일을 추가해 주어야 한다.


먼저 기본 설정파일인 000-default.conf 파일을 한번 살펴보자.




 $ cat /etc/apache2/sites-available/000-default.conf





아파치를 기본적으로 설치하게 되면 기본적인 작업 디렉토리는 /var/www/html 경로에 설정되는데.


위에서 살펴본 000-default.conf 내용에 DocumentRoot /var/www/html이 설정되어 있는 기본 설정인 것을 알 수 있는데


이제 버추얼 호스트를 설정하기위해 000-default.conf와 같은 설정 파일을 하번 만들어 보자



 $ sudo vim /etc/apache2/sites-available/virtual-custom.conf

# 아파치가 80포트로 들어오는 모든 IP주소에 대해 가상호스트의 요청을 처리

# DHCP에 의해 동적 할당된다면 IP 주소가 수시로 변경될 수 있기 때문에 *를 사용

<VirtualHost *:80>

# 클라이언트에게 보여주는 호스트 이름을 지정한다.

ServerName virtual.com

# 호스트의 추가적인 별칭을 지정한다. 이름을 줄때 와일드카드 문자 *와 ?를 사용할 있다.

ServerAlias test.virtual.com *.virtual.com

# 웹문서 로딩시 에러가 발생한 경우 에러페이지에 나타나는 관리자 메일 주소이다.

ServerAdmin saak@wickedmiso.com

    

# 서버의 웹 문서가 있는 경로를 지정한다. 경로의 마지막에 "/"를 추가하면 안된다.

DocumentRoot /home/wicked/receive

    

# <Directory> ~ </Directory> 지시자는 지정한 디렉토리 이하의 모든 웹 문서들에 대하여

# 어떤 서비스와 기능을 허용 / 거부할 것인지를 설정하는 매우 중요한 지시자이다.

# 현재 루트( / ) 디렉토리에 대해 심볼릭 링크를 허용하고 .htaccess 파일의 사용을 거부한다.

# <Directory> 지시자의 설정은 개인에 따라 다르니 각자 목적에 맞게 설정해야 한다.

<Directory /home/wicked/receive>

    

# ① Options 지시자는 지정한 디렉토리 이하에 모든 파일과 디렉토리들에 적용할 접근제어를 설정한다.

Options Indexes MultiViews

            

② AllowOverride 지시자는 어떻게 접근을 허락할 것인가에 대한 설정한다.

AllowOverride None

            

 Require 지시자는 서버의 특정 영역에 접근할 수 있는 사용자를 지정하여 권한을 부여한다.

Require all granted

</Directory>

</VirtualHost>





① Options


Options 지시자는 지정한 디렉토리 이하에 모든 파일과 디렉토리들에 적용할 접근 제어를 설정한다.

디렉토리 목록을 보여줄지, CGI를 허용할 것인지 등드의 것들의 설정을 여기서 하게 된다.


가상호스틀 사용하는 경우나 하위디렉토리에서 위와 같은 루트(상위 디렉토리)에 대한 설정이 어떻게 적용되어 있던간에 가상호스트 안이나 하위 디렉토리에 다시 Options 값을 지정할 수 있다.

이때 상위 디렉토리의 다른 옵션은 변경하지 않고 특정 옵션만 제거하거나 추가할 때 + 나 - 를 Options 값 앞에 붙여 사용하기도 한다.


Options -FollowSymLinks는 상위 디렉토리 설정에서 허가된  FollowSymLinks를 제거하게 되며, Options + Indexes는 상위 디렉토리 설정에 없는 Indexes 설정을 추가한다.



 설정값

 기능

 None

 · 모든 허용을 하지 않는다. 즉 None 설정으로 이외의 다른 설정들은 모두 무시한다.

 All

 · MultiViews를 제외한 모든 옵션 설정을 허용한다.

 · Options 값이 공백일때도 All과 같다(Options (없음))

 Indexes

 · 웹 서비스의 디렉토리 접근시에 DirectoryIndex에서 지정한 파일(Index.html 등)이 존재하지 않을 경우

   디렉토리내의 파일 목록 리스트를 웹 브라우저로 보여준다.

 · 서버 보안을 위해 실 서비스에서는 사용하지 않는것이 좋다.

 Includes

 · SSI 사용을 허옹하는 설정이다.

 · 단 mode_include.c 라느 모듈은 반드시 필요하므로 기본적으로 로드되어 있다.

 IncludesNOEXEC

 · SSI사용은 허용되지만 #exec 사용과 #include는 호용되지 않는다.

 · 즉 SSI를 사용하면서 시스템에 위함헌 SSI의 실행태그는 허용하지 않는다.

 FollowSymlinks

 · 심볼릭 링크를 허용한다.

 · 이 옵션을 지정하면 웹 브라우저에서 링크 파일의 경로까지도 확인 할 수 있게된다.

 · 보안상 이 값은 설정하지 않는 것이 좋다. 

 ExecCGI

 · PERL등과 같은 CGI 실행을 허용하기 위한 설정이다.

 · 원래는 아파치에서 CGI 사용은 ScriptAlias로 지정된 위치에서 사용하는 것이 기본이다.

 · 하지만 ScriptAlias가 지정되지 않은 디렉토리에 이 옵션이 지정되어 있다면

   지정된 디렉토리내에서는 CGI 사용히 허용된다.

 · 물론 이 경우에도 "AddHandler cgi-script" 지시자에서 정의한 확장자만 유효하다.

 MultiViews

 · 웹 브라우저의 요청에 따라 적절한 페이지를 보여준다.





② AllowOverride


AllowOverride 지시자는 어떻게 접근을 허락할 것인가에 대한 설정이다.


특정 디렉토리에 대한 방문자들의 접근방식을 어떤 박식으로 인증하여 허용할 것인가의 문제라고 할 수 있다.


AllowOverride에서 설정하는 값들은 중복해서 설정될 수 있으며 그때마다 가장 최근에 설정된 값이 항상 우선적용된다.



설정값

기능

 None

 · 이 값이 설정되면 AccessFileName에 지정된 파일을 엑세스 이전파일로 인식하지 않는다.

 · 즉 AccessFileName의 값이 대부분 .htaccess 이므로 이를 무시하게 된다.

 · 아주 제한적인 접근만을 허용할때 사용하는 값이다.

 All

 · 이전의 인증방식에 대하여 새로운 접근인증방식을 우선 적용하도록 Override를 허용한다.

 AuthConfig

 · AccessFileName 지시자에 명시한 파일에 대하여 AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile,

   AuthName, AuthType, AuthUserFile, require 등과 같은 클라이언트 인증지시자의 사용을 허용한다.

 · 즉 htpasswd 유틸리티를 이용하여 특정 디렉토리의 접근은 AccessFileName에 명시한 파일(.htaccess)로

   제어하고자 할 때에 해당 디렉토리내에 이 값을 주로 사용한다.(디렉토리 인증설정)

 FileInfo

 · AccessFileName 지시자에 명시한 파일에 대하여 AddEncoding, AddLanguage, AddType,

   DefaultType, ErrorDocument, LanguagePriority 등과 같은 문서 유형을 제어하는 지시자 사용을 허용한다.

 Indexes

 · AccessFileName 지시자에 명시한 파일에 대하여 AddDescription, AddIcon, AddIconByEncoding,

   AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions,

   ReadmeName 등과 같은 디렉토리 Indexing을 제어하는 지시자 사용을 허용한다.

 Options

 · AccessFileName 지시자에 명시한 파일에 대하여 Options 그리고 XBitHack등과 같은

   특정 디렉토리옵션을 제어하는 지시자 사용을 허용한다.

 Limit

 · AccessFileName 지시자에 명시한 파일에 대하여 allow, deny, 그리고 order 등과 같은

   호스트 접근을 제어하는 지시자 사용을 허용한다.





③ Require


설정값

 all granted

 · 모든 접근에 대해 제한을 두지 않는다.

 all denied

 · 모든 접근을 제한한다.

 env env-var

 · 해당 환경 변수만 접근을 허용한다.

 method http-method

 · 해당하는 HTTP 메소드(GET / POST등)만 허용한다.

 expr expression

 · 표현식이 참일때만 접근을 허용한다.

 user userid

 · 사용자 아이디에 해당할때만 접근을 허용한다.

 group group-name

 · 그룹에 해당하는 그룹만 접근을 허용한다.

 valid-user

 · 허가된 사용자만 접근을 허용한다.




와 같이 설정을 해준다. /etc/apache2/sites-enaabled/ 경로에 설정한 파일의 심볼릭 링크를 생성해 준다.


ln -s /etc/apache2/sites-available/원본파일의 경로 /etc/apache2/sites-available/생성할 심볼릭 링크 경로



 $ sudo ln -s /etc/apache2/sites-available/virtual-custom.conf /etc/apache2/sites-enabled/virtual-custom.conf

 $ ls /etc/apache2/sites-enabled/ -al



위와같이 virtual-custom.conf 심볼릭 링크가 생성된 것을 확인 할 수 있다.


이제 아파치를 재시작 하여주자



 $ sudo service apache2 restart



아파치를 재시작하고 브라우저를 통해 설정한 ServerName 값으로


접속이 되는 것을 확인하면 모든 설정이 완료된 것이다.








Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기