Linux/CentOS2019. 10. 8. 23:07

# vi /usr/local/apache/conf/extra/httpd-default.conf

--------------------------------------------------------------------------------------------------------

#
Timeout 60

#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
#KeepAlive On
KeepAlive Off

#
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
#MaxKeepAliveRequests 100
MaxKeepAliveRequests 0

#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 5

:

--------------------------------------------------------------------------------------------------------

keepalive timeout 설정

1. 개요
   apache 의 keep alive 옵션을 on으로 하면 클라이언트와 apache 간의 tcp 커넥션을 keepalivetimeout 동안 유지하게 된다. keep alive timeout 설정과 관련하여 고려할 사항들을 정리하였음. 

2. 정의
KeepAliveTimeout
Amount of time the server will wait for subsequent requests on a persistent connection

3. 고려사항
  1) 사용자의 요청량 및 사용자수
     - 인터넷망에서 일반 사용자를 대상으로 접속자 수가 많고  요청량이 많은 웹서비스를 제공 경우,
       keep alivetime을 짧게 가져가는 것이 적절하다. (3초~5초)
     - 60초등과 같이 길게 가져갈경우에는 불필요한 tcp 세션을 유지하게 되고 웹서버의 메모리 사용량이 높아지게 되어 피크시간대에 갑자기 서비스가 안되는 등의 현상이 발생할 수 있다.
     - 폐쇄망에서 내부 사용자를 대상으로 접속자수가 적고, 요청량이 적은 웹서비스를 제공하는 경우,
       keepalivetimeout 시간을 30초~60초 길게 잡는 것이 성능상 유리하다.  
  2) 사용자의 요청간의 간격(think time)
     - 사용자가 한번 요청을 보내고, 다음번 요청을 보내는 간격을 think time이라고 한다. 이 think time과 keep alive time은 어느정도의 갭이 있어야 한다.
       실제 사이트에서 클라이언트 로그상으로는 웹서버로 요청을 보냈는데, 웹서버에는 요청 받은 로그가 없으며, 사용자 요청을 처리하지 못하는 문제가 1주 또는 2주간격으로 불규칙적으로 발생을 하는 경우가 있었다.
       원인은 keepalivetimeout 시간이 15초로 되어 있었는데, 사용자가 해당 화면에서 약 15초 정도 생각하고 요청을 보냈기 때문이었다.
       클라이언트 요청 패킷이 보내질때,  웹서버에서는 커넥션을 끊는 Fin 패킷이 보내지면서, 요청패킷이 웹서버로 전달이 되지 않고,  웹서버에 로그도 남지 않았던 것이다. 이후 keepalivetime을 길게 조정하여 문제를 해결하였다. 

[출처] [apache] keepalive timeout 설정에 대해서..|작성자 우보

Posted by iWithJoy
Linux/Android2016. 12. 30. 10:56
"현재 시간부터 한 달 이전 까지만 동기화 된다면 핸드폰 시간을 과거 시간으로 돌리면 되지 않을까?" 라는 생각에 도전해보았습니다.
 
---------------------------------------------------------------------------
 
1) 핸드폰을 비행중모드로 전환합니다.(시간을 동기화 하는 것을 막기 위해서입니다.)
 
2) '설정'을 들어간 뒤 '날짜 및 시간'을 선택하고 '자동'을 체크 해제 해줍니다.
 
3) '날짜 설정'에서 날짜를 원하는 과거의 시점으로 바꿉니다(구글 캘린더 2010.4.5 이후 일정을 얻고 싶다면 2010.4.2로 바꿔줍니다.)
 
4) '설정'을 들어간 뒤 '계정 및 동기화'를 선택해 줍니다. '배경데이터' '자동동기화' 체크 해제 해줍니다.
 
5) '설정'을 들어간 뒤 '응용프로그램' - '응용프로그램관리' 선택 후 메뉴 버튼울 눌러 '필터'-'모두' 클릭합니다.
 
6) '응용프로그램관리'에서 '일정' 클릭 후 '데이터 지우기'를 선택합니다. 같은 방법으로 '일정저장'도 데이터를 지워줍니다.
 
7) 와이파이를 킵니다.
 
8) '설정'을 들어간 뒤 '계정 및 동기화' 에서 '계정관리' - '일정동기화' 를 클릭합니다. (혹시 모르니 여러번 동기화 클릭해보았습니다.)
 
9) 확인해봅니다.
 
10) 성공! (이후 비행중 모드 해제해 주시면 자동으로 시간 돌아옵니다^_^ 날짜 및 시간에서 자동 선택해주셔도 됩니다.)

출처: http://www.clien.net/cs2/bbs/board.php?bo_table=lecture&wr_id=63127


'Linux > Android' 카테고리의 다른 글

android-x86 관련  (0) 2011.07.06
Posted by iWithJoy
Utilities2016. 1. 31. 11:28

윈도우7 usb 부팅디스크 만들기 윈도우7 usb 만들기 울트라 iso 부팅 usb 만들기 안내합니다.

안녕하세요 오늘은 windows7 설치용 USB를 만드는 방법을 설명합니다.
자주 사용하다보면 이런 저런 이유로 PC를 초맷하고 windows7을 새로
설치 해야할 일이 많아지죠..요즘은 CD를 잘 사용 안하고 대신에
주로 USB를 많이 사용하시죠. 그래서 Win7설치를 위한 USB를
만들어 보자구요..^^;

usb로 설치 디스크를 만드시려면 해당 작업을 해주는 프로그램을 찾아야 합니다.

마이크로소프트 스토어에서 제공하는 ISO 파일을 USB에 굽는(?) 프로그램을 공개했네요.

마이크로소프트에서 제작한 윈도7 USB 설치 툴 입니다.
여태껏 xp, vista, 7 을 usb로 설치하면서 타회사의 포맷툴과 부팅툴을 사용하여 설치했습니다만...
드디어 마이크로소프트 스토어에서 공식적으로 iso파일을 usb에 구워 설치할 수 있게끔 프로그램을 제공하기 시작했네요. (DVD에도 가능)
이게 다 현재 윈도우 7 다운로드 형식으로 제품을 판매해서 그런거라고 생각합니다. (ESD)
아무튼 이제 이렇게 해서 ODD는 점점 사라지게 되지 않을까 생각합니다.;;
이 첨부파일 툴을 사용하면 부팅 가능한 윈도7 USB 드라이브를 쉽게 만들 수 있기 때문에 ODD가 없는 유저들을 위하여 편하게
OS 설치를 할 수 있다고 하는데요.
ODD 없이 USB로 윈도우 7 OS 설치시 도움이 될까 하여 링크와 함께 첨부 파일 첨부합니다.
다운받으시고 설치하시면 시작 모든 프로그램에 ndows7 USB DVD다운로드 도구 아이콘이 생깁니다
"Windows7 USB DVD다운로드 도구"
요걸 실행하시면 1~4단계별로 대상파일의 경로와 만들고자하는 usb드라이브를 지정해
주시기만 하면 됩니다.

 

 

 

 

 

 

 

 

 

윈도우7 usb 부팅디스크를 만들기 위해서는
     1. 4G 이상의 usb 메모리(SAN 디스크 제외)
     2. Windows 7 iso 파일

준비


usb는 부팅디스크 만드는중 포맷이 되므로 백업 해놓기

///// 윈도우 지원 프로그램 설치

먼저, iso 파일을  usb로 복사하기 위해서 마이크로소프트에서 지원하는 프로그램을 설치해야 합니다.

 

window7-usb.zip

 


      (첨부파일 window7 usb)
첨부파일을 다운 받아 압축을 풀고 실행하여 설치 합니다.

 

///// 프로그램 실행

다음, 설치가 완료되면 usb를 컴퓨터에 연결하고 프로그램을 실행합니다.
      (실행 windows 7 usb DVD 다운로드 도구)

 

 

 

windows 7 usb DVD 다운로드 도구
1/4단계 : ISO 파일 선택 - 찾아보기

 


windows 7 usb DVD 다운로드 도구
2/4단계 : 미디어 유형 선택 - USB 장치

 

 

windows 7 usb DVD 다운로드 도구
3/4단계 : USB 키 삽입 - 연결해둔 usb가 맞는지 확인한 후 - 복사 시작

 

 

 

windows 7 usb DVD 다운로드 도구

4/4단계 : 부팅 가능한 USB 장치 만들기

... 상태 : 포맷하는 중...
... 상태 : 파일을 복사하는 중...
... 상태 : 백업이 완료되었습니다. ( 부팅가능한 USB 장치를 만들었습니다.)

'X' 로 닫기

 

 


컴퓨터에 따라 다르지만 퀘드 2.6기가에 컴퓨터에 USB 32GB로 만들었을때 약 5분 정도 걸립니다.

 


확인 - 내컴퓨터에 들어가 보면 이동식 미디어 장치가 만들어져 있습니다.

 


//////// BIOS 설정


...  BIOS설정은 컴퓨터마다 다 다르기때문에 저는 제컴퓨터를 기준으로 하였습니다.

 

만든 usb 부팅디스크로 설치할 컴퓨터에 연결하고
컴퓨터를 켭니다.
F2키를 눌러 BIOS 환경 설정 화면으로 이동
부팅메뉴로 이동 - 부팅 순위 정하기
하드디스크-JetFlash Trascend 32GB를 맨 위로 이동
F10 저장하고 종료

이제 USB로 부팅하여 윈도우 설치 하면 됩니다.

 

 

 

 

 

 

 

 

 

 

 

 

UltraISO 윈도우7 usb 부팅디스크 만들기

 

윈도우 부팅디스크를 만들때 유용한 프로그램입니다.

아 참고로 포터블이에요 설치 필요없고 바로실행하면
댐니다 ^

너무나 유명한 프로그램이니 설명은필요없을것같네요
UtraISO 로 USB 부팅디스크도 만들수있어요.
정품 windows7 cd에서 iso파일 추출하는 방법 울트라iso 가 간편합니다.
iso로 만드는 것은 cd/dvd 이미지를 하나의 파일로 만드는 것입니다.
iso를 usb에 넣어서 구동 시키려면 가상 드라이브를 실제 cd처럼 인식 시키는 프로그램이 있어야 합니다.
UtraISO 는  CD에서 ISO파일을 추출할수있고 추출한 파일을 부팅디스크로 만들수 있는 프로그램입니다.
usb 메모리에 각종 iso파일을 올려서 부팅할 수 있도록 만들어 주는 툴입니다.

혹시 원하시는 분이 있을지도 몰라서~~ 훗 ㅋㅋ 유용하게 사용하세요 ^^

 

 

Portable_UltraISO_Premium_v9.3.6.2750.zip

 

 

준비물은 Win7 설치용 USB를 만들어 주는 프로그램 - UltraISO

 

그리고 사용할 USB(최소 4GB 이상) 1개하고 Windows7.ISO파일이 필요합니다.

 

이렇게 준비가 다 되었으면 이제 UltraISO프로그램을 실행시키고 다음과 같이

진행하시면 됩니다.

 

1. UltraISO프로그램을 실행하고 파일-열기를 하고 준비한 win7.iso파일을 선택합니다.

 

 

 

2. 이제 USB를 만들 차례입니다. 메뉴에서 부팅-디스크 이미지 기록을 클릭합니다.

 

 

 

3. 이제 win7.iso를 기록할 USB만 선택을 해주면 됩니다.

 

 

 

 4. 새 창에서 '쓰기-예(yes):를 선택하고 기다리면 완성이 됩니다. 간단하죠^^;

 

 

 

이렇게 하면 USB 부팅 디스크 가 만들어 집니다.

이제 부팅 하고 BIOS 들어가서 부팅순서를 USB 하고 부팅하면 WINDOWS7 설치화며이 뜰거에요..

WINDOWS7 설치는 인터넷 참고 해주세요...WINDOWS7 설치는 간단해요. 파티션을 나눈후 윈도우 XP 설치하는것처럼 하시면 됩니다.

 

 

 

 

윈도우즈8이 출시되었다고  해서 평가판을 먼저 다운로드 받아서 사용해 보았습니다.
 
사용컴은  비스타 설치된  노트북으로 비스타  돌아가기에  좀 하드웨어가 딸리지요.
그래서  윈도우즈8일 좀 빠르다고 검색 사이트에 많이 올라와  있어서  평가판 다운로드  후 DVD 에  구워서 설치했습니다.
USB가 없어서 DVD로....
평가판이라  하드디스크  빈 파티션에 설치하여 실행해  보니 빠른데요.  체험지수는 2.2 로 나와도 빠르게  잘 돌아가네요.
타일이란  개념이 스마트폰의 앱, 윈도우즈의 프로그램이라  생각하면  되겠네요.
기존 사용하던 프로그램도 거의 모두 설치가 되는군요.
그래서 정품  구입 이벤트기간에 온라인으로  구입하여 다운로드 했습니다.
다운로드 시작 몇 십분이  지났는 데도 0% 진행....ㅋ~  왜  이리  느리지.....인터넷  속도 검사할려니  인터넷 접속 사이트 비정상 또는 접속 불가로 인터넷 속도  검사 불가네요....  좀  기다리니 느리게  1%..2% 올라가고 다운로드  예정시간이 무려 11시간~15시간으로 나오군요.
노트북  켜놓고 나갔다오러니 그제서야 다운로드 속도가 갑자기 빨라지더니 몇 십분만에 다운로드  완료!
USB가 없어서  ISO  파일로 저장하고 DVD에 구웠습니다.
기존 평가판이 설치된 파티션을 포맷하고 멀티부팅 화면  수정했습니다.
DVD 넣고 재부팅하니  에러.....
비스타로 부팅....DVD 내용보니  아무것도 없습니다.
다운로드 된 폴더 ESD 찾아서  숨김 및 시스템  속성 제거하고 DVD 굽는 프로그램으로  파일들을 넣어서 DVD 만들었습니다.
다시 DVD 넣고 재부팅하니 그냥  비스타로 부팅되네요.
그러고 보니 DVD 부트이미지가  없나봐요.
윈도우즈8 설치 도우미 실행하여  다시 ISO 파일로 저장하고 DVD 구웠습니다.
DVD 확인하니  파일,폴더  보입니다. 이전에는 숨김,시스템 속성 때문에  아무것도  안 보였나봅니다.
DVD 넣고 다시 부팅하니  설치화면으로  넘어가네요.
기존 설치된  프로그램  유지하기  위하여 옵션에 업그레이드 선택하니 윈도우즈  부팅후에 사용하라고....
ㅋㅋ....다시  비스타로 부팅하고 설치할려니 업그레이드 옵션에 윈도우즈 설정 및 개인 설정 유지로 하면 호환되지 않는 프로그램으로 설치가 안 되네요.
다른 옵션은 기존프로그램 다시 설치해야 하는 데....개인 설정에서도 중요 파일이 없어서 그냥 클린 설치로....
다시 부팅.....
사용자 설치로 진행....파티션 삭제 만들고 포맷 후 진행했습니다.
앱등을  사용할려면 마이크로소프트 계정이 있어야 합니다.
기존 계정이 있어서 그것으로 진행하여  설치하니  체험지수 2.0 으로 나오네요. 평가판보다  더 낮게 나옵니다.
기존 프로그램 다시 설치 다 됩니다.
사용해 보니 완벽하지 않네요. 버그 들이 있어요.
비스타 보다 윈도우즈8이 버벅거림 없이 잘  돌아가요.
타일에 있는 앱이란 것은 좀 느려요.  같은 프로그램이라면 그냥 데스크톱을 이용하는 게  좋아요.
기존 버젼과 비교하면 가젯,윈도우즈  미디어  센터 등이 없어요.
아울로 동영상 재생 앱은 자막이 안 나와요.
한국 스토어에는 사용할  만한 앱이  별로 없어요.
이미지  보기가  안 됩니다.
제어판,시작 메뉴 있습니다.
시작 메뉴란게 타일이  나와있는 게  그거예요.
타일에서  데스크톱을 클릭하면 기존 윈도우즈 화면으로 실행됩니다.
데스크톱에서 마우스를 화면의 사방 사각에 갔다놓으면 무엇이  나옵니다.
열려있는타일화면이면 좌측아래는 시작, 현재화면이 타일화면이면  좌측아래는 타일, 좌측위는 열러있는 타일,  우측위아래는  charm bar 라는 게  나옵니다.
charm bar 에서 "설정" 클릭하면 아래 '전원" 을 클릭하면 '절전','시스템  종료','다시  시작' 나옵니다.
charm bar에 시작 버튼이 있습니다.
타일에 따라서 charm bar에  표시되는 버튼이 달라집니다.
타일화면에 PC 관리도구 타일이 나오게 할려면  charm bar ->  설정 ->  타일 -> PC 관리 도구 표시 를 " 예"로 선택하면
타일화면에  추가로 PC 관리도구 타일이  나옵니다.
타일화면의 우측아래 '-' 를  클릭하면 타일화면이 작게 나오며 보기를 원하는 쪽에  마우스 클릭하면 타일화면이 이동합니다.
charm  bar 에서  마우스가 벗어나면 charm bar  가 사라지는 데 이벤트가 있을 때까지 보이게 할려면 키보드의  시작+C 를 눌러주면 됩니다.
타일의  종료는  마우스를 드래그해서 아래로  내리면 됩니다.
데스크톱에서 좌측아래의 시작을 클릭하면  타일화면으로 나오며,  마우스를 좌측위로 올린 후 타일화면이  나올때 아래로 드래그하면 좌측에 열려있는 타일을 선택하여 이동 할 수 있습니다.
마우스  오른쪽  클릭하면 위 아래  어플바가  나옵니다. 타일이  스마트폰의  어플이라 생각하시면  됩니다.
후기들을 보면  부팅이 빠르다고 하는 데 그건 별로 못느끼겠습니다.
참. 사용되는 사양중에 체험지수가 가장 낮은 것은 내장그래픽카드인데   인텔GMA950 입니다.
RAM은 2.5GB 이고 화면은 1280 X 800 으로 앱사용시  화면이 잘리는 데 아래  스크롤바나 마우스로 화면을 이동시키면 됩니다.
윈도우즈 8  설치후  비스타  환경보다  노트북 성능이 항샹된  느낌이네요.
윈도우즈7 사용자라면  윈도우즈8로  갈아 탈지를 좀  생각해 보시는 게....아직은 윈도우즈8이  버그가 있는  둣 하네요.
멀티부팅으로  설치하심이.....
그리고 로컬계정을 만들 수 있는 데 로컬계정으로 로그인하면 앱이용시 마이크로소프트 계정으로 로그인해야 하는 경우가 있습니다.
하루 사용해  본 후기입니다. ~~~~
이미지 없이 올려서  좀 이해가  될라나?....
---- ps-----
스토어에 가서  윈도우즈8  튜토리어 설치하면 윈도우즈8 사용법 나옵니다.  평가판도 다운로드 가능해요.
인터넷 익스플로러 10  이라  웹페이지가 정상적으로 작동 안 하는 경우도  있네요.
아직까지 무슨 문제가 있는 지 윈도우8 문제로 다시 부팅되는 경우가 있습니다.
계산기, 윈도우즈  미디어 플레이어, 캡쳐 도구 없는 줄 알았는 데  "앱 모두 보기" 클릭하면  다 있네요



 

 

출처: http://imtony.tistory.com/468

'Utilities' 카테고리의 다른 글

무료로 배포되는 한글 폰트 모음  (0) 2011.07.07
오픈소스 프로젝트 모음  (0) 2011.07.01
Freeware WinUtil  (0) 2011.06.28
불법 소프트웨어 점검 및 대비방법  (0) 2011.06.27
Total Commander용 플러그인 452종  (0) 2011.06.15
Posted by iWithJoy
Office2014. 12. 5. 18:20

Outlook의 보안센터의 프로그래밍 방식 액세스 보안이 비활성화 상태인 경우, 다음은 레지스트리를 편집하여, 옵션을 변경하는 방법입니다.

키 또는 값이 존재하지 않을 경우, 새로 생성하여야 합니다.


Outlook 2010

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Outlook\Security  
DWORD: ObjectModelGuard
Value: 2

HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\14.0\outlook\security  
DWORD: PromptOOMSend
Value: 2

DWORD: AdminSecurityMode
Value: 3

 


Outlook 2007

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Outlook\Security  
DWORD: ObjectModelGuard
Value: 2

HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\12.0\outlook\security  
DWORD: PromptOOMSend
Value: 2

DWORD: AdminSecurityMode
Value: 3


Posted by iWithJoy
JAVA2014. 5. 13. 20:42

출처: http://webdesign.about.com/od/localization/l/blhtmlcodes-math.htm

 

HTML Codes for Mathematics

Special Characters Used for Math on Web Pages

Mathematics includes a lot of special characters that are difficult to type on most standard keyboards.

There are the basic symbols like +, −, ×, and ÷.

But there are also more interesting ones like: ∑, %, and even infinity ∞.

The following list includes the HTML codes for mathematics characters not in the standard character set.

Not all browsers support all the codes, so be sure to test your HTML codes before you use them.

Some Mathematics characters are part of the Unicode character set,

so you need to declare that in the head of your documents:

<meta http-equiv="content-type" content="text/html;charset=utf-8" />

You should also get in the habit of declaring the same content type at the top of your CSS documents:

@charset "utf-8";

Display Friendly Code Numerical Code Hex Code Description
  &#8722; &#x2212; Minus Sign
+ + &#43; &#x2B; Plus Sign
± &plusmn; &#177; &#xB1; Plus or Minus Sign
× &times; &#215; &#xD7; Multiplication Sign
÷ &divide; &#247; &#xF7; Division Sign
% % &#37; &#x25; Percent Sign
  &#137; &#x2030; Per Mille Sign (per thousand)
= = &#61; &#x3D; Equal Sign
  &#8800; &#x2260; Not Equal To Sign
  &#8776; &#x2248; Approximately Equal Sign
  &#8801; &#x2261; Identical To Sign
< &lt; &#60; &#x3C; Less Than Sign
> &gt; &#62; &#x3E; Greater Than Sign
  &#8804; &#x2264; Less Than or Equal To Sign
  &#8805; &#x2265; Greater Than or Equal To Sign
  &#8734; &#x221E; Infinity Sign
  &#8539; &#x215B; One Eighth Fraction
¼ &frac14; &#188; &#xBC; One Quarter Fraction
  &#8540; &#x215C; Three Eighths Fraction
½ &frac12; &#189; &#xBD; One Half Fraction
  &#8541; &#x215D; Five Eighths Fraction
¾ &frac34; &#190; &#xBE; Three Quarters Fraction
  &#8542; &#x215E; Seven Eighths Fraction
  &#8747; &#x222B; Integral Sign
  &#8706; &#x2202; Partial Differential Sign
  &#8710; &#x2206; Increment Sign
  &#8719; &#x220F; N-ary Product Sign
  &#8721; &#x2211; N-ary Sum Sign
  &#8730; &#x221A; Square Root Sign
  &#8735; &#x221F; Right Angle Sign
  &#8745; &#x2229; Intersection Sign
  &#8729; &#x2219; Bullet Operator
ƒ   &#131; &#x83; Function Sign
  &#8260; &#x2044; Fraction Slash

 

 

 

출처: http://www.alanwood.net/demos/ansi.html

 

Character sets

ANSI character set and equivalent Unicode and HTML characters

The ANSI set of 217 characters, also known as Windows-1252, was the standard for the core fonts supplied with US versions of Microsoft Windows up to and including Windows 95 and Windows NT 4. During the lifetime of those two products, Microsoft added the euro currency symbol bringing the number of characters to 218, and introduced a new core set of Pan-European fonts containing the WGL4 (Windows Glyph List 4) character set, with 652 characters.

If you use an old, non-Unicode version of Windows that was designed for a non-Latin alphabet such as Arabic, Cyrillic, Greek, Hebrew or Thai to view a document that has been typed using the ANSI character set, then characters from these languages may replace some of those in the 128–255 range; this problem has mostly been resolved now that Unicode is widely used, because it provides a unique numeric identifier for each character. There were similar problems when transferring ANSI documents to DOS or Macintosh computers, because DOS and MacRoman arrange characters differently in the 128–255 range.

ANSI characters 32 to 127 correspond to those in the 7-bit ASCII character set, which forms the Basic Latin Unicode character range. Characters 160–255 correspond to those in the Latin-1 Supplement Unicode character range. Positions 128–159 in Latin-1 Supplement are reserved for controls, but most of them are used for printable characters in ANSI; the Unicode equivalents are noted in the table below. Entries in the “Entity” column are character entity references that can be used in HTML and should be interpreted correctly by Web browsers that support HTML 4.0.

The characters that appear in the first column of the following table are generated from Unicode numeric character references, and so they should appear correctly in any Web browser that supports Unicode and that has suitable fonts available, regardless of the operating system.

Character ANSI
 Number 
 Unicode 
Number
 ANSI 
Hex
 Unicode 
Hex
 HTML 4.0 
Entity
Unicode Name Unicode Range
' ' 32 32 0x20 U+0020   space Basic Latin
! 33 33 0x21 U+0021   exclamation mark Basic Latin
" 34 34 0x22 U+0022 &quot; quotation mark Basic Latin
# 35 35 0x23 U+0023   number sign Basic Latin
$ 36 36 0x24 U+0024   dollar sign Basic Latin
% 37 37 0x25 U+0025   percent sign Basic Latin
& 38 38 0x26 U+0026 &amp; ampersand Basic Latin
' 39 39 0x27 U+0027   apostrophe Basic Latin
( 40 40 0x28 U+0028   left parenthesis Basic Latin
) 41 41 0x29 U+0029   right parenthesis Basic Latin
* 42 42 0x2A U+002A   asterisk Basic Latin
+ 43 43 0x2B U+002B   plus sign Basic Latin
, 44 44 0x2C U+002C   comma Basic Latin
- 45 45 0x2D U+002D   hyphen-minus Basic Latin
. 46 46 0x2E U+002E   full stop Basic Latin
/ 47 47 0x2F U+002F   solidus Basic Latin
0 48 48 0x30 U+0030   digit zero Basic Latin
1 49 49 0x31 U+0031   digit one Basic Latin
2 50 50 0x32 U+0032   digit two Basic Latin
3 51 51 0x33 U+0033   digit three Basic Latin
4 52 52 0x34 U+0034   digit four Basic Latin
5 53 53 0x35 U+0035   digit five Basic Latin
6 54 54 0x36 U+0036   digit six Basic Latin
7 55 55 0x37 U+0037   digit seven Basic Latin
8 56 56 0x38 U+0038   digit eight Basic Latin
9 57 57 0x39 U+0039   digit nine Basic Latin
: 58 58 0x3A U+003A   colon Basic Latin
; 59 59 0x3B U+003B   semicolon Basic Latin
< 60 60 0x3C U+003C &lt; less-than sign Basic Latin
= 61 61 0x3D U+003D   equals sign Basic Latin
> 62 62 0x3E U+003E &gt; greater-than sign Basic Latin
? 63 63 0x3F U+003F   question mark Basic Latin
@ 64 64 0x40 U+0040   commercial at Basic Latin
A 65 65 0x41 U+0041   Latin capital letter A Basic Latin
B 66 66 0x42 U+0042   Latin capital letter B Basic Latin
C 67 67 0x43 U+0043   Latin capital letter C Basic Latin
D 68 68 0x44 U+0044   Latin capital letter D Basic Latin
E 69 69 0x45 U+0045   Latin capital letter E Basic Latin
F 70 70 0x46 U+0046   Latin capital letter F Basic Latin
G 71 71 0x47 U+0047   Latin capital letter G Basic Latin
H 72 72 0x48 U+0048   Latin capital letter H Basic Latin
I 73 73 0x49 U+0049   Latin capital letter I Basic Latin
J 74 74 0x4A U+004A   Latin capital letter J Basic Latin
K 75 75 0x4B U+004B   Latin capital letter K Basic Latin
L 76 76 0x4C U+004C   Latin capital letter L Basic Latin
M 77 77 0x4D U+004D   Latin capital letter M Basic Latin
N 78 78 0x4E U+004E   Latin capital letter N Basic Latin
O 79 79 0x4F U+004F   Latin capital letter O Basic Latin
P 80 80 0x50 U+0050   Latin capital letter P Basic Latin
Q 81 81 0x51 U+0051   Latin capital letter Q Basic Latin
R 82 82 0x52 U+0052   Latin capital letter R Basic Latin
S 83 83 0x53 U+0053   Latin capital letter S Basic Latin
T 84 84 0x54 U+0054   Latin capital letter T Basic Latin
U 85 85 0x55 U+0055   Latin capital letter U Basic Latin
V 86 86 0x56 U+0056   Latin capital letter V Basic Latin
W 87 87 0x57 U+0057   Latin capital letter W Basic Latin
X 88 88 0x58 U+0058   Latin capital letter X Basic Latin
Y 89 89 0x59 U+0059   Latin capital letter Y Basic Latin
Z 90 90 0x5A U+005A   Latin capital letter Z Basic Latin
[ 91 91 0x5B U+005B   left square bracket Basic Latin
\ 92 92 0x5C U+005C   reverse solidus Basic Latin
] 93 93 0x5D U+005D   right square bracket Basic Latin
^ 94 94 0x5E U+005E   circumflex accent Basic Latin
_ 95 95 0x5F U+005F   low line Basic Latin
` 96 96 0x60 U+0060   grave accent Basic Latin
a 97 97 0x61 U+0061   Latin small letter a Basic Latin
b 98 98 0x62 U+0062   Latin small letter b Basic Latin
c 99 99 0x63 U+0063   Latin small letter c Basic Latin
d 100 100 0x64 U+0064   Latin small letter d Basic Latin
e 101 101 0x65 U+0065   Latin small letter e Basic Latin
f 102 102 0x66 U+0066   Latin small letter f Basic Latin
g 103 103 0x67 U+0067   Latin small letter g Basic Latin
h 104 104 0x68 U+0068   Latin small letter h Basic Latin
i 105 105 0x69 U+0069   Latin small letter i Basic Latin
j 106 106 0x6A U+006A   Latin small letter j Basic Latin
k 107 107 0x6B U+006B   Latin small letter k Basic Latin
l 108 108 0x6C U+006C   Latin small letter l Basic Latin
m 109 109 0x6D U+006D   Latin small letter m Basic Latin
n 110 110 0x6E U+006E   Latin small letter n Basic Latin
o 111 111 0x6F U+006F   Latin small letter o Basic Latin
p 112 112 0x70 U+0070   Latin small letter p Basic Latin
q 113 113 0x71 U+0071   Latin small letter q Basic Latin
r 114 114 0x72 U+0072   Latin small letter r Basic Latin
s 115 115 0x73 U+0073   Latin small letter s Basic Latin
t 116 116 0x74 U+0074   Latin small letter t Basic Latin
u 117 117 0x75 U+0075   Latin small letter u Basic Latin
v 118 118 0x76 U+0076   Latin small letter v Basic Latin
w 119 119 0x77 U+0077   Latin small letter w Basic Latin
x 120 120 0x78 U+0078   Latin small letter x Basic Latin
y 121 121 0x79 U+0079   Latin small letter y Basic Latin
z 122 122 0x7A U+007A   Latin small letter z Basic Latin
{ 123 123 0x7B U+007B   left curly bracket Basic Latin
| 124 124 0x7C U+007C   vertical line Basic Latin
} 125 125 0x7D U+007D   right curly bracket Basic Latin
~ 126 126 0x7E U+007E   tilde Basic Latin
  127 127 0x7F U+007F   (not used)  
128 8364 0x80 U+20AC &euro; euro sign Currency Symbols
  129 129 0x81 U+0081   (not used)  
130 8218 0x82 U+201A &sbquo; single low-9 quotation mark General Punctuation
ƒ 131 402 0x83 U+0192 &fnof; Latin small letter f with hook Latin Extended-B
132 8222 0x84 U+201E &bdquo; double low-9 quotation mark General Punctuation
133 8230 0x85 U+2026 &hellip; horizontal ellipsis General Punctuation
134 8224 0x86 U+2020 &dagger; dagger General Punctuation
135 8225 0x87 U+2021 &Dagger; double dagger General Punctuation
ˆ 136 710 0x88 U+02C6 &circ; modifier letter circumflex accent Spacing Modifier Letters
137 8240 0x89 U+2030 &permil; per mille sign General Punctuation
Š 138 352 0x8A U+0160 &Scaron; Latin capital letter S with caron Latin Extended-A
139 8249 0x8B U+2039 &lsaquo; single left-pointing angle quotation mark General Punctuation
Π140 338 0x8C U+0152 &OElig; Latin capital ligature OE Latin Extended-A
  141 141 0x8D U+008D   (not used)  
Ž 142 381 0x8E U+017D   Latin capital letter Z with caron Latin Extended-A
  143 143 0x8F U+008F   (not used)  
  144 144 0x90 U+0090   (not used)  
145 8216 0x91 U+2018 &lsquo; left single quotation mark General Punctuation
146 8217 0x92 U+2019 &rsquo; right single quotation mark General Punctuation
147 8220 0x93 U+201C &ldquo; left double quotation mark General Punctuation
148 8221 0x94 U+201D &rdquo; right double quotation mark General Punctuation
149 8226 0x95 U+2022 &bull; bullet General Punctuation
150 8211 0x96 U+2013 &ndash; en dash General Punctuation
151 8212 0x97 U+2014 &mdash; em dash General Punctuation
˜ 152 732 0x98 U+02DC &tilde; small tilde Spacing Modifier Letters
153 8482 0x99 U+2122 &trade; trade mark sign Letterlike Symbols
š 154 353 0x9A U+0161 &scaron; Latin small letter s with caron Latin Extended-A
155 8250 0x9B U+203A &rsaquo; single right-pointing angle quotation mark General Punctuation
œ 156 339 0x9C U+0153 &oelig; Latin small ligature oe Latin Extended-A
  157 157 0x9D U+009D   (not used)  
ž 158 382 0x9E U+017E   Latin small letter z with caron Latin Extended-A
Ÿ 159 376 0x9F U+0178 &Yuml; Latin capital letter Y with diaeresis Latin Extended-A
  160 160 0xA0 U+00A0 &nbsp; no-break space Latin-1 Supplement
¡ 161 161 0xA1 U+00A1 &iexcl; inverted exclamation mark Latin-1 Supplement
¢ 162 162 0xA2 U+00A2 &cent; cent sign Latin-1 Supplement
£ 163 163 0xA3 U+00A3 &pound; pound sign Latin-1 Supplement
¤ 164 164 0xA4 U+00A4 &curren; currency sign Latin-1 Supplement
¥ 165 165 0xA5 U+00A5 &yen; yen sign Latin-1 Supplement
¦ 166 166 0xA6 U+00A6 &brvbar; broken bar Latin-1 Supplement
§ 167 167 0xA7 U+00A7 &sect; section sign Latin-1 Supplement
¨ 168 168 0xA8 U+00A8 &uml; diaeresis Latin-1 Supplement
© 169 169 0xA9 U+00A9 &copy; copyright sign Latin-1 Supplement
ª 170 170 0xAA U+00AA &ordf; feminine ordinal indicator Latin-1 Supplement
« 171 171 0xAB U+00AB &laquo; left-pointing double angle quotation mark Latin-1 Supplement
¬ 172 172 0xAC U+00AC &not; not sign Latin-1 Supplement
­ 173 173 0xAD U+00AD &shy; soft hyphen Latin-1 Supplement
® 174 174 0xAE U+00AE &reg; registered sign Latin-1 Supplement
¯ 175 175 0xAF U+00AF &macr; macron Latin-1 Supplement
° 176 176 0xB0 U+00B0 &deg; degree sign Latin-1 Supplement
± 177 177 0xB1 U+00B1 &plusmn; plus-minus sign Latin-1 Supplement
² 178 178 0xB2 U+00B2 &sup2; superscript two Latin-1 Supplement
³ 179 179 0xB3 U+00B3 &sup3; superscript three Latin-1 Supplement
´ 180 180 0xB4 U+00B4 &acute; acute accent Latin-1 Supplement
µ 181 181 0xB5 U+00B5 &micro; micro sign Latin-1 Supplement
182 182 0xB6 U+00B6 &para; pilcrow sign Latin-1 Supplement
· 183 183 0xB7 U+00B7 &middot; middle dot Latin-1 Supplement
¸ 184 184 0xB8 U+00B8 &cedil; cedilla Latin-1 Supplement
¹ 185 185 0xB9 U+00B9 &sup1; superscript one Latin-1 Supplement
º 186 186 0xBA U+00BA &ordm; masculine ordinal indicator Latin-1 Supplement
» 187 187 0xBB U+00BB &raquo; right-pointing double angle quotation mark Latin-1 Supplement
¼ 188 188 0xBC U+00BC &frac14; vulgar fraction one quarter Latin-1 Supplement
½ 189 189 0xBD U+00BD &frac12; vulgar fraction one half Latin-1 Supplement
¾ 190 190 0xBE U+00BE &frac34; vulgar fraction three quarters Latin-1 Supplement
¿ 191 191 0xBF U+00BF &iquest; inverted question mark Latin-1 Supplement
À 192 192 0xC0 U+00C0 &Agrave; Latin capital letter A with grave Latin-1 Supplement
Á 193 193 0xC1 U+00C1 &Aacute; Latin capital letter A with acute Latin-1 Supplement
 194 194 0xC2 U+00C2 &Acirc; Latin capital letter A with circumflex Latin-1 Supplement
à 195 195 0xC3 U+00C3 &Atilde; Latin capital letter A with tilde Latin-1 Supplement
Ä 196 196 0xC4 U+00C4 &Auml; Latin capital letter A with diaeresis Latin-1 Supplement
Å 197 197 0xC5 U+00C5 &Aring; Latin capital letter A with ring above Latin-1 Supplement
Æ 198 198 0xC6 U+00C6 &AElig; Latin capital letter AE Latin-1 Supplement
Ç 199 199 0xC7 U+00C7 &Ccedil; Latin capital letter C with cedilla Latin-1 Supplement
È 200 200 0xC8 U+00C8 &Egrave; Latin capital letter E with grave Latin-1 Supplement
É 201 201 0xC9 U+00C9 &Eacute; Latin capital letter E with acute Latin-1 Supplement
Ê 202 202 0xCA U+00CA &Ecirc; Latin capital letter E with circumflex Latin-1 Supplement
Ë 203 203 0xCB U+00CB &Euml; Latin capital letter E with diaeresis Latin-1 Supplement
Ì 204 204 0xCC U+00CC &Igrave; Latin capital letter I with grave Latin-1 Supplement
Í 205 205 0xCD U+00CD &Iacute; Latin capital letter I with acute Latin-1 Supplement
Î 206 206 0xCE U+00CE &Icirc; Latin capital letter I with circumflex Latin-1 Supplement
Ï 207 207 0xCF U+00CF &Iuml; Latin capital letter I with diaeresis Latin-1 Supplement
Ð 208 208 0xD0 U+00D0 &ETH; Latin capital letter Eth Latin-1 Supplement
Ñ 209 209 0xD1 U+00D1 &Ntilde; Latin capital letter N with tilde Latin-1 Supplement
Ò 210 210 0xD2 U+00D2 &Ograve; Latin capital letter O with grave Latin-1 Supplement
Ó 211 211 0xD3 U+00D3 &Oacute; Latin capital letter O with acute Latin-1 Supplement
Ô 212 212 0xD4 U+00D4 &Ocirc; Latin capital letter O with circumflex Latin-1 Supplement
Õ 213 213 0xD5 U+00D5 &Otilde; Latin capital letter O with tilde Latin-1 Supplement
Ö 214 214 0xD6 U+00D6 &Ouml; Latin capital letter O with diaeresis Latin-1 Supplement
× 215 215 0xD7 U+00D7 &times; multiplication sign Latin-1 Supplement
Ø 216 216 0xD8 U+00D8 &Oslash; Latin capital letter O with stroke Latin-1 Supplement
Ù 217 217 0xD9 U+00D9 &Ugrave; Latin capital letter U with grave Latin-1 Supplement
Ú 218 218 0xDA U+00DA &Uacute; Latin capital letter U with acute Latin-1 Supplement
Û 219 219 0xDB U+00DB &Ucirc; Latin capital letter U with circumflex Latin-1 Supplement
Ü 220 220 0xDC U+00DC &Uuml; Latin capital letter U with diaeresis Latin-1 Supplement
Ý 221 221 0xDD U+00DD &Yacute; Latin capital letter Y with acute Latin-1 Supplement
Þ 222 222 0xDE U+00DE &THORN; Latin capital letter Thorn Latin-1 Supplement
ß 223 223 0xDF U+00DF &szlig; Latin small letter sharp s Latin-1 Supplement
à 224 224 0xE0 U+00E0 &agrave; Latin small letter a with grave Latin-1 Supplement
á 225 225 0xE1 U+00E1 &aacute; Latin small letter a with acute Latin-1 Supplement
â 226 226 0xE2 U+00E2 &acirc; Latin small letter a with circumflex Latin-1 Supplement
ã 227 227 0xE3 U+00E3 &atilde; Latin small letter a with tilde Latin-1 Supplement
ä 228 228 0xE4 U+00E4 &auml; Latin small letter a with diaeresis Latin-1 Supplement
å 229 229 0xE5 U+00E5 &aring; Latin small letter a with ring above Latin-1 Supplement
æ 230 230 0xE6 U+00E6 &aelig; Latin small letter ae Latin-1 Supplement
ç 231 231 0xE7 U+00E7 &ccedil; Latin small letter c with cedilla Latin-1 Supplement
è 232 232 0xE8 U+00E8 &egrave; Latin small letter e with grave Latin-1 Supplement
é 233 233 0xE9 U+00E9 &eacute; Latin small letter e with acute Latin-1 Supplement
ê 234 234 0xEA U+00EA &ecirc; Latin small letter e with circumflex Latin-1 Supplement
ë 235 235 0xEB U+00EB &euml; Latin small letter e with diaeresis Latin-1 Supplement
ì 236 236 0xEC U+00EC &igrave; Latin small letter i with grave Latin-1 Supplement
í 237 237 0xED U+00ED &iacute; Latin small letter i with acute Latin-1 Supplement
î 238 238 0xEE U+00EE &icirc; Latin small letter i with circumflex Latin-1 Supplement
ï 239 239 0xEF U+00EF &iuml; Latin small letter i with diaeresis Latin-1 Supplement
ð 240 240 0xF0 U+00F0 &eth; Latin small letter eth Latin-1 Supplement
ñ 241 241 0xF1 U+00F1 &ntilde; Latin small letter n with tilde Latin-1 Supplement
ò 242 242 0xF2 U+00F2 &ograve; Latin small letter o with grave Latin-1 Supplement
ó 243 243 0xF3 U+00F3 &oacute; Latin small letter o with acute Latin-1 Supplement
ô 244 244 0xF4 U+00F4 &ocirc; Latin small letter o with circumflex Latin-1 Supplement
õ 245 245 0xF5 U+00F5 &otilde; Latin small letter o with tilde Latin-1 Supplement
ö 246 246 0xF6 U+00F6 &ouml; Latin small letter o with diaeresis Latin-1 Supplement
÷ 247 247 0xF7 U+00F7 &divide; division sign Latin-1 Supplement
ø 248 248 0xF8 U+00F8 &oslash; Latin small letter o with stroke Latin-1 Supplement
ù 249 249 0xF9 U+00F9 &ugrave; Latin small letter u with grave Latin-1 Supplement
ú 250 250 0xFA U+00FA &uacute; Latin small letter u with acute Latin-1 Supplement
û 251 251 0xFB U+00FB &ucirc; Latin small letter with circumflex Latin-1 Supplement
ü 252 252 0xFC U+00FC &uuml; Latin small letter u with diaeresis Latin-1 Supplement
ý 253 253 0xFD U+00FD &yacute; Latin small letter y with acute Latin-1 Supplement
þ 254 254 0xFE U+00FE &thorn; Latin small letter thorn Latin-1 Supplement
ÿ 255 255 0xFF U+00FF &yuml; Latin small letter y with diaeresis Latin-1 Supplement


Problems with non-Latin scripts

If you use old, pre-Unicode Arabic, Greek, Hebrew, Russian or Thai versions of Microsoft Windows to view a file that uses Latin script and includes accented characters, then the accented characters may be replaced or omitted. For example:

ANSI characters with US Windows

US Windows
ANSI characters with Russian Windows

Russian Windows
ANSI characters with Thai Windows

Thai Windows

This happens because the characters for these non-Latin scripts are coded to the same numbers as the accented Latin characters in the ANSI character set; this problem has largely been resolved now that Unicode has become widely used, because it provides a unique numeric identifier for each character.


 

 

 

출처: http://www.ascii.cl/htmlcodes.htm

 

Standard ASCII set, HTML Entity names, ISO 10646, ISO 8879, ISO 8859-1 Latin alphabet No. 1
 Browser support: All browsers


ASCII   HTML HTML  
Dec Hex Symbol Number Name

32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F

!
"
#
$
%
&
'
(
)
*
+
,
-
.
/
&#32;
&#33;
&#34;
&#35;
&#36;
&#37;
&#38;
&#39;
&#40;
&#41;
&#42;
&#43;
&#44;
&#45;
&#46;
&#47;


&quot;



&amp;









space
exclamation point
double quotes
number sign
dollar sign
percent sign
ampersand
single quote
opening parenthesis
closing parenthesis
asterisk
plus sign
comma
minus sign - hyphen
period
slash


ASCII   HTML HTML  
Dec Hex Symbol Number Name

48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
30
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
&#48;
&#49;
&#50;
&#51;
&#52;
&#53;
&#54;
&#55;
&#56;
&#57;
&#58;
&#59;
&#60;
&#61;
&#62;
&#63;












&lt;

&gt;

zero
one
two
three
four
five
six
seven
eight
nine
colon
semicolon
less than sign
equal sign
greater than sign
question mark


ASCII   HTML HTML  
Dec Hex Symbol Number Name

64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
&#64;
&#65;
&#66;
&#67;
&#68;
&#69;
&#70;
&#71;
&#72;
&#73;
&#74;
&#75;
&#76;
&#77;
&#78;
&#79;
















at symbol

















ASCII   HTML HTML  
Dec Hex Symbol Number Name

80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
50
51
52
53
54
55
56
57
58
59
5A
5B
5C
5D
5E
5F
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
&#80;
&#81;
&#82;
&#83;
&#84;
&#85;
&#86;
&#87;
&#88;
&#89;
&#90;
&#91;
&#92;
&#93;
&#94;
&#95;



























opening bracket
backslash
closing bracket
caret - circumflex
underscore


ASCII   HTML HTML  
Dec Hex Symbol Number Name

96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
60
61
62
63
64
65
66
67
68
69
6A
6B
6C
6D
6E
6F
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
&#96;
&#97;
&#98;
&#99;
&#100;
&#101;
&#102;
&#103;
&#104;
&#105;
&#106;
&#107;
&#108;
&#109;
&#110;
&#111;
















grave accent

















ASCII   HTML HTML  
Dec Hex Symbol Number Name

112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
70
71
72
73
74
75
76
77
78
79
7A
7B
7C
7D
7E
7F
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~

&#112;
&#113;
&#114;
&#115;
&#116;
&#117;
&#118;
&#119;
&#120;
&#121;
&#122;
&#123;
&#124;
&#125;
&#126;




























opening brace
vertical bar
closing brace
equivalency sign - tilde
(not defined in HTML 4 standard)


ASCII   HTML HTML  
Dec Hex Symbol Number Name

128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
80
81
82
83
84
85
86
87
88
89
8A
8B
8C
8D
8E
8F
















































(not defined in HTML 4 standard)
(not defined in HTML 4 standard)
(not defined in HTML 4 standard)
(not defined in HTML 4 standard)
(not defined in HTML 4 standard)
(not defined in HTML 4 standard)
(not defined in HTML 4 standard)
(not defined in HTML 4 standard)
(not defined in HTML 4 standard)
(not defined in HTML 4 standard)
(not defined in HTML 4 standard)
(not defined in HTML 4 standard)
(not defined in HTML 4 standard)
(not defined in HTML 4 standard)
(not defined in HTML 4 standard)
(not defined in HTML 4 standard)


ASCII   HTML HTML  
Dec Hex Symbol Number Name

144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
90
91
92
93
94
95
96
97
98
99
9A
9B
9C
9D
9E
9F
















































(not defined in HTML 4 standard)
(not defined in HTML 4 standard)
(not defined in HTML 4 standard)
(not defined in HTML 4 standard)
(not defined in HTML 4 standard)
(not defined in HTML 4 standard)
(not defined in HTML 4 standard)
(not defined in HTML 4 standard)
(not defined in HTML 4 standard)
(not defined in HTML 4 standard)
(not defined in HTML 4 standard)
(not defined in HTML 4 standard)
(not defined in HTML 4 standard)
(not defined in HTML 4 standard)
(not defined in HTML 4 standard)
(not defined in HTML 4 standard)


ASCII   HTML HTML  
Dec Hex Symbol Number Name

160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
AA
AB
AC
AD
AE
AF
 
¡
¢
£
¤
¥
¦
§
¨
©
ª
«
¬
­
®
¯
&#160;
&#161;
&#162;
&#163;
&#164;
&#165;
&#166;
&#167;
&#168;
&#169;
&#170;
&#171;
&#172;
&#173;
&#174;
&#175;
&nbsp;
&iexcl;
&cent;
&pound;
&curren;
&yen;
&brvbar;
&sect;
&uml;
&copy;
&ordf;
&laquo;
&not;
&shy;
&reg;
&macr;
non-breaking space
inverted exclamation mark
cent sign
pound sign
currency sign
yen sign
broken vertical bar
section sign
spacing diaeresis - umlaut
copyright sign
feminine ordinal indicator
left double angle quotes
not sign
soft hyphen
registered trade mark sign
spacing macron - overline


ASCII   HTML HTML  
Dec Hex Symbol Number Name

176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
B0
B1
B2
B3
B4
B5
B6
B7
B8
B9
BA
BB
BC
BD
BE
BF
°
±
²
³
´
µ

·
¸
¹
º
»
¼
½
¾
¿
&#176;
&#177;
&#178;
&#179;
&#180;
&#181;
&#182;
&#183;
&#184;
&#185;
&#186;
&#187;
&#188;
&#189;
&#190;
&#191;
&deg;
&plusmn;
&sup2;
&sup3;
&acute;
&micro;
&para;
&middot;
&cedil;
&sup1;
&ordm;
&raquo;
&frac14;
&frac12;
&frac34;
&iquest;
degree sign
plus-or-minus sign
superscript two - squared
superscript three - cubed
acute accent - spacing acute
micro sign
pilcrow sign - paragraph sign
middle dot - Georgian comma
spacing cedilla
superscript one
masculine ordinal indicator
right double angle quotes
fraction one quarter
fraction one half
fraction three quarters
inverted question mark


ASCII   HTML HTML  
Dec Hex Symbol Number Name

192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
C0
C1
C2
C3
C4
C5
C6
C7
C8
C9
CA
CB
CC
CD
CE
CF
À
Á
Â
Ã
Ä
Å
Æ
Ç
È
É
Ê
Ë
Ì
Í
Î
Ï
&#192;
&#193;
&#194;
&#195;
&#196;
&#197;
&#198;
&#199;
&#200;
&#201;
&#202;
&#203;
&#204;
&#205;
&#206;
&#207;
&Agrave;
&Aacute;
&Acirc;
&Atilde;
&Auml;
&Aring;
&AElig;
&Ccedil;
&Egrave;
&Eacute;
&Ecirc;
&Euml;
&Igrave;
&Iacute;
&Icirc;
&Iuml;
latin capital letter A with grave
latin capital letter A with acute
latin capital letter A with circumflex
latin capital letter A with tilde
latin capital letter A with diaeresis
latin capital letter A with ring above
latin capital letter AE
latin capital letter C with cedilla
latin capital letter E with grave
latin capital letter E with acute
latin capital letter E with circumflex
latin capital letter E with diaeresis
latin capital letter I with grave
latin capital letter I with acute
latin capital letter I with circumflex
latin capital letter I with diaeresis


ASCII   HTML HTML  
Dec Hex Symbol Number Name

208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
D0
D1
D2
D3
D4
D5
D6
D7
D8
D9
DA
DB
DC
DD
DE
DF
Ð
Ñ
Ò
Ó
Ô
Õ
Ö
×
Ø
Ù
Ú
Û
Ü
Ý
Þ
ß
&#208;
&#209;
&#210;
&#211;
&#212;
&#213;
&#214;
&#215;
&#216;
&#217;
&#218;
&#219;
&#220;
&#221;
&#222;
&#223;
&ETH;
&Ntilde;
&Ograve;
&Oacute;
&Ocirc;
&Otilde;
&Ouml;
&times;
&Oslash;
&Ugrave;
&Uacute;
&Ucirc;
&Uuml;
&Yacute;
&THORN;
&szlig;
latin capital letter ETH
latin capital letter N with tilde
latin capital letter O with grave
latin capital letter O with acute
latin capital letter O with circumflex
latin capital letter O with tilde
latin capital letter O with diaeresis
multiplication sign
latin capital letter O with slash
latin capital letter U with grave
latin capital letter U with acute
latin capital letter U with circumflex
latin capital letter U with diaeresis
latin capital letter Y with acute
latin capital letter THORN
latin small letter sharp s - ess-zed


ASCII   HTML HTML  
Dec Hex Symbol Number Name

224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
E0
E1
E2
E3
E4
E5
E6
E7
E8
E9
EA
EB
EC
ED
EE
EF
à
á
â
ã
ä
å
æ
ç
è
é
ê
ë
ì
í
î
ï
&#224;
&#225;
&#226;
&#227;
&#228;
&#229;
&#230;
&#231;
&#232;
&#233;
&#234;
&#235;
&#236;
&#237;
&#238;
&#239;
&agrave;
&aacute;
&acirc;
&atilde;
&auml;
&aring;
&aelig;
&ccedil;
&egrave;
&eacute;
&ecirc;
&euml;
&igrave;
&iacute;
&icirc;
&iuml;
latin small letter a with grave
latin small letter a with acute
latin small letter a with circumflex
latin small letter a with tilde
latin small letter a with diaeresis
latin small letter a with ring above
latin small letter ae
latin small letter c with cedilla
latin small letter e with grave
latin small letter e with acute
latin small letter e with circumflex
latin small letter e with diaeresis
latin small letter i with grave
latin small letter i with acute
latin small letter i with circumflex
latin small letter i with diaeresis


ASCII   HTML HTML  
Dec Hex Symbol Number Name

240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
F0
F1
F2
F3
F4
F5
F6
F7
F8
F9
FA
FB
FC
FD
FE
FF
ð
ñ
ò
ó
ô
õ
ö
÷
ø
ù
ú
û
ü
ý
þ
ÿ
&#240;
&#241;
&#242;
&#243;
&#244;
&#245;
&#246;
&#247;
&#248;
&#249;
&#250;
&#251;
&#252;
&#253;
&#254;
&#255;
&eth;
&ntilde;
&ograve;
&oacute;
&ocirc;
&otilde;
&ouml;
&divide;
&oslash;
&ugrave;
&uacute;
&ucirc;
&uuml;
&yacute;
&thorn;
&yuml;
latin small letter eth
latin small letter n with tilde
latin small letter o with grave
latin small letter o with acute
latin small letter o with circumflex
latin small letter o with tilde
latin small letter o with diaeresis
division sign
latin small letter o with slash
latin small letter u with grave
latin small letter u with acute
latin small letter u with circumflex
latin small letter u with diaeresis
latin small letter y with acute
latin small letter thorn
latin small letter y with diaeresis


 HTML 4.01, ISO 10646, ISO 8879, Latin extended A and B,
 Browser support: Internet Explorer > 4, Netscape > 4


    HTML HTML  
Dec Hex Symbol Number Name

338
339
352
353
376
402
152
153
160
161
178
192
Œ
œ
Š
š
Ÿ
ƒ
&#338;
&#339;
&#352;
&#353;
&#376;
&#402;






latin capital letter OE
latin small letter oe
latin capital letter S with caron
latin small letter s with caron
latin capital letter Y with diaeresis
latin small f with hook - function


    HTML HTML  
Dec Hex Symbol Number Name

8211
8212
8216
8217
8218
8220
8221
8222
8224
8225
8226
8230
8240
8364
8482
2013
2014
2018
2019
201A
201C
201D
201E
2020
2021
2022
2026
2030
20AC
2122















&#8211;
&#8212;
&#8216;
&#8217;
&#8218;
&#8220;
&#8221;
&#8222;
&#8224;
&#8225;
&#8226;
&#8230;
&#8240;
&#8364;
&#8482;













&euro;

en dash
em dash
left single quotation mark
right single quotation mark
single low-9 quotation mark
left double quotation mark
right double quotation mark
double low-9 quotation mark
dagger
double dagger
bullet
horizontal ellipsis
per thousand sign
euro sign
trade mark sign

Posted by iWithJoy
Music2013. 12. 27. 14:07

 

- Music Theory Fundamentals: http://academic.udayton.edu/tobyrush/theorypages/

 

- 7 Important Chords: http://www.mypianoriffs.com/279/7-important-chords-every-musician-should-know/

 

- The Cipher: http://www.thecipher.com/bass-guitar-cipher.html

 

- The diatonic signature

  . Triads in all of the major keys: http://www.practical-chords-and-harmony.com/diatonic-triads.html

  . Seventh Chords in all of the major keys: http://www.practical-chords-and-harmony.com/diatonic-seventh-chords.html

 

- Major scale harmonizing: http://www.musicfield.co.kr/Dataroom/?mode=ViewBoard&type=&code=DATAROOM&bbid=11&cate=13&page=1&nums=7665&sfl=&stx=

- 화음: http://www.musicnlife.com/books/b04mint/p036_041.htm

 

 

 

 

 

Posted by iWithJoy
SQL2013. 11. 4. 19:37

SELECT REGEXP_REPLACE(NAME, '( ){1,}', '')
FROM P_TB_MBR
WHERE INSTR(NAME, ' ') > 0;

10g만..



Inside Oracle Database 10g

정규 표현식을 이용한 SQL 구문의 개선

저자 - Alice Rischert

Oracle Database 10g의 정규 표현식 기능을 텍스트 데이터 처리를 위한 강력한 도구로 활용할 수 있습니다.

Oracle Database 10g에 추가된 새로운 기능을 이용하여 문자 데이터의 검색, 처리 능력을 극적으로 개선할 수 있습니다. 정규 표현식(regular expression)이라 불리는 이 기능은, 텍스트 패턴을 기술하기 위한 일종의 표기법으로, 이미 오래 전부터 다양한 프로그래밍 언어와 UNIX 유틸리티를 통해 지원되어 왔습니다.

오라클의 정규 표현식은 SQL 함수와 WHERE절 연산자의 형태로 제공됩니다. 정규 표현식에 익숙하지 않은 독자라면, 이 문서를 통해 전혀 새롭고 강력한 기능을 체험하실 수 있을 것입니다. 또 정규 표현식에 이미 친숙한 독자분들은, Oracle SQL 언어의 문맥에 이 기능을 적용하는 방법을 이해하는 기회로 활용하실 수 있습니다.

정규 표현식이란?

정규 표현식은 하나 또는 그 이상의 문자열과 메타문자(metacharacter)로 구성됩니다. 가장 단순한 형태의 정규 표현식은 cat과 같은 단 하나의 문자열로만 구성될 수 있습니다. 이 정규 표현식은 문자 c와 문자 a, 문자 t의 순서를 갖는 패턴 매치 문자열로 cat, location, catalog 등의 문자열과 매치됩니다. 메타문자는 정규 표현식을 구성하는 문자들을 처리하는 방법을 명시하기 위한 알고리즘을 제공합니다. 다양한 메타문자의 의미를 이해한다면, 정규 표현식이 텍스트 데이터를 비교하고 대체하는 용도로 매우 유용하게 활용될 수 있음을 금방 깨닫게 되실 것입니다.

데이터의 검증, 중복 단어의 확인, 불필요한 공백의 제거, 문자의 파싱(parsing) 등 정규 표현식의 활용 방법은 실로 다양합니다. 정규 표현식을 이용하여 전화 번호, 우편 번호, 이메일 주소, 주민등록번호, IP 주소, 파일 이름, 경로 이름 등을 검증할 수도 있습니다. 또 HTML 태그, 숫자, 날짜, 기타 특정 텍스트 데이터와 일치하는 패턴을 확인하고 다른 패턴으로 대체하는 것이 가능합니다.

Oracle Database 10g에서 정규 표현식 사용하기

오라클에 새로 추가된 기능으로 Oracle SQL REGEXP_LIKE 연산자, REGEXP_INSTR, REGEXP_SUBSTR, REGEXP_REPLACE 함수 등이 있습니다. 이 함수와 연산자는 기존의 LIKE 연산자와 INSTR, SUBSTR, REPLACE 함수를 보완하는 효과를 제공합니다. 실제로 새로운 기능들은 기존 연산자 및 함수와 유사하지만 훨씬 강력한 패턴 매칭 환경을 구현하고 있습니다. 검색의 기준이 되는 데이터는 간단한 문자열일 수도 있고 데이터베이스 테이블의 문자 컬럼에 저장된 대량의 텍스트일 수도 있습니다. 정규 표현식을 이용하면 이전에는 생각도 못했던 유연한 방법으로 데이터를 검색, 대체, 검증할 수 있습니다.

정규 표현식의 기본적 예제

새로운 기능을 사용해 보기기 전에, 몇 가지 메타문자의 의미를 이해해 보기로 합시다. 마침표(.)는 정규 표현식에 존재하는 모든 문자(newline 제외)와 매칭됩니다. 예를 들어 정규 표현식 a.b는 문자 a, (newline을 제외한) 임의의 단일 문자, 그리고 문자 b의 순서로 구성된 문자열과 매칭됩니다. 문자열 axb, xaybx, abba는 모두 이 정규표현식에 정의된 패턴을 포함하고 있으므로 매치가 가능합니다. 라인이 a로 시작하여 b로 끝나는, 3 개 문자로 구성된 문자열을 매칭하고자 하는 경우에는 앵커(anchor)가 사용되어야 합니다. 캐럿(^) 메타문자는 라인의 시작을, 달러($) 기호는 라인의 끝을 의미합니다 (표 1 참고). 따라서 정규 표현식 ^a.b$aab, abb, axb와 같은 문자열과 매칭됩니다. LIKE 연산자에서 이와 동일한 기능을 수행하려면 a_b 패턴을 사용해야 합니다. 여기서 밑줄 기호(_)는 단문자 와일드카드를 의미합니다.

기본적으로, 정규 표현식의 개별 문자 또는 문자 리스트는 단 한 번만 매칭됩니다. 정규 표현식은 문자가 여러 번 반복 출현되는 조건을 지정하기 위한? 반복 연산자(repetition operator)를 제공합니다("quantifier"라 부르기도 합니다). 문자 a로 시작해서 b로 끝나는 문자열 매칭을 위한 정규 표현식이 아래와 같습니다: ^a.*b$. * 메타문자는 임의의 메타문자(.)가 0 번, 한 번, 또는 여러 번 반복되는 조건에 매칭됩니다. LIKE 연산자에서는 이와 동일한 연산자로 a%b를 지원합니다. 여기서 퍼센트(%) 기호는 임의 문자가 0 번, 한 번, 또는 여러 번 반복됨을 의미합니다.

표 2는 반복 연산자의 전체 목록을 보여 주고 있습니다. 이 표에 제시된 예를 통해 정규 표현식이 기존의 LIKE와일드카드 문자보다 훨씬 뛰어난 유연성을 제공함을 확인할 수 있습니다. 표현식에 괄호를 씌우는 경우, 서브표현식(subexpression)으로 활용됩니다. 서브표현식은 임의의 횟수만큼 반복될 수 있습니다. 예를 들어, 정규 표현식 b(an)*aba, bana, banana, yourbananasplit등과 매치됩니다.

오라클의 정규 표현식은 POSIX(Portable Operating System Interface) 문자 클래스를 지원합니다(표 3 참고). 따라서 검색하는 문자의 유형을 세부적으로 정의하는 것이 가능합니다. 알파벳이 아닌 문자를 검색하는 조건을 LIKE 연산자로 작성한다면, WHERE 절이 훨씬 복잡한 형태로 구현되어야 할 것입니다.

POSIX 문자 클래스는 반드시 대괄호([])로 묶여 져야 합니다. 예를 들어, 정규 표현식 [[:lower:]]는 소문자와 매치되며 d [[:lower:]]{5}는 5 개의 연속적인 소문자와 매치됩니다.

POSIX 문자 클래스와 별도로, 개별 문자를 문자 리스트(character list)에 포함시키는 기능이 제공됩니다. 예를 들어 정규 표현식 ^ab[cd]ef$는 문자열 abcef , abdef와 매치됩니다. 여기서 c 또는 d 두 개의 문자 중 하나가 사용되고 있어야 합니다.

문자 리스트 내부에 위치하는 대부분의 메타문자는 일반 문자로 인식됩니다. 그 예외가 캐럿 (^) 기호와 하이픈 (-)기호입니다. 일부 메타문자는 문맥에 따라 다른 의미를 갖습니다. 이 때문에 정규 표현식이 무척 복잡해 보일 수도 있습니다. 캐럿 ^이 그 한 가지 예입니다. 이 기호를 문자 리스트의 첫 번째 문자로 사용되는 경우에는, 문자 리스트의 반대 조건(negation)을 의미합니다. 따라서[^[:digit:]]은  숫자가 아닌 문자로 구성된 패턴과 매칭되는 반면 ^[[:digit:]] 은  숫자로 시작되는 패턴과 매칭됩니다. 하이픈 (-)은 영역(range)을 의미합니다. 정규 표현식 [a-m]am 사이의 임의의 문자와 매칭됩니다. 하지만 [-afg]의 경우처럼 하이픈이 문자 리스트의 첫 번째 문자로 사용된 경우에는 실제 하이픈 문자를 의미합니다

앞에서 괄호를 사용하여 서브표현식을 구현하는 방법을 예시한 바 있습니다. 서브표현식에서는 수직 기호(|)메타문자를 사용하여 여러 개의 대체 문자를 지정할 수 있습니다.

예를 들어, 정규 표현식 t(a|e|i)n은 문자 tn 사이에 오는 3 개의 대체 문자를 지정하고 있습니다. tan, ten, tin, Pakistan 등의 문자열은 매치되지만 teen, mountain, tune 등은 매치되지 않습니다. 또 정규 표현식 t(a|e|i)n을 문자 리스트 t[aei]n으로 표현할 수도 있습니다. 표 4는 이러한 메타문자들을 요약하고 있습니다. 지금까지 설명한 것 말고도 다양한 메타문자가 있지만, 여기에서는 본 문서에서 예제로 사용되는 정규 표현식을 이해할 수 있는 정도만 이해하고 넘어가기로 합니다.

REGEXP_LIKE연산자

REGEXP_LIKE오라클 데이터베이스에 적용 가능한 정규 표현식 기능을 제공합니다. 표 5REGEXP_LIKE의 문법을 보여주고 있습니다

아래 SQL 쿼리의 WHERE 절에서 사용된 REGEXP_LIKE 연산자는 정규 표현식 [^[:digit:]]을 만족하는 패턴의 ZIP 컬럼을 검색하고 있습니다. 이 조건절을 이용하여, ZIPCODE 테이블로부터 숫자가 아닌 문자를 포함하는 ZIP 컬럼이 포함된 모든 로우를 가져올 수 있습니다.

SELECT zip
  FROM zipcode
 WHERE REGEXP_LIKE(zip, '[^[:digit:]]')
ZIP
-----
ab123
123xy
007ab
abcxy

이 정규 표현식은 메타문자, 좀 더 정확히 말하면 콜론과 대괄호로 묶인 POSIX 문자 클래스 digit만을 사용하고 있습니다. [^[:digit:]]에서 두 번째로 사용된 대괄호는  문자 클래스 리스트를 묶는 용도로 사용됩니다. 앞에서 설명한 것처럼 POSIX는 문자 리스트를 구성하는 용도로만 사용되므로 이와 같은 처리가 필요합니다.

REGEXP_INSTR 함수

이 함수는 패턴의 시작 위치를 반환하며, 따라서 INSTR 함수와 유사한 형태로 동작합니다. REGEXP_INSTR함수의 사옹 방법은 표 6에서 확인할 수 있습니다. 두 함수의 가장 중요한 차이는 REGEXP_INSTR를 이용하는 경우 특정 문자열이 아닌 패턴을 지정할 수 있으며, 따라서 훨씬 유연한 검색이 가능하다는 사실입니다. 다음 예에서는 REGEXP_INSTR을 사용하여 Joe Smith, 10045 Berry Lane, San Joseph, CA 91234문자열에서 5 개의 숫자로 구성된 우편 번호 패턴의 시작 부분을 반환하고 있습니다. 정규 표현식 [[:digit:]]{5}를 사용하는 경우 우편 번호가 아닌 집 주소 번호의 시작 위치를 얻게 됩니다 (처음으로 검색되는 5 개 연속 숫자 패턴이 10045이기 때문입니다). 따라서 $ 메타문자를 사용하여 표현식의 앵커를 라인 끝부분으로 지정해야 합니다. 이렇게 하면 집 주소 번호에 관계없이 우편 번호의 시작 위치를 얻을 수 있습니다.

SELECT REGEXP_INSTR('Joe Smith, 10045 Berry Lane, San Joseph, CA 91234',
       '[[:digit:]]{5}$')
       AS rx_instr
  FROM dual
  RX_INSTR
----------
        45

좀 더 복잡한 패턴의 작성

앞의 예의 우편 번호 패턴을 확장하여 네 가지 숫자를 포함하는 패턴을 만들어 보기로 합시다. 새로 작성된 패턴이 아래와 같습니다:

[[:digit:]]{5}(-[[:digit:]]{4})?$.

소스 문자열이 5 개 숫자로 종료되든, 또는 "5 개 숫자 + 4 자리 우편 번호" 포맷을 갖든, 패턴의 시작 위치를 얻을 수 있습니다.

SELECT REGEXP_INSTR('Joe Smith, 10045 Berry Lane, San Joseph, CA 91234-1234',
       ' [[:digit:]]{5}(-[[:digit:]]{4})?$')
    AS starts_at
  FROM dual
 STARTS_AT
----------
        44

위의 예에서 괄호로 묶인 서브표현식 (-[[:digit:]]{4})는 반복 연산자 ?로 지정된 조건에 따라 0 회 또는 1 회 반복됩니다. 다시 말하지만, 기존의 SQL 함수를 이용하여 같은 결과를 얻어 내려면 아무리 SQL 전문가라 해도 쉽지 않은 작업이 될 것입니다. 표 7은 정규 표현식을 구성하는 각 문자와 메타문자의 의미를 설명하고 있습니다.

REGEXP_SUBSTR함수

REGEXP_SUBSTR 함수는 SUBSTR 함수와 마찬가지로 문자열의 일부를 추출합니다. 표 8은 새로운 함수의 사용법을 설명하고 있습니다. 아래 예제에서는 [^,]*, 패턴에 매치되는 문자열이 반환됩니다. 정규 표현식은 공백에 이어 사용된 쉼표를 검색하고, 쉼표가 아닌 문자가 0 회 또는 그 이상 반복되는 패턴을 검색([^,]*)한 후 마지막으로 또 다른 쉼표를 검색합니다. 이 패턴은 쉼표로 구분된 문자열(comma-separated values)과 유사한 배열을 갖습니다.

SELECT REGEXP_SUBSTR('first field, second field , third field',
       ', [^,]*,')
  FROM dual
REGEXP_SUBSTR('FIR
------------------
, second field   ,

REGEXP_REPLACE 함수

특정 문자열을 다른 문자열로 대체하는 기존의 REPLACE SQL 함수의 기능을 잠시 되짚어 보겠습니다. 데이터의 텍스트에 필요 이상의 공백 기호가 존재하는 상황에서, 이를 단일 공백 기호로 대체하는 경우를 가정해 봅시다 REPLACE 함수를 사용할 때에는 대체할 공백 기호의 숫자를 정확하게 지정해야 합니다. 하지만, 필요 없는 공백의 수가 일정하리라는 보장은 없습니다. 아래 예는 JoeSmith사이에 3 개의 공백 기호가 존재하는 경우를 검색하고 있습니다. REPLACE 함수의 매개변수는 두 개의 공백 기호를 하나의 공백 기호로 대체할 것을 명시하고 있습니다. 하지만 JoeSmith 사이에 3 개의 공백 기호가 존재하는 경우에는 여전히 필요 없는 공백이 하나 남게 됩니다.

SELECT REPLACE('Joe   Smith','  ', ' ')
       AS replace
  FROM dual
REPLACE
---------
Joe Smith

REGEXP_REPLACE 한층 개선된 문자열 대체 기능을 제공합니다. 그 사용법은 표 9에서 설명되고 있습니다. 아래 쿼리는 두 개 또는 그 이상의 공백 기호를 하나의 공백 기호로 대체합니다. ( )서브표현식은 하나의 공백 기호를 포함하며 {2,}의 조건에 의해 지정된 대로 2 회 또는 그 이상 반복되는 조건을 명시합니다.

SELECT REGEXP_REPLACE('Joe   Smith',
       '( ){2,}', ' ')
       AS RX_REPLACE
  FROM dual
RX_REPLACE
----------
Joe Smith



 

백레퍼런스(Backreference)

정규 표현식의 유용한 기능의 하나로 재활용을 위해 서브표현식을 저장하는 기능이 제공됩니다. 이 기능을 백레퍼런스(backreferencing)라 부릅니다(상세한 설명은 표 10 참고). 백레퍼런스를 이용하여 패턴을 새로운 위치에 맞교체하거나 반복적인 단어 또는 문자를 검색하는 등의 고급 대체 기능을 구현할 수 있습니다. 서브표현식과 일치하는 문자열은 임시 버퍼에 저장됩니다. 이 버퍼에는 왼쪽에서 오른쪽 순서로 숫자가 매겨지며 \digit 형태로 표현됩니다. 여기서 digit은 1과 9 사이의 숫자를 의미하며 각 숫자에 해당하는 서브표현식과 매치됩니다.

아래 예제는 서브익스프레션에 대한 백레퍼런스를 이용하여 Ellen Hildi Smith라는 이름을 Smith, Ellen Hildi로 변환하고 있습니다.

SELECT REGEXP_REPLACE(
       'Ellen Hildi Smith',
       '(.*) (.*) (.*)', '\3, \1 \2')
  FROM dual
REGEXP_REPLACE('EL
------------------
Smith, Ellen Hildi

위의 SQL 구문은 각각 괄호로 묶인 3 개의 서브표현식을 사용하고 있습니다. 각 서브표현식은 임의의 단일 문자와 매치되는 메타문자(.)와, 임의의 문자(newline 제외)와 0 회 또는 그 이상 매치되는 * 메타문자를 연이어 사용하고 있습니다. 각 서브표현식 사이에 사용된 공백 기호 역시 매치되어야 합니다. 괄호로 묶인 서브표현식에 의해 캡처된 값은 \digit에 의해 참조할 수 있습니다. 따라서 첫 번째 서브표현식에는 \1이, 두 번째 표현식에는\2이 할당됩니다. 이 백레퍼런스들은 함수의 마지막 매개변수 (\3, \1 \2)로 사용되어, 서브문자열을 대체하고 (쉼표와 공백을 포함하는) 포맷으로 표현하는 용도로 활용되고 있습니다. 표 11은 정규 표현식의 개별 컴포넌트에 대한 상세 정보를 설명하고 있습니다.

백레퍼런스는 값을 대체, 포맷하는 용도로 유용하게 활용되며, 서로 인접한 값을 찾기 위해 이용할 수도 있습니다. 다음 예제는 REGEP_SUBSTR 함수를 이용하여 공백 기호로 구분된 알파벳/숫자 값의 중복 사례를 검색하고 있습니다. 이 함수가 반환된 서브문자열을 통해 is 문자열이 반복되고 있음을 알 수 있습니다.

SELECT REGEXP_SUBSTR(
       'The final test is is the implementation',
       '([[:alnum:]]+)([[:space:]]+)\1') AS substr
  FROM dual
SUBSTR
------
is is

매치 매개변수 옵션

앞에서 예시한 예제들을 통해 정규 표현식 연산자와 함수에 매치 매개변수(match parameter)를 추가적으로 활용할 수 있음을 눈치 채셨을 것입니다. 이 매개변수는 대소문자 구분, newline 문자의 매치, 멀티라인 입력의 보존 등을 지원합니다.

정규 표현식의 활용 사례

Y정규 표현식은 단순 쿼리 이외에도 PL/SQL 언어처럼 SQL 연산자, 함수가 사용되는 경우라면 언제든 적용이 가능합니다. 또 정규 표현식을 이용하여 값의 검증, 생성, 추출을 위한 기능을 트리거 형태로 구현할 수 있습니다.

다음 예제는 입력된 데이터에 대해 컬럼 제약 조건을 검증하기 위해 REGEXP_LIKE 연산자를 사용하는 방법을 예시하고 있습니다. 이 쿼리는 INSERT, UPDATE 작업이 발생하는 경우 입력이 사회보장번호의 포맷과 일치하는지 확인합니다. 123-45-6789 또는 123456789과 같은 포맷으로 표현된 사회보장번호는 컬럼의 제약 조건을 만족합니다. 데이터는 3 개의 숫자로 시작하여 하이픈으로 연결된 후, 다시 두 개의 숫자, 하이픈, 마지막으로 4 개의 숫자로 표현됩니다. 또는 사회보장번호를 9 개의 연속적 숫자로 표현하는 것도 가능합니다. 수직 기호(|)는 두 가지 옵션 중 선택이 가능함을 의미합니다.

ALTER TABLE students
  ADD CONSTRAINT stud_ssn_ck CHECK
  (REGEXP_LIKE(ssn,
  '^([[:digit:]]{3}-[[:digit:]]{2}-[[:digit:]]{4}|[[:digit:]]{9})$'))
      

^, $. 기호는 가장 앞에 또는 가장 뒤에 오는 문자를 무시할 것을 지정하고 있습니다. 정규 표현식이 두 개 이상의 라인으로 분절되거나 표현식에 불필요한 공백 기호가 포함되지 않도록 주의하시기 바랍니다. 표 12는 위 정규 표현식 예제에서 사용된 각각의 컴포넌트에 대해 설명하고 있습니다.

Next Steps

Oracle Database 10g 페이지:
/products/database/oracle10g/index.html

정규 표현식과 기존 SQL 기능의 비교

정규 표현식은 기존에 사용되던 LIKE 연산자와 INSTR, SUBSTR, and REPLACE 함수와 비교했을 때 여러 가지 이점을 제공하고 있습니다. 기존의 SQL 함수는 패턴 매칭을 전혀 지원하지 않고 있습니다. 문자의 매칭을 지원하는 컴포넌트는 LIKE연산자가 유일하며 % , _와일드카드 문자가 지원됩니다. 하지만 LIKE 연산자는 표현식의 반복, 복잡한 대체 패턴, 문자 영역, 문자 리스트, POSIX 문자 클래스 등을 지원하지 않습니다. 또 새로운 정규 표현식 함수는 반복 단어와 패턴의 맞교환(swap)을 지원한다는 장점이 있습니다. 본 문서에서 제시된 예제들이 정규 표현식의 개념과 활용 방법을 이해하는데 도움이 되었기 바랍니다.

툴킷 확장을 위한 유용한 도구

정규 표현식은 복잡한 문제의 해결을 가능하게 하는 매우 강력한 기능입니다. 정규 표현식은 기존 SQL 함수로는 흉내내기 어려운 다양한 기능을 지원합니다. 정규 표현식의 사용법이 다소 복잡해 보이기는 하지만, 그 기본적인 구성 요소만 익혀도 SQL뿐 아니라 다른 프로그래밍 언어에서도 유용한 도구로 활용하실 수 있을 것입니다. 원하는 패턴을 얻기 위해서는 여러 차례의 시행착오가 불가피할 수도 있습니다. 하지만 어느 누구도 정규 표현식의 우아함과 강력한 기능을 결코 무시할 수 없을 것입니다.

Alice Rischert (ar280@yahoo.com)는 콜럼비아 대학 컴퓨터 테크놀로지/애플리케이션 프로그램의 데이터베이스 애플리케이션 개발/설계 트랙 담당 회장입니다. 그녀는 <Oracle SQL Interactive Workbook 2nd edition(Prentice Hall, 2002)>과 조만간 출판 예정인 <Oracle SQL by Example(Prentice Hall, 2003)>의 저자이기도 합니다. Rischert 는 포춘 100대 기업에서 데이터베이스 설계, DBA, 프로젝트 리더로 15 년 간의 경력을 보유하고 있으며 오라클 데이터베이스는 버전 5부터 사용해 온 베테랑입니다.

표 1: 메타문자의 앵커(anchor) 적용

Metacharacter 설명
^ 라인의 시작 부분에 표현식을 적용
$ 라인의 끝부분에 표현식을 적용

표 2: 반복 연산자(Repetition Operator, Quantifier)

Quantifier 설명
* 0 회 또는 그 이상 횟수로 매치
? 0 회 또는 1 회 매치
+ 1 회 또는 그 이상 횟수로 매치
{m} 정확히 m 회 매치
{m,} 최소한 m 회 매치
{m, n} 최소 m 회, 최대 n 회 매치

표 3: 사전정의된 POSIX 문자 클래스

Character Class 설명
[:alpha:] 알파벳 문자
[:lower:] 소문자 알파벳 문자
[:upper:] 대문자 알파벳 문자
[:digit:] 숫자
[:alnum:] 알파벳/숫자
[:space:] 출력되지 않는 공백 문자(예: carriage return, newline, vertical tab, form feed 등
[:punct:] 구두점 기호
[:cntrl:] (출력되지 않는) 컨트롤 문자
[:print:] 출력 가능한 문자

표 4: 대체 매칭 및 표현식의 그룹화

Metacharacter 설명
| Alternation 대체 문자를 구분 (그룹핑 연산자 ()와 함께 사용하기도 함)
( ) Group 반복 연산자 또는 백레퍼런스(backreference)를 위해 대체 유닛을 서브표현식으로 그룹화 ("백레퍼런스" 섹션 참고)
[char] Character list I문자 리스트. 문자 리스트 내부에 위치하는 대부분의 메타문자는 일반 문자로 인식됨. 그 예외가 캐럿(^) 기호와 하이픈(-) 기호

표 5: REGEXP_LIKE 연산자

문법 설명
REGEXP_LIKE(source_string, pattern
[, match_parameter])
source_string은 문자 데이터타입 지원 (CHAR, VARCHAR2, CLOB, NCHAR, NVARCHAR2, NCLOB LONG 은 제외). pattern매개변수는 정규 표현식을 참조하는 또 다른 이름. 옵션으로 제공되는 match_parameter를 이용하여 newline 문자의 처리, 멀티라인 포맷의 유지, 대소문자 구분 등을 처리할 수 있음.

표 6: REGEXP_INSTR 함수

문법 설명
REGEXP_INSTR(source_string, pattern
[, start_position
[, occurrence
[, return_option
[, match_parameter]]]])
pattern을 검색하여 패턴의 첫 번째 위치를 반환. 필요한 경우 start_position y을 이용하여 검색을 시작할 위치를 지정할 수 있음. occurrence매개변수는 같은 패턴을 여러 번 검색하고자 하는 경우에 사용(디폴트는 1). return_option은 패턴의 시작 위치를 반환(디폴트 값은 0). 1로 설정되는 경우 매치된 패턴의 다음 문자 위치를 반환.

표 7: 5 자리 숫자 + 4 자리 Zip-Code 표현식에 대한 설명

문법 설명
  매치되어야 하는 빈 공백
[:digit:] POSIX "numeric digit" 클래스
] 문자 리스트(character list)의 끝
{5} 문자 리스트에 대해 정확히 5 회 반복
( 서브표현식(subexpression)의 시작 부분
- 하이픈(-) 문자 (문자 리스트 내의 range 메타문자로 사용되지 않았음에 주의)
[ 문자 리스트의 시작 부분
[:digit:] POSIX [:digit:] 클래스
[ 문자 리스트의 시작 부분
] 문자 리스트의 끝 부분
{4} 문자 리스트를 정확히 4 회 반복
) 서브표현식을 묶는 괄호 기호
? ? 반복 연산자는 그룹핑된 서브표현식을 0 회 또는 1 회 매치하여 옵션으로 4 자리 코드를 사용할 수 있게 함
$ 검색 위치를 라인의 끝부분으로 지정하기 위한 앵커 메타문자

표 8: The REGEXP_SUBSTR 함수

문법 설명
REGEXP_SUBSTR(source_string, pattern
[, position [, occurrence
[, match_parameter]]])
REGEXP_SUBSTR 함수는 패턴애 매치되는 서브문자열을 반환.

표 9: TheREGEXP_REPLACE 함수

문법 설명
REGEXP_REPLACE(source_string, pattern
[, replace_string [, position
[,occurrence, [match_parameter]]]])
매치된 패턴을 지정된 replace_string으로 대체하고, 복잡한 검색/대체 작업을 가능하게 하는 함수.

표 10: 백레퍼런스 메타문자 (Backreference Metacharacter)

Metacharacter 설명
\digit Backslash 백슬래시 뒤에 1-9 사이의 숫자를 명시하여, 괄호 처리된 N 번째 서브표현식을 참조하기 위해 사용.
(참고: 백슬래시는 정규 표현식에서 다른 의미로 사용되기도 함. 문맥에 따라 Escape 문자를 의미할 수도 있음.

표 11: 패턴-스왑(Pattern-Swap) 정규 표현식의 설명

정규 표현식 아이템 설명
( 첫 번째 서브표현식의 시작
. (newline을 제외한) 임의의 단일 문자와 매치
* 반복 연산자 - 앞의 . 메타문자와 0 회에서 n 회까지 매치
) 첫 번째 서브표현식의 마지막. 매치 결과는 \1
에 캡처됨(예제에서는 Ellen을 캡처)
  공백 기호
( 두 번째 서브표현식의 시작
. newline을 제외한 임의의 단일 문자와 매치
* 반복 연산자 - 앞의 . 메타문자와 0 회에서 n 회까지 매치
) 두 번째 서브표현식의 마지막; 매치 결과는 \2
에 캡처됨(예제에서는 Hildi를 저장).
  공백 기호
( 세 번째 서브표현식의 시작
. newline을 제외한 임의의 단일 문자와 매치
* 반복 연산자 - 앞의 . 메타문자와 0 회에서 n 회까지 매치
) 세 번째 서브표현식의 끝 부분. 매치 결과는 \3
에 캡처(예제에서는 Smith를 저장).

표 12: Social Security Number 정규 표현식의 설명

정규 표현식 아이템 설명
^ 라인 문자의 시작(정규 표현식은 매치되기 이전의 문자를 가져 올 수 없음.)
( 서브표현식을 시작하고 | 메타문자를 이용하여 대체 목록을 제공
[ 문자 리스트(character list)의 시작
[:digit:] POSIX "numeric digit" 클래스
] 문자 리스트의 끝 부분
{3} 문자 리스트를 정확하게 3 회 반복 적용
- 하이픈
[ 문자 리스트의 시작
[:digit:] POSIX numeric digit 클래스
] 문자 리스트의 끝 부분
{2} 문자 리스트를 정확하게 2 회 반복 적용
- 또 다른 하이픈 기호
[ 문자 리스트의 시작
[:digit:] POSIX numeric digit 클래스
] 문자 리스트의 끝 부분
{4} 문자 리스트를 정확하게 4 회 반복 적용
| 대체(alternation) 메타문자 - 첫 번째 선택을 종료하고 두 번째 대체 표현식을 시작
[ 문자 리스트의 시작
[:digit:] POSIX numeric digit 클래스.
] 문자 리스트의 끝 부분
{9} 문자 리스트를 정확하게 9 회 반복
) 대체를 위해 사용된 서브표현식 그룹을 종료하는 괄호 기호
$ 라인의 끝부분을 의미하는 앵커 메타문자 (매치된 패턴 이후에 어떤 문자도 뒤따라 올 수 없음)


출처: http://karria.tistory.com/9

'SQL' 카테고리의 다른 글

= null과 is null의 차이  (0) 2011.09.28
SQL Row를 Col으로 변환  (0) 2011.07.01
[ORACLE] MERGE INTO 활용  (0) 2011.05.19
Posted by iWithJoy
Linux/CentOS2013. 9. 16. 13:47

PHP에서 OpenSSL을 이용하여 프로그래밍을 하고 싶지만, PHP 컴파일시 OpenSSL 기능을 disable 시킨 경우, OpenSSL 기능 사용을 재 컴파일이 아닌 모듈로 설치해보자!

시스템 설치 소프트웨어

OS : CentOS 6.0 x86_64(2.6.32-71)

아파치 : apache-2.2.21

PHP : php-5.3.8

 

고객사의 요청으로 PHP 재컴파일이 아닌 기존 운영되고 있는 서비스에 간단히 OpenSSL 기능을 설치해서 이용하고 싶다고 하여,  확장 모듈 설치 방법을 통해 해결 하였다.

 

PHP에 포함되어 있는 phpize 명령은 PHP 확장모듈을 위한 빌드환경을 만들기 위해 사용한다.   OpenSSL의 확장모듈의 소스는 PHP 소스버전의 {PHP 소스디렉토리}/ext/openssl 이름의 디렉터리 안에 있다.

 

OpenSSL 확장 모듈 소스에는 phpize를 통해 빌드환경을 만들기 위한 config.m4 매크로 파일이 존재한다. OpenSSL은 이유가 무엇인지 모르지만 config0.m4로 되어 있어 이걸 config.m4로 파일명을 변경한 후에 설치 하면 된다.(config0.m4로 되어 있는 정확한 이유를 아시는 분은 알려주세요.)

 

OpenSSL 모듈 컴파일 및 설치

$ cd ext/openssl

$ mv config0.m4 config.m4
$ phpize
$ ./configure
$ make
# make install

 

make install를 이용하여 설치가 완료 되면 modulename.so 파일 형태로 설치가 된다.

설치를 통해 생성된 so 모듈 파일을 php.ini의 환경설정 파일에서 extension 지시자를 통해 로드 하여 이용하면 된다.

 

설치 완료 후 테스트

설치가 완료 되었다면 아파치를 재시작 하기 보다는 리눅스 shell상에서 php 인터프리터를 이용하여 openssl enable 상태를 확인 할 수가 있다.

 

 php -r "echo phpinfo();" | grep -i openssl

 

출력내용

OpenSSL support => enabled
OpenSSL Library Version => OpenSSL 1.0.0-fips 29 Mar 2010
OpenSSL Header Version => OpenSSL 1.0.0-fips 29 Mar 2010
OpenSSL support => enabled

 

이상으로 PHP의 확장 모듈 설치 방법에 대해 알아 보았다. 기본적으로 설치 소스상에 포함되지 않는 확장 모듈 소스는 PECL 저장소를 통해 이용할 수 있으니 참고하기 바란다.

 

PHP Extension and Application Repository(PEAR) 는 확장과 어플을 관리
 
PHP Extension Community Library(PECL) 은 확장만 관리

 

출처: http://blog.naver.com/kamagod?Redirect=Log&logNo=150132950715

Posted by iWithJoy
Linux/CentOS2013. 9. 16. 09:18

집에 있는 컴퓨터를 외부에서 접속할 수 있는 서버로 만들어 봅시다.

서버로 사용할 컴퓨터엔 CentOS 6.4가 이미 깔려 있음을 가정 합니다.

사용 공유기는 ipTime n6004r 입니다.


접속 경로[?]를 보자면 다음과 같습니다.

 

            외부   ----------------------------    공유기   --------------------------   집 컴퓨터

                                                      (SK, KT등이 할당해준 ip)                           (CentOS Server)


공유기 설정으로 들어가면 (ipTime 기준 브라우저에서 192.168.0.1) 외부아이피 라는게 있을 겁니다.

외부에서 해당 ip로 접속 하면 공유기가 포트포워딩을 통하여 집에 설치된 서버로 포워딩을 해주고 해당 서버에서 웹페이지를 보여준다는 시나리오 입니다.



1. 우선 서버의 내부 ip를 고정시킵니다.

공유기 설정에서

고급설정 - 네트워크 관리 - 내부 네트워크 설정 으로 들어가서 수동 IP 할당 설정을 합니다.



여기서는 192.168.22.22 로 하였습니다.

수정합니다. 

192.168.0.222 로 하였습니다. 스샷대로 하지 마세요


공유기 설정이 끝났으면 서버의 ip 설정을 해줍니다


#] vi /etc/sysconfig/network-scripts/ifcfg-eth0

위의 명령어로 편집 창을 엽니다.

열어보면 CentOS 설치시 설정이나 퓨터의 환경 등등에 따라 조금씩 다르게 써있을 수 있습니다.

나오지 않은 부분은 패스 하고 다음과 같이 설정합니다.


BOOTPROTO="static"              //보통 dhcp로 되어있습니다. 고정 IP할당을 위해 static으로 바꿉시다"

IPADDR="192.168.0.222"           //공유기 설정에서 할당한 ip 입니다.

NETMASK="255.255.255.0"       

GATEWAY="192.168.0.1"          //공유기 주소

DNS1="8.8.8.8"                                

DNS2="8.8.4.4"


위 설정 중 DNS설정은 공유기 설정에서

고급 설정 - 네트워크 관리 -인터넷 연결정보

에 나오는 기본 DNS를 DNS1에 보조 DNS를 DNS2에 입력해 줍니다.

귀찮으면 위처럼 그냥 구글이 제공하는 DNS를 넣습니다.


설정 완료 후 저장.

그리고 service network restart 로 네트워크 서비스를 재시작 해줍니다.

그 후 ping 8.8.8.8 등으로 핑이 제대로 들어가는지 확인!

제대로 들어가면 완료 된 겁니다.


확실하게 하기위해 putty 등을 이용해서 접속도 해 봅시다.

ip는 내부 아이피인 192.168.0.222 포트는 22 입니다.


ps. 세팅하던 중 매우 멍청한 짓을 했습니다 -_-;;;;

192.168.22.22 로 설정 해놓고 보니 계속 network is unreachable 뜨고 기본 게이트웨이도 안잡히는 겁니다.

원인은 공유기에서 동적 ip 주소 범위가 192.168.0.2 ~ 192.168.0.254로 잡혀있는데... 그 범위를 넘어가는 ip를 설정해놓고 왜 안되나 하고 삽질한 것 -_-...

혹시나 제 멍청한 짓이 타산지석이 되도록 스크린샷은 바꾸지 않았습니다 ㅠㅠ



2. jdk와 tomcat 설치

이부분은 구글링하면 워낙 많기도 하고, 프로그래밍좀 해봤다 하면 워낙 많이 하는 부분이니 그냥 슝슝 넘어가겠습니다.

환경변수 설정 정도나 작성해 두겠습니다.


vi /etc/profile 을 하여 맨 밑에 다음과 같이 작성해 주세요.

JAVA_HOME=/usr/java/jdk1.7.0_25

CATALINA_HOME=/usr/local/apache-tomcat-7.0.42

PATH=$PATH:$JAVA_HOME/bin

그후 커맨드에서 source /etc/profile



3. 방화벽 열기.

2번까지만 한 후 톰캣이 설치된 폴더의 bin ($CATALINA_HOME/bin) 에 가서 톰캣을 실행 시켜주면 실행이 됩니다.

다만 지금 상황에선 외부에서도 내부망에서도 접속을 할 수 없습니다.

톰캣이 사용하는 8080포트가 centos의 기본 방화벽에 막혀있기 때문입니다.

iptables를 편집하여 포트를 열어줍시다


vi /etc/sysconfig/iptables  로 파일을 연 후

-A INPUT -m state -state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

를 추가해 줍니다.

그리고

service iptables restart 로 재실행하면 완료 됩니다.


이제 내부망에서 http://192.168.0.222:8080 을 브라우저 주소에 입력하면 톰캣 시작 페이지가 뜨는걸 볼 수 있습니다.



4. 포트포워딩 및 ddns 등록

이제 마지막으로 외부에서 접속이 가능하도록 포트포워딩을 해주고 ddns서비스를 신청해야 합니다.


보통 가정에서 쓰는 인터넷은 유동ip가 할당이 되기 때문에 지금 할당된 ip로는 현재 접속이 된다고 해도 언제 접속이 안될지 알 수 없습니다.

이를 해결하기위해 주기적으로 변경된 ip와 사용자가 설정한 인터넷주소를 매칭시켜주는 서비스가 ddns서비스 입니다. 

많이 알려진 무료 ddns서비스로는 DNSever 등이 있는데요? 

저는 ipTime 공유기를 쓰다보니 공유기 1개당 ipTime에서 ddns서비스를 제공해 주더군요.


고급설정 - 특수기능 - DDNS 설정 으로 들어갑니다.

위 화면에서 호스트이름 abcdefd.iptime.org 이런 형태로 지어주시고 계정과 암호 할당 한 뒤 추가를 누릅니다.


그럼 화면에서와 같이 밑에 등록이 되는데요? 등록확인중 어쩌구 뜨면 접속상태 다시보기를 눌러줍시다.

그럼 정상등록이 되었다고 나올 겁니다.


이제 포트포워딩을 할 차례 입니다.


고급설정 - Nat/라우터관리 - 포트포워드 설정

으로 들어간 후

규칙이름 뭐 아무렇게 나 정해 주시고 

내부 IP는 192.168.0.222

프로토콜은 TCP

외부포트는 저는 :8080 을 생략하기 위해 80-80으로 하였습니다.

내부 포트는 톰캣이 실행되는 포트가 8080 이므로 8080해주셔야 합니다.


이렇게 완료 한후 이제 위에서 DDNS설정에서 설정해준

설정한이름.iptime.org 로 접속하면 이제 외부에서도 동일한 톰캣 화면을 볼 수 있습니다.

 

출처: http://notpeelbean.tistory.com/123

'Linux > CentOS' 카테고리의 다른 글

Apache KeepAlive 설정  (0) 2019.10.08
PHPIZE를 이용한 openSSL PHP 확장 모듈 설치  (0) 2013.09.16
CentOS 6.4(x86 64Bit) 웹서버 설치  (0) 2013.09.15
리눅스 yum 명령어  (0) 2012.10.10
BackupPC for CentOS  (0) 2012.10.09
Posted by iWithJoy
Linux/CentOS2013. 9. 15. 01:13

Web Server로 설치 후에

 

KDE를 설치하는 과정을 설명하도록 하겠다.

CentOS 버전은 6.4 이며 진행과정은 root권한을 획득한 후 진행한다.


우선 다음 명령으로 [X Window System] 그룹을 인스톨한다.

$ yum groupinstall "X Window System"


그러면 백 개 넘는 패키지가 설치될 것이라고 알려주고 사용자의 대답을 기다린다. "y"를 입력하여 진행한다.

Total download size: 47 M
Installed size: 139 M
Is this ok [y/N]: y


그리고 [KDE Desktop]을 설치한다.

$ yum groupinstall "KDE Desktop"


마찬가지로 백 몇십 개가 되는 패키지를 설치할 것이라고 메세지를 보여주고 사용자의 대답을 기다린다. 역시 "y"를 입력하여 진행한다.


이제 KDE 데스크탑을 실행해준다.

$ startx


참고사이트 : http://selene0301.tistory.com/266

 

 

GNOME를 설치하는 과정을 설명하도록 하겠다.

CentOS 버전은 6.4 이며 진행과정은 root권한을 획득한 후 진행한다.


다음과 같이 [Desktop]을 설치한다.

$  yum groupinstall "Desktop"

 

부팅시 자동으로 GUI 화면으로 부팅되도록 다음 명령어로 편집기를 연다.

$ vi /etc/inittab


다음과 같이 숫자를 3에서 5로 바꾸어주고 재부팅을 한다.

id:5:initdefault:


재부팅을 하면 GUI화면으로 로그인할 수 있다.


참고사이트 : http://selene0301.tistory.com/267

 

 

한글 키보드 설정

$ yum install ibus ibus-hangul ibus-anthy

System > Preferences > Input Method > 한글 선택 
Ctrl + Alt + Backspace
로그인 후에 System tray 에서 설정(한영 전환: Ctrl+Space(기본))


네트워크 설정
$ vi /etc/sysconfig/network-scripts/ifcfg-eth0
--------------------------------------------------------------------------------
:

ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=121.***.225.***
NETMASK=255.255.255.0
GATEWAY=121.***.225.***
DNS1=168.126.63.1
DNS2=168.126.63.2
PREFIX=24
DEFROUTE=yes
:
--------------------------------------------------------------------------------
$ service network stop
$ service network start
$ service network restart

만약, 호스트명(hostname)을 확인하려면,
# hostname
변경하려면,
# vi /etc/sysconfig/network
를 수행하여,
HOSTNAME=myhost
처럼 원하는 호스트명으로 수정하고, 저장한 뒤에 리부팅(# init 6)을 수행한다.
결과는 아래와 같다.
[root@myhost ~]# _


기본 프로그램 설치
adobe 프로그램 설치 요구되면, 해당 rpm 다운로드 후에
$ rpm -Uvh adobe-release-i386-1.0-1.noarch.rpm
Midnight Commander 설치
$ yum install mc
Krusader 설치
$ rpm -Uvh krusader-2.3.0-0.3.beta1.el6.R.x86_64.rpm
Teamviewer 설치
$ rpm -Uvh teamviewer_linux.rpm
설치 시에 전송 중지에 의한 오류가 발생하면, 아래와 같이 전송완료처리 후에 재설치
$ yum-complete-transaction


방화벽 설치
시스템 > 소프트웨어 추가/제거 > firewall
√ IPv6 support for iptables
√ Tools for managing Linux kernel packet filtering capabilities
√ system-config-firewall base components and command line tool
√ A text interface for basic firewall setup
√ A graphical interface for basic firewall setup
[적용] 수행
시스템 > 관리 > 방화벽
- 그 외의 포트
  . 5900, tcp, vnc-server
  . 5901, tcp
  . 5902, tcp
- 포트포워딩
  . 소스: eth0, tcp, 5900
  . 수신지: 로컬포트포워딩, 5901


VNC 설치
기존 VNC 중복설치에 의한 충돌의 경우, 아래와 같이 먼저 삭제
$ cd /usr/bin
$ ls -al vnc*
$ rm vnc*
$ yum -y remove vnc
$ yum -y remove vnc-server
VNC 재설치
$ yum -y install vnc
$ yum -y install vnc-server

필요에 따라 화면크기, 색상수 등을 설정
$ vi /usr/bin/vncserver

접속계정 설정
$ vi /etc/sysconfig/vncservers
--------------------------------------------------------------------------------
:
VNCSERVERS="1:username 2:root"
VNCSERVERARGS[1]="-geometry 1024x768"
VNCSERVERARGS[2]="-geometry 1024x768"
--------------------------------------------------------------------------------
접속 암호 설정(계정별 로그인하여 각각 설정 필요)
$ vncpasswd
만약, 계정 1개만 vnc서비스로 수행을 원하고, service vncserver start 수행 시에 오류 발생의 경우,
service vncserver stop 수행 후에 /etc/sysconfig/vncservers 를 수정하고,
root(su) 계정에서 다시 service vncserver start 수행 필요.
이때, /etc/sysconfig/vncservers 에
VNCSERVERS="1:username"
VNCSERVERARGS[1]="-geometry 1024x768"
 이면, /usr/bin/vncserver 설정의
$vncPort = 5900 + $displayNumber; 내용과 같이, 포트번호 5900+1=5901 이므로
해당 포트 5901을 방화벽에서 오픈처리 필요


서비스 시작 시에 수행될 설정내용을 확인하려면,
$ vi /root/.vnc/xstartup

필요시에 방화벽 환경설정 확인하여 변경 후, 재시작
$ netstat -antp
$ vi /etc/sysconfig/iptables
--------------------------------------------------------------------------------
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -i eth0 -p tcp --dport 5900 -j MARK --set-mark 0x64
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -i eth0 -p tcp --dport 5900 -m mark --mark 0x64 -j DNAT --to-destination :5901
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -m state --state NEW -m tcp -p tcp --dport 5901 -m mark --mark 0x64 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5900 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5902 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
--------------------------------------------------------------------------------
$ /etc/rc.d/init.d/iptables restart
방화벽 포트 확인 후에 vncserver 시작
$ iptables -nvL
$ netstat -tpln|grep "5900"
$ service vncserver stop
$ service vncserver start
또는
$ service vncserver restart

시스템 시작 시에 vncserver 구동을 위해 등록
$ chkconfig vncserver on


openSSL 설치
$ yum -y install openssl* (기설치된 상태)
yum install mod_ssl openssl (기설치된 상태)

self-signed certificate 생성

OpenSSL을 이용해 self-signed certificate를 생성한다. 위에서 쓴 글이지만 서비스를 할 예정이라면 verisign과 같은 업체에서 인증서를 사서 써야겠지만 개인 사이트라면 self-signed certificate 라면 충분하다고 한다. 다음과 같이 입력하거나 복사&붙여넣는다.


인증서 생성에 대한 보다 자세한 설명은 아래 링크를 참조한다.

http://dimdim.tistory.com/50


private key 생성

# openssl genrsa -out ca.key 1024


CSR(Certificate Signing Request) 생성

# openssl req -new -key ca.key -out ca.csr

:
[예제] : [자신의정보입력]

Country Name (2 letter code) [XX]:KR
State or Province Name (full name) []:Seoul
Locality Name (eg, city) [Default City]:Seocho-gu
Organization Name (eg, company) [Default Company Ltd]:Company Incorporate
Organizational Unit Name (eg, section) []:Technical Support Dept.
Common Name (eg, your name or your server's hostname) []:company.com
Email Address []:company@gmail.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
:

Self signed key 생성

# openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt


다음 위치에 files을 복사한다.

# cp ca.crt /etc/pki/tls/certs

# cp ca.key /etc/pki/tls/private/ca.key

# cp ca.csr /etc/pki/tls/private/ca.csr


SELinux 에 의해 Certificate files이 삭제될 수 있다.
이로 인해 삭제된 구문을 원복시키기 위해 다음 명령어를 쓴다.
삭제된 경우, 이 명령어를 통해 복원 된다. 

# restorecon -RvF /etc/pki

/etc/pki/* 하위의 모든 폴더나 파일에서 삭제된 구문을 복원한다.


# vi /etc/httpd/conf.d/ssl.conf

아파치의 ssl 설정을 변경하기 위해 편집기로 열어 아래와 같이 수정한다.


SSLCertificateFile /etc/pki/tls/certs/ca.crt

SSLCertificateKeyFile /etc/pki/tls/private/ca.key


# service httpd restart


3. SSL VirtualHost 추가

SSL은 443 포트를 사용하기 때문에 이를 위한 Virtualhost를 추가한다.


# vi /etc/httpd/conf/httpd.conf

httpd 설정 파일을 편집기로 열어 마지막 위치에 아래 내용을 입력한다. httpd.conf 파일 내에 예제로 적혀있는 내용이 있으니 복사&붙여넣기 하면 된다.


# SSL Virtual host add

NameVirtualHost *:443


# SSL Virtual host add
<VirtualHost *:443>
    SSLEngine on
    SSLCertificateFile /etc/pki/tls/certs/ca.crt
    SSLCertificateKeyFile /etc/pki/tls/private/ca.key
    ServerAdmin starkapin@tistory.com
    DocumentRoot /var/www/html
    ServerName ssl.starkapin.com
    ErrorLog logs/ssl_starkapin_com_error_log
    CustomLog logs/ssl_starkapin_com_error_log common
</VirtualHost>


# service httpd restart


4. 방화벽 설정

443 포트를 방화벽으로 허용시켜준다.


# vi /etc/sysconfig/iptables

편집기로 불러와 아래 내용을 추가한다.


-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT


# service iptables restart


이제 웹으로 접속해서 확인 하면 인증서 경고가 발생하며 접속됨을 확인 할 수 있다.

https://127.0.0.1/



APM 설치
최신 php 버전이 보안관련하여, safe_mode 옵션항목 등이 삭제된 관계로
kcp에서 제공한 실행파일을 php에서 사용이 불가하여, php 5.3.10 설치수행이 필요

@ 설치된 버전 확인

# yum search php

# yum list installed | grep php

# php -v

@ 필수 설치 패키지 확인
# yum list libtool
# yum list libtool-ltdl
# yum list libtool-ltdl-devel

 

@권한 확인: 755이상으로 설정

# ls –al /app
# ls -al /app/ora11g/11g/network/admin/tnsnames.ora

 

@rpm으로 설치된 httpd를 확인 및 삭제

# rpm -qa | grep http
httpd-2.2.15-29.el6.centos.x86_64
httpd-tools-2.2.15-29.el6.centos.x86_64
jakarta-commons-httpclient-3.1-0.7.el6_3.x86_64
httpd-manual-2.2.15-29.el6.centos.noarch
# rpm -e --nodeps httpd-2.2.15-29.el6.centos.x86_64
# rpm -e --nodeps httpd-tools-2.2.15-29.el6.centos.x86_64


@ 패키지 제거 및 설치
# rpm -qa httpd php mysql

mysql-5.1.69-1.el6_4.x86_64
php-5.3.3-23.el6_4.x86_64
# yum remove -y httpd php mysql

:

Dependency Removed:
  akonadi.x86_64 0:1.2.1-2.el6                                                 
  kdepim.x86_64 6:4.3.4-6.el6                                                  
  kdepim-libs.x86_64 6:4.3.4-6.el6                                             
  kdepim-runtime.x86_64 0:4.3.4-5.el6                                          
  kdepim-runtime-libs.x86_64 0:4.3.4-5.el6                                     
  kdepimlibs-akonadi.x86_64 0:4.3.4-4.el6                                      
  mysql-server.x86_64 0:5.1.69-1.el6_4                                         

Complete!
# rm -fR php

# rm /usr/local/lib/php.ini

 

 

@ 서버운영에 필요한 소스 및 라이브러리 추가
설치된 것 외에 210개가 추가로 설치된다.
# yum -y install ORBit2 PyXML a2ps acpid alsa-lib amtu aspell at atk audiofile audit-libs-python autoconf autofs automake avahi avahi-glib bc bind bind-chroot bind-libs bind-utils cairo ccid compat-libstdc++-33 conman cpp cpuspeed crash createrepo crypto-utils cryptsetup-luks cups-libs cvs cyrus-sasl-md5 cyrus-sasl-plain db4-devel dbus-python device-mapper-multipath dhcp dhcp-devel dialog dmraid dos2unix dosfstools dump e2fsprogs-devel ed eject elfutils elfutils-libs enscript expat-devel expect expect-devel expectk fetchmail file finger flex fontconfig fontconfig-devel foomatic freetype freetype-devel ftp gcc gcc-c++ gd gd-devel gd-progs gdb gdbm-devel gettext gfs2-utils glib2-devel glibc-devel glibc-headers gmp-devel gnutls gpm gtk2 hal hdparm hesiod hicolor-icon-theme imake iptraf iptstate ipvsadm irqbalance jwhois kernel-devel kernel-headers keyutils-libs-devel kpartx krb5-devel krb5-workstation ksh lcms lftp libICE libSM libX11 libX11-devel libXau libXau-devel libXcursor libXdmcp libXdmcp-devel libXext libXfixes libXft libXi libXinerama libXpm libXpm-devel libXrandr libXrender libXt libXxf86vm libaio libaio-devel libart_lgpl libbonobo libc-client libcurl-devel libdaemon libevent libfontenc libgomp libgssglue libhugetlbfs libhugetlbfs-devel libidn-devel libjpeg libjpeg-devel libmng libnl libnl-devel libpcap libpng libpng-devel libselinux-devel libselinux-python libsepol-devel libsmi libstdc++-devel libsysfs libtiff libtool libtool-ltdl libwvstreams libxml2-devel libxml2-python libxslt libxslt-python lksctp-tools logwatch lrzsz lsof m2crypto mailcap mailx make man man-pages man-pages-ko mc mcstrans mdadm memtest86+ mesa-libGL mesa-libGL-devel mgetty microcode_ctl mkbootdisk mlocate mrtg mt-st mtools mtr mutt nc ncurses-devel net-snmp-libs netpbm nfs-utils nfs-utils-lib nmap nscd nss_db ntp ntsysv numactl oddjob openssh-clients openssl-devel pam-devel pam_krb5 pam_passwdqc pam_pkcs11 pango parted parted-devel patch pax pciutils pcsc-lite perl perl-Archive-Tar perl-BSD-Resource perl-Compress-Zlib perl-DBI perl-Digest-HMAC perl-Digest-SHA1 perl-HTML-Parser perl-HTML-Tagset perl-IO-Socket-INET6 perl-IO-Socket-SSL perl-IO-Zlib perl-Net-IP perl-Net-SSLeay perl-Newt perl-Socket6 perl-String-CRC32 perl-URI perl-libwww-perl pkgconfig pm-utils postgresql-libs prelink procmail psacct psutils pulseaudio-esound-compat pyOpenSSL pykickstart pyorbit pyparted python-pyblock pyxf86config quota rdate rdist readahead rmt rpcbind rpm-build rsh rsync rusers rwho samba samba-client samba-common samba-swat sendmail sendmail-cf setools setserial setuptool shared-mime-info sip sos spamassassin squashfs-tools strace stunnel symlinks sysfsutils syslinux sysstat system-config-date system-config-firewall talk tcl tcp_wrappers tcpdump tcsh telnet telnet-server time tk tmpwatch traceroute tree ttmkfdir unix2dos unixODBC unzip usbutils usermode vconfig vim-common vim-enhanced vsftpd wget wireless-tools words xfsprogs xfsprogs-devel xinetd xorg-x11-proto-devel yp-tools ypbind ypserv zip zlib-devel GConf2 ImageMagick ImageMagick-perl avahi-libs bwidget cloog-ppl crda cryptsetup-luks-libs cups db4-cxx deltarpm desktop-file-utils device-mapper-multipath-libs dmidecode dmraid-events docbook-dtds flac foomatic-db foomatic-db-filesystem foomatic-db-ppds ghostscript ghostscript-fonts gnome-doc-utils-stylesheets gnome-python2 gnome-python2-canvas gnome-user-docs gnome-vfs2 gpm-libs groff-perl gstreamer gstreamer-tools hal-info hal-libs html2ps hunspell iw jasper-libs kpathsea lcms-libs libIDL libX11-common libXcomposite libXdamage libXdamage-devel libXext-devel libXfixes-devel libXfont libXres libXtst libXxf86vm-devel libasyncns libcanberra libcanberra-gtk2 libcom_err-devel libcroco libdrm-devel libedit libglade2 libgnomecanvas libgsf libnetfilter_conntrack libnfnetlink libnotify libogg libpaper librsvg2 libsamplerate libsndfile libtalloc libtasn1 libtdb libthai libtirpc libusb1 libvorbis libwmf-lite libwnck libxcb libxcb-devel lm_sensors-libs mesa-dri-drivers mozilla-filesystem mpfr mrtg-libs netpbm-progs notification-daemon ntpdate openjpeg-libs pcsc-lite-libs perl-Compress-Raw-Zlib perl-Crypt-OpenSSL-Bignum perl-Crypt-OpenSSL-RSA perl-Crypt-OpenSSL-Random perl-Date-Manip perl-Digest-SHA perl-Encode-Detect perl-ExtUtils-MakeMaker perl-ExtUtils-ParseXS perl-IO-Compress-Base perl-IO-Compress-Zlib perl-Mail-DKIM perl-MailTools perl-Module-Pluggable perl-Net-DNS perl-Net-LibIDN perl-NetAddr-IP perl-Package-Constants perl-Pod-Escapes perl-Pod-Simple perl-SNMP_Session perl-Test-Harness perl-Time-HiRes perl-TimeDate perl-YAML-Syck perl-devel perl-libs perl-version pixman poppler poppler-data poppler-utils portreserve ppl psutils-perl pulseaudio pulseaudio-libs pycairo pygobject2 pygtk2 pygtk2-libglade python-decorator python-deltarpm python-slip python-slip-dbus rarian rarian-compat rtkit samba-winbind-clients setools-console setools-gui setools-libs setools-libs-tcl sgml-common sgpio sound-theme-freedesktop speex startup-notification system-config-date-docs system-config-firewall-tui tex-preview texinfo texinfo-tex texlive texlive-dvips texlive-latex texlive-texmf texlive-texmf-dvips texlive-texmf-errata texlive-texmf-errata-dvips texlive-texmf-errata-fonts texlive-texmf-errata-latex texlive-texmf-fonts texlive-texmf-latex texlive-utils tokyocabinet urlview urw-fonts usermode-gtk xcb-util xml-common xorg-x11-font-utils xulrunner xz xz-lzma-compat yelp lksctp-tools-devel apr-util apr-util-devel libtool-ltdl-devel libmcrypt libmcrypt-devel gmp mhash mhash-devel gdbm zlib curl g++ openssl bzip2-devel libc-client-devel bison system-config-securitylevel

@ cmake 설치
# cd /usr/local/src
http://www.cmake.org 에서 최신 버전을 확인하여 해당 버전으로 설치한다.
# wget http://www.cmake.org/files/v2.8/cmake-2.8.11.2.tar.gz (최신버전)
# tar zxvf cmake-2.8.11.2.tar.gz (최신버전)
# cd cmake-2.8.11.2 (최신버전)
# ./bootstrap
# make; make install

@ mysql 최신버전 설치
# cd /usr/local/src
http://www.mysql.com/downloads/mysql/ 에서 Source Code 중,
Generic Linux (Architecture Independent), Compressed TAR Archive 최신버전을 Download 수행한다.
# wget http://www.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.13.tar.gz/from/http://mirror.khlug.org/mysql/ (최신버전)

# tar zxvf mysql-5.6.13.tar.gz (최신버전) 

# cd mysql-5.6.13  (최신버전) 
# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DENABLED_LOCAL_INIFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_EXTRA_CHARSETS=all -DWITH_SSL=system -DWITH_ZLIB=system -DENABLED_LOCAL_INFILE=1 -DWITH_READLINE=1 -DWITH_VALGRIND=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_DATADIR=/usr/local/mysql/data

실행 중에 아래와 같은 오류가 발생하면,
:
CMake Error at configure.cmake:1071 (MESSAGE):
  Unable to find Valgrind header files
  valgrind/memcheck.h;valgrind/valgrind.h.  Make sure you have them in your
  include path.
Call Stack (most recent call first):
  CMakeLists.txt:314 (INCLUDE)

-- Configuring incomplete, errors occurred!
일부 패키지가 미설치된 상태이므로 다음과 같이 설치한다.
# yum install valgrind
yum install valgrind-devel
기존 소스를 모두 지우고, tar 실행부분부터 다시 수행한다.
# cd ..
# rm -fR mysql-5.6.13

wget 명령 다음, tar 부분부터 다시 수행...


# make; make install

# groupadd mysql
# useradd -M -o -r -d /usr/local/mysql -s /sbin/nologin -c "Mysql Server" -u 27 -g mysql mysql >/dev/null 2>&1 || :
# chown -R root:mysql /usr/local/mysql; chown -R mysql:mysql /usr/local/mysql/data
# cd /usr/local/mysql; ./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data

@ 비밀번호 설정
# cp support-files/mysql.server /etc/init.d/mysqld
# cp support-files/my-huge.cnf /etc/my.cnf --> 메모리 1G 이상
# cp support-files/my-medium.cnf /etc/my.cnf
mysql-5.6.13 에는 support-files 아래에 실행에 필요한 cnf 파일이 미존재하여
첨부된 기존 버전의 my.cnf를 /etc/my.cnf로 저장한다. 

my.cnf

# vi /etc/init.d/mysqld ##### datadir 찾아서 datadir=/usr/local/mysql/data 라고 입력
# service mysqld start
# chkconfig --add mysqld
# chkconfig --level 35 mysqld on (런레벨 35일때 자동 실행 된다)
# chkconfig --list | grep mysqld
@ 리부팅시 서비스 실행하지 않으려면 - chkconfig mysqld off
# /usr/local/mysql/bin/mysqladmin -u root password
설치 작업이 끝났다면 익명접근권한을 삭제하자. ( mysql 콘솔에 그냥 접근을 못하게 해야 함.)
# /usr/local/mysql/bin/mysql -u root -p
# Enter password:
# mysql> USE mysql;
# mysql> delete from user where password = "";
# mysql> exit
# /usr/local/mysql/bin/mysqladmin -u root -p reload
# Enter password:

@ cronolog 설치(apache log 분할) 

# cd /usr/local/src
# wget http://www.youtu.kr/mirror/cronolog-1.6.2.tar.gz
# tar xvf cronolog-1.6.2.tar.gz
# cd cronolog-1.6.2
# ./configure
# make;make install 


 

Apache 설치

1. 라이브러리 설치
yum -y install gcc
yum -y install openssl-devel
yum -y install apr-devel
yum -y install apr-util-devel
yum -y install pcre-devel
yum -y install zlib-devel
 
 
2. 아파치 다운로드 & 컴파일 
# cd /usr/local/src 
# wget http://linux-files.com/httpd/httpd-2.4.6.tar.gz  (http://linux-files.com/httpd/ 에서 최신버전 검색하여 버전 수정 후에 수행)
# tar zxvf httpd-2.4.6.tar.gz
# cd httpd-2.4.6
 

./configure 옵션 설명

--prefix=/usr/local/apache : 아파치의디렉토리설정 

--enable-so : DSO 방식으로 설치 

--enable-ssl : SSL/TLS지원 (mod_ssl) 

--with-mpm=worker : 아파치프로세스가 사용할 멀티스레드방식으로 지정 

Worker, beos, prefork, mpm_os2, prechild, leader,threadpool 등으로 설정가능 

Worker는 멀티프로세싱 모듈, 멀티스레드, 멀티프로세스 지원 

--disable-access : 호스트기반의 접근제어 

--disable-auth : 사용자기반 접근제어 

--enable-auth-anon : 익명 사용자 액세스를 위한 옵션 

--enable-auth-dbm : 암호인증방식으로 DBM 데이터베이스의 인증방식을 지원 

--enable-auth-digest :암호인증방식으로 RFC2617에 따른 digest를 지원 

--disable-status : 아파치프로세스/스레드 모니터링을 지원하지 않도록 하는 옵션 

--disable-autoindex: 디렉토리리스팅을 지원 

--enable-speling : 보편적으로 알려진 URL가운데 URL스펠링을 고쳐주는 스펠링보정기능을 위한 옵션 

--with-port-PORT : 아파치에서 사용할 포트번호를 지정 

--enable-disk-cache : 디스크 캐싱 기능을 위한 모듈을 넣을 수 있다. 

--enable-auth-ldap : LDAP기반 인증을 지원하기 위한 옵션 

./configure 수행 시에 아래와 같은 오류가 발생하는 경우, 해당 httpd 버전에 필요한 lib가 없기 때문이다.
checking for chosen layout... Apache
checking for working mkdir -p... yes
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
configure: 
configure: Configuring Apache Portable Runtime library...
configure: 
configure: error: Bundled APR requested but not found at ./srclib/. Download and unpack the corresponding apr and apr-util packages to ./srclib/.

현재 설치된 버전을 확인
# yum list |grep apr
apr.x86_64                             1.3.9-5.el6_2                   @anaconda-CentOS-201303020151.x86_64/6.4
apr-devel.x86_64                       1.3.9-5.el6_2                   @base    
apr-util.x86_64                        1.3.9-3.el6_0.1                 @anaconda-CentOS-201303020151.x86_64/6.4
apr-util-devel.x86_64                  1.3.9-3.el6_0.1                 @base    
apr-util-ldap.x86_64                   1.3.9-3.el6_0.1                 @anaconda-CentOS-201303020151.x86_64/6.4
apr.i686                               1.3.9-5.el6_2                   base     
apr-devel.i686                         1.3.9-5.el6_2                   base     
apr-util.i686                          1.3.9-3.el6_0.1                 base     
apr-util-devel.i686                    1.3.9-3.el6_0.1                 base     
apr-util-mysql.x86_64                  1.3.9-3.el6_0.1                 base     
apr-util-odbc.x86_64                   1.3.9-3.el6_0.1                 base     
apr-util-pgsql.x86_64                  1.3.9-3.el6_0.1                 base     
apr-util-sqlite.x86_64                 1.3.9-3.el6_0.1                 base     
haproxy.x86_64                         1.4.22-5.el6_4                  updates  

해당 lib를 다운로드하여 해당 디렉토리에 압축해제를 수행하고 다시 configure를 수행한다.
1. For Apache 2.4.x - you need apr and apr-util 1.4.x or later
(means most probably you do not have them yet in you OS repos
and need manually download them form http://apr.apache.org/download.cgi)
2. Extract them to ./srclib/apr 
and ./srclib/apr-util directory respectively.
3. Download -deps files for your Apache build from
http://httpd.apache.org/download.cgi#apache24
(I used this one - http://www.sai.msu.su/apache//httpd/httpd-2.4.6-deps.tar.gz)
4. Extract -deps files to your ./srclib/apr directory
5. Use --with-included-apr switch with ./configure script

# ./configure --prefix=/usr/local/apache  --enable-mods-shared=most --enable-ssl --with-ssl=/usr/local/openssl --enable-modules=ssl --enable-rewrite --with-included-apr --with-included-apr-util --enable-deflate --enable-expires --enable-headers --enable-proxy --enable-mpms-shared=all
 
# make && make install
 
3. 데몬등록
# /usr/local/apache/bin/apachectl -l
Compiled in modules:
  core.c
  mod_so.c
  http_core.c
  event.c
# cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
@ chkconfig를 이용해서 자동실행 등록해야 하지만 이전에 실행 스크립트 파일에 아래 내용 추가가 선행되어야 한다.
# vi /etc/init.d/httpd
-httpd 파일의 맨 끝에 아래의 내용... 
-----------------------------------------------  

# chkconfig: 2345 90 90
description: init file for Apache server daemon
processname: /usr/local/apache/bin/apachectl
config: /usr/local/apache/conf/httpd.conf
pidfile: /usr/local/apache/logs/httpd.pid 
-----------------------------------------------  
여기까지를 추가한다.

* chkconfig: 345 85 15

345는 부팅시 런레벨 3,4,5 에서 구동됨을 의미.

85는 데몬 실행 우선순위, 15는 데몬 종료 우선순위를 의미.

# chkconfig --add httpd

# chkconfig --list | grep httpd 
  
4. apache 설정 변경

# vi /usr/local/apache/conf/httpd.conf
주석을 해제하고 서버이름이나 IP주소를 설정합니다.

ServerName xxx.xxx.xxx.xxx (IP주소)
KeepAlive ON
서버관리자 메일주소 설정
ServerAdmin webmaster@localhost
인터넷주소 rewrite 모드 사용을 위한 설정
AllowOverride None  AllowOverride All

 

루트 디렉토리 설정에 대해 알맞게 수정

#DocumentRoot "/usr/local/apache/htdocs"

DocumentRoot "/home

#<Directory "/usr/local/apache/htdocs">

<Directory "/home">

웹 페이지 접속시 기본적으로 읽어 들일 파일명 설정 

DirectoryIndex index.html 를 찾아 DirectoryIndex index.html index.htm index.php index.php3 index.cgi index.jsp 로 수정
아래와 같이 추가 합니다.
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .htm .html .php .ph php3 .php4 .phtml .inc -->추가
AddType application/x-httpd-php-source .phps -->추가
주석제거 
# AddHandler cgi-script .cgi
몇가지 주석 및 제거 - 필요에 따라 더 적용해도 무방함
Include conf/extra/httpd-mpm.conf <-- 주석제거
Include conf/extra/httpd-userdir.conf <-- 주석제거
Include conf/extra/httpd-vhosts.conf <-- 주석제거
Include conf/extra/httpd-default.conf <-- 주석제거
<Directory />
Options FollowSymLinks

#AllowOverride None

AllowOverride All

Order deny,allow

#Deny from all <-- 주석처리
</Directory>


# vi /usr/local/apache/conf/extra/httpd-userdir.conf
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec 를
Options MultiViews SymLinksIfOwnerMatch IncludesNoExec 로
Indexes 를 삭제 한다.
# vi /usr/local/apache/conf/extra/httpd-vhosts.conf
내용을 모두 삭제하고 구문만 적용후 저장 - 저장방법은 :wq 인 것은 아시죠...^^
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /usr/local/apache/htdocs/
ServerName *
</VirtualHost>


#NameVirtualHost *:80
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot /usr/local/apache/htdocs/
    ServerName www.도메인주소
    ErrorLog logs/도메인주소.error_log
    #CustomLog logs/dummy-host2.example.com-access_log common
</VirtualHost>

# /etc/init.d/httpd start 수행 시에 아래와 같은 오류가 발생하는 경우,
AH00526: Syntax error on line 10 of /usr/local/apache/conf/extra/httpd-userdir.conf:
Invalid command 'UserDir', perhaps misspelled or defined by a module not included in the server configuration
# vi /usr/local/apache/conf/httpd.conf 로 들어가서
LoadModule userdir_module /etc/httpd/modules/mod_userdir.so 부분의 주석을 제거

# /etc/init.d/httpd start 수행 시에 아래와 같은 오류가 발생하는 경우,
AH00534: httpd: Configuration error: No MPM loaded.
# vi /usr/local/apache/conf/httpd.conf 로 들어가서
LoadModule mpm_event_module modules/mod_mpm_event.so 부분의 주석을 제거
(특정 LoadModule에 대한 오류가 발생한 경우, 해당 부분의 주석을 제거하여 재실행)
 

# /etc/init.d/httpd start 를 실행했을 때,
httpd: Syntax error on line 144 of /usr/local/apache/conf/httpd.conf: Cannot load /usr/local/apache/modules/mod_mpm_event.so into server: /usr/local/apache/modules/mod_mpm_event.so: cannot open shared object file: No such file or directory
와 같은 오류가 발생하는 경우, 해당 라인으로 이동(:144)하여 주석처리 후 재실행 하되,
AH00557: httpd: apr_sockaddr_info_get() failed for 도메인명
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
와 같은 오류가 추가로 발생하는 경우,
# cd /etc
# cp hosts hosts.old 를 수행하여 백업하고,
# vi hosts 를 수행하여,
127.0.0.1   localhost.localdomain localhost 도메인명
서버에할당된주소 도메인주소
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
로 수정하고 저장한 후,
# /etc/init.d/httpd start 를 실행하면 정상 수행되어야 한다.


@ 접속이 안될경우 80포트 열어 주어야 한다.
# vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT =>추가
# /etc/init.d/iptables restart 또는 service iptables restart
# service iptables restart 를 재수행해준다.

@ 기타 모듈 설치 (아래 PHP 설치 시에 라이브러리로 사용될 모듈)
# cd /usr/local/src
# mkdir etc
# cd etc
# wget
http://download.savannah.gnu.org/releases/freetype/freetype-2.4.8.tar.gz
# wget
http://www.peregrinehw.com/downloads/gd/gd-2.0.33.tar.gz
# wget
http://www.youtu.kr/mirror/jpegsrc.v6b.tar.gz
# wget
http://sourceforge.net/projects/libpng/files/libpng15/1.5.18/libpng-1.5.18.tar.gz
# wget
http://www.youtu.kr/mirror/imap-2004g.tar.bz2
# wget http://heanet.dl.sourceforge.net/mcrypt/libmcrypt-2.5.8.tar.gz
# wget
http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.30.tar.gz 
# tar zxvf freetype-2.4.8.tar.gz; tar zxvf gd-2.0.33.tar.gz; tar zxvf jpegsrc.v6b.tar.gz; tar zxvf libpng-1.5.18.tar.gz; tar jxvf imap-2004g.tar.bz2; tar zxvf libmcrypt-2.5.8.tar.gz; tar zxvf libiconv-1.14.tar.gz; tar zxvf pcre-8.30.tar.gz;
# cd /usr/local/src/etc/jpeg-6b; mkdir -p /usr/local/libjpeg/bin; mkdir -p /usr/local/libjpeg/man/man1; make clean;make -j4; make install; cp -f libjpeg.a /usr/local/lib; cp -f *.h /usr/include
# cd /usr/local/src/etc/libpng-1.5.18
# cp scripts/makefile.linux Makefile
# make clean;make -j4;make install
# cd /usr/local/src/etc/freetype-2.4.8
# make clean;./configure --prefix=/usr/local/freetype;make -j4;make install
# cd /usr/local/src/etc/gd-2.0.33
# make clean;./configure --prefix=/usr/local/gd;make -j4;make install
# cd /usr/local/src/etc/imap-2004g
# make clean;make slx SPECIALS="SSLDIR=/usr SSLINCLUDE=/usr/include SSLLIB=/usr/lib"
# cd /usr/local/src/etc/imap-2004g/c-client
# cp -f c-client.a /usr/lib; cp -f rfc822.h mail.h linkage.h /usr/include
# cd /usr/local/src/etc/libmcrypt-2.5.8
# make clean;./configure --prefix=/usr/local;make -j4;make install
# cd /usr/local/src/etc/libiconv-1.14
# make clean;./configure --prefix=/usr/local;make -j4;make install
# ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2
# cd /usr/local/src/etc/pcre-8.30 
# make clean;./configure --prefix=/usr/local;make -j4;make install 

PHP 설치
 
1.php 다운로드 & 라이브러리 컴파일
yum -y install zlib curl
yum -y install openssl openssl-devel
yum -y install libtermcap-devel ncurses-devel libc-client-devel bzip2-devel
yum -y install bison
yum -y install libpng

yum install net-snmp net-snmp-devel
yum -y install libjpeg-devel libpng-devel freetype-devel gd-devel libtermcap-devel ncurses-devel libxml2-devel libc-client-devel bzip2-devel
rpm -qa gcc* cpp* compat-gcc* flex* openssl*
rpm -qa libjpeg* libpng* freetype* gd-*

cd /usr/local/src
wget http://graphics.cs.uni-sb.de/NMM/Download/external/jpegsrc.v6b.tar.gz
wget http://www.ijg.org/files/jpegsrc.v6b.tar.gz 
tar xvfz jpegsrc.v6b.tar.gz
cd jpeg-6b/
cp /usr/share/libtool/config/config.guess ./
cp /usr/share/libtool/config/config.sub ./  
mkdir /usr/local/jpeg  

mkdir /usr/local/jpeg/include  

mkdir /usr/local/jpeg/lib  

mkdir /usr/local/jpeg/bin  

mkdir /usr/local/jpeg/man  

mkdir -p /usr/local/man/man1
mkdir /usr/local/jpeg/man/man1
./configure --enable-shared --enable-static

./configure --prefix=/usr/local/jpeg --enable-shared --enable-static  

make && make install

make libdir=/usr/lib64  

make install  

에러 발생 원인 및 해결법

 config.guess와 config.sub 를 복사하지 않는 다면 configure 시에 아래와 같은 메세지가 나온다.

checking host system type... Invalid configuration `x86_64-unknown-linux-gnu': machine `x86_64-unknown' not recognized

  
 미리 mkdir 명령어로 디렉토리를 만들지 않는다면 아래와 같은 메세지가 나온다.

                /usr/bin/install -c -m 644 jconfig.h /usr/local/jpeg/include/jconfig.h
                /usr/bin/install: cannot create regular file `/usr/local/jpeg/include/jconfig.h': No such file or directory
                make: *** [install-headers] Error 1

 man 과 man1 디렉토리를 만들지 않는다면 아래와 같은 메세지가 나온다.

                /usr/bin/install -c -m 644 ./cjpeg.1 /usr/local/jpeg/man/man1/cjpeg.1
                /usr/bin/install: cannot create regular file `/usr/local/jpeg/man/man1/cjpeg.1': No such file or directory

 64bit arch를 사용한다면 make할때 libdir=/usr/lib64 옵션을 주어야 한다.
 

cd /usr/local/src
wet http://cdnetworks-kr-1.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
tar xvfz libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure
make && make install

# cd /usr/local/src
# wget http://kr2.php.net/get/php-5.3.10.tar.gz/from/kr.php.net/mirror
# wget http://museum.php.net/php5/php-5.3.10.tar.gz 
# tar zxvf php-5.3.10.tar.gz
# cd php-5.3.10
# make clean
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/lib --with-gd --with-freetype-dir=/usr/local/freetype --with-zlib --enable-sockets --enable-gd-native-ttf --with-png-dir=/usr/local/lib --with-jpeg-dir=/usr/local/lib --enable-sigchild --enable-magic-quotes --with-gettext --enable-mbstring --enable-inline-optimization --enable-bcmath --enable-shmop --enable-calendar --enable-ftp --with-gdbm --with-iconv=/usr/local --enable-mbregex --with-imap --with-imap-ssl --with-openssl --with-curl --enable-soap --disable-debug --with-mcrypt=/usr/local/libmcrypt --with-kerberos --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mod-charset --enable-safe-mode --enable-sysvmsg --enable-sysvsem --enable-sysvshm --with-snmp --with-zlib-dir --enable-exif --with-xpm-dir --with-libxml-dir --with-pcre-dir --enable-sqlite-utf8 --with-regex=php --with-bz2
...
creating main/internal_functions_cli.c
+--------------------------------------------------------------------+
| License:                                                           |
| This software is subject to the PHP License, available in this     |
| distribution in the file LICENSE.  By continuing this installation |
| process, you are bound by the terms of this license agreement.     |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point.                            |
+--------------------------------------------------------------------+
Thank you for using PHP.
[root@ns php-5.3.10]# 

위와 같이 표시되어야 정상수행된 것입니다. 확인하시기 바랍니다. 

# make -j4; make install 

# cp php.ini-production /usr/local/lib/php.ini --> 5.3.0 이후 버전 


------------------------------------------------------------------------------------------
컴파일 오류시 대처
컴파일 오류는 해당 라이브러리 미설치 또는 configure 옵션설정 오류가 대부분입니다.
반드시, configure의 옵션설정부분의 라이브러리 설치를 확인하고, 옵션 오류가 없는 지 먼저 확인해야 합니다.

1. configure: error: xml2-config not found. Please check your libxml2 installation.
# yum install libxml2-devel

 

2. configure: error: Please reinstall the BZip2 distribution
해결책 :
[root@localhost local]# wget ftp://sources.redhat.com/pub/bzip2/v102/bzip2-1.0.2.tar.gz
Bzip2팩키지는 configure script가 없습니다. option을 한줄로 써서 컴파일 하고 설치합니다.
# cd bzip2-1.0.2
# make PREFIX=/tools install
# make clean
# cd ../php-5.2.11

 

3. configure: error: libXpm.(a|so) not found
# yum install gtk+ gtk+-devel

# yum install libXpm-devel

(# yum install xorg-x11-devel)

# sudo ln -s /usr/lib/x86_64-linux-gnu/libXpm.a /usr/lib/libXpm.a

# sudo ln -s /usr/lib/x86_64-linux-gnu/libXpm.so /usr/lib/libXpm.so

# sudo ln -s /usr/lib64/libXpm.so /usr/lib/libXpm.so

configure의 --with-libdir=/usr/lib64 를 --with-libdir=lib64 로 수정하고, configure 재수행!

 

4. configure: error: mcrypt.h not found. Please reinstall libmcrypt.  
# cd ..
# wget http://ftp.linux.co.kr/pub/etc/libmcrypt-2.5.7.tar.gz
# tar zxvfp libmcrypt-2.5.7.tar.gz
# cd libmcrypt-2.5.7
# ./configure && make && make install
# cd ../php-5.2.11

 

5. /usr/bin/ld: cannot find -lltdl
collect2: ld returned 1 exit status
make: *** [libphp5.la] Error 1 
# cd ..
# wget http://ftp.gnu.org/gnu/libtool/libtool-2.2.6a.tar.gz
# cd libtool-2.2.6
# ./configure
# make
# make install
# cd ../php-5.2.11

 

6. overflow2
~/php-5.3.4/ext/gd/gd.c (php를 받아서 압축을 푼 경로)


/*
        if (overflow2(font->nchars, font->h)) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Error reading font, invalid font header");
                efree(font);
                php_stream_close(stream);
                RETURN_FALSE;
        }
        if (overflow2(font->nchars * font->h, font->w )) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Error reading font, invalid font header");
                efree(font);
                php_stream_close(stream);
                RETURN_FALSE;
        }
*/ 해당 부분을 주석처리

[출처] [PHP] 컴파일시 나오는 에러대처|작성자 참좋은날

7. configure: error: Please reinstall the iconv library.
--with-iconv=/usr/local 를 --with-iconv 로 대체

8. checking for specified location of the MySQL UNIX socket... no
configure: error: Cannot find libmysqlclient_r under /usr/local/mysql.
Note that the MySQL client library is not bundled anymore!

When PHP is configured using --with-mysql=/usr/local/mysql and --with-libdir=lib64, it should search for /usr/local/mysql/lib64, since there is no such directory there encountered an error in PHP compile.

Since MYSQL is compiled from source, there will not be a 'lib64', the following steps will solve this problem.

[root@vps ~]# cd /usr/local/mysql  #Change directory to mysql's home directory
[root@vps mysql]# ln -s lib lib64    #Create a link for lib to lib64
를 수행하고, configure 재수행!
------------------------------------------------------------------------------------------

# vi /root/.bash_profile
PATH=$PATH:$HOME/bin 를
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/apache/bin:/usr/local/php/bin 로 수정

@ php.ini 설정
# vi /usr/local/lib/php.ini
post_max_size = 100M (Default: 8M)
file_uploads = On
upload_max_filesize = 100M (Default: 2M)
allow_url_fopen = Off (Default: On)
allow_url_include = Off
short_open_tag = On (Default: Off)
disable_functions = exec,passthru,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
(Default: disable_functions =)

# ntsysv <--- 서비스 상태확인

# reboot <-- 설정을 마치면 한번쯤 리부팅 해 주세요...^^
 
 
서비스 시작
# service mysqld start
# service httpd start


새로운 도메인을 추가하는 경우, 아래의 처리들을 다시한번 확인해본다.
--------------------------------------------------------------------------------
[root@ns user]# vi /etc/resolv.conf
[root@ns user]# vi /etc/hosts <--- 신규 추가 시에 추가 필요
[root@ns user]# vi /etc/named.conf <--- 신규 추가 시에 추가 필요
[root@ns user]# vi /var/named/chroot/var/named/도메인주소.zone <--- 신규 추가 시에 생성 필요
[root@ns user]# ln -s /var/named/chroot/var/named/도메인주소.zone /var/named/도메인주소.zone
[root@ns user]# vi /usr/local/apache/conf/httpd.conf <--- 신규 추가 시에 추가 필요

[root@ns user]# /etc/rc.d/init.d/named reload
[root@ns user]# service named restart  (# chkconfig --level 35 named on (부팅 시에 런레벨 35일때 자동 실행))
[root@ns user]# service httpd restart

이제, 도메인을 등록한 사이트의 네임 호스트 관리에서 네임 호스트 및 IP주소를 추가하고,
네임서버를 네임 호스트 관리에서 입력한 네임 호스트로 입력하여 변경을 수행(보통, 등록한 사이트의 네임서버로 초기설정된 상태)

등록을 완료한 후에 ISP의 네임서버에 등록 및 변경이 수행되기까지는 약간의 시간이 필요하다.
잠시 후에 아래의 명령으로 정상 등록 및 변경여부를 확인한다.

[root@ns user]# nslookup 도메인주소
[root@ns user]# dig 도메인주소

시스템 > 관리 > 사용자 및 그룹에서 사용자를 추가 후에 권한을 변경한다. 

[root@ns user]# chmod 711 /home/사용자
[root@ns user]# chmod 755 /home/사용자/www
[root@ns user]# chgrp -R 사용자 /home/사용자
[root@ns user]# chown -R 사용자 /home/사용자


 
 
기타 Apache 계정별 사용 설정
vi /usr/local/apache/conf/httpd.conf
 
Include conf/extra/httpd-userdir.conf
LoadModule userdir_module modules/mod_userdir.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_host_module modules/mod_authz_host.so
주석 제거
 
/home/계정디렉토리 권한 711
/home/계정/public_html 권한 755 필요
 

 
참고 URL 
http://vogel.tistory.com/143


ZendGuard 설치

 

* ZendOptimizer는 PHP 5.2까지만 지원됨으로 PHP5.3을 설치 하는 경우 ZendGuard를 설치한다.

 

step 1) ZendGuard 소스를 /usr/local/에 다운 받는다.
wget http://downloads.zend.com/guard/5.5.0/ZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gz

# uname -a

Linux mgribbon.net 2.6.32-358.18.1.el6.x86_64 #1 SMP Wed Aug 28 17:19:38 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

# cat /etc/issue

CentOS release 6.4 (Final)

Kernel \r on an \m

위와 같이 64-bit가 설치되었음을 확인한다.

wget http://downloads.zend.com/guard/5.5.0/ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz

 
step 2) 소스파일의 압축을 푼다

# tar zxvf ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz

 

step 3) Zend 모듈을 php 모듈에 복사한다.

cp ZendGuardLoader-php-5.3-linux-glibc23-x86_64/php-5.3.x/ZendGuardLoader.so /usr/lib64/php/modules

 

step 4)  /usr/local/lib/php.ini 파일에 Zend 설정을 추가한다.

vi /usr/local/lib/php.ini

..............
[Zend]
zend_extension=/usr/lib64/php/modules/ZendGuardLoader.so


설치 후에는 웹서버를 리스타트 수행한다.

# /etc/init.d/httpd restart 



 php pdo-mysql 확장 모듈 설치

 

1.pdo_mysql download 

wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz

 

2.설치
적당한 위치에 다운로드 받은 파일을 압축해제 후 압축해제한 디렉토리로 이동 
# tar -xzvf PDO_MYSQL-1.0.2.tgz
# cd
PDO_MYSQL-1.0.2

# /usr/local/php/bin/phpize

# ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql
# make

# make install 

Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20090626/

 

3.적용

php.ini 파일은 대부분 /etc 또는 apache/conf 디렉토리에 있음.

php.ini 파일에 추가
# vi /usr/local/lib/php.ini

extension=/usr/local/php/lib/php/extensions/no-debug-zts-20090626/pdo_mysql.so

 

추가 후 apache restart 하면 적용완료 됨!! 

# service httpd restart  


'Linux > CentOS' 카테고리의 다른 글

PHPIZE를 이용한 openSSL PHP 확장 모듈 설치  (0) 2013.09.16
집 컴퓨터를 웹서버로 만들기  (0) 2013.09.16
리눅스 yum 명령어  (0) 2012.10.10
BackupPC for CentOS  (0) 2012.10.09
아파치 모듈 mod_rewrite 설정  (0) 2012.09.13
Posted by iWithJoy