2018. 4. 27. 17:57


기타 정규식방법


1. 숫자형만 

_regexp = /[0-9]/gi;


2. 자릿수 제한(숫자형 3자리까지만 입력)

_regexp = /^[0-9].{0,2}$/;


3.날짜입력

_regexp = /[0-9\-.]/gi;

(날짜 숫자, 대쉬(-), 점(.) 만 입력가능하게)


4. 영문과 숫자만 입력가능

_regexp = /[A-Za-z0-9]/gi;


5. 이메일 형식

 _regexp = /^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;


6. 숫자나 특수문자 포함 10-15자리 영문 대소문자만 가능(암호같은거)

_regexp = /^(?=.*[a-zA-Z])((?=.*\d)|(?=.*\W)).{10,15}$/;


7. 한국, 영문 숫자

_regexp = /^[ㄱ-ㅎ|가-힣|a-z|A-Z|0-9]+$/;


8. 숫자와 "-" 만. (핸드폰번호)

_regexp = /[0-9\-]/gi;


9. 아이피

_regexp = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;


10. 재생시간(00:03:23)

 _regexp = /([0-9][0-9])\:([0-5][0-9])\:([0-5][0-9])/;


재생시간 00:03:12  이렇게 입력할때, 분, 초는 60초 넘으면 안되서, 계산하는 로직 짜는것도 좋지만, 


그냥 위에 처럼 , 쓰면 편하다.


 _regexp = /([0-9][0-9])\:([0-5][0-9])\:([0-5][0-9])/;

                 숫자(0-9)숫자(0-9)  :   숫자(0-5)숫자(0-9)  :   숫자(0-5)숫자(0-9)


분, 초위치에서 첫째자리 숫자는 0-5까지의 숫자만 쓸수있게 하는거다


첫째자리 숫자가 5 이상일리가 없으니까....



Posted by Tyson
2018. 4. 27. 14:59


작은 회사들은 사실 Git를 잘 안쓴다.


그냥 바로바로 적용하는게 빠르고 쉬우니까...


깃의 장점에 대한 설명은 여러 사이트에서 설명해주니까, 생략하고,


실제 우리회사에서 깃을 처음쓰고 다들 헷갈려했던 부분들이다.


브랜치 사용법을 어느정도 하고 사용하면, 쉬운데......


그냥 Master브랜치에다가 다 커밋해버린다...


그러면, SVN과 틀린게 없는데...


그래서 브랜치에 대한 설명을 해주고, 적용하는데 많은 시간이 걸린다.


익숙치 않기 때문이다.


그래서 예를 들어 설명하겠다.


현재 운영중인 서버가 있고,


개발용으로 dev서버가 있다.


각자 로컬에서 작업하고 최종을 master에 올려서 dev서버에서 master를 불러와서 그냥 적용해보고, 사용하다가


특별한 에러가 없으면, 실서버에도 master를 불러와서 돌렸다.


근데, 문제가...아직 dev에서 테스트 중에, 급하게 수정 요청이 들어온게 있다.


큰거는 아니고, 오타자 정도 수정인 간단한건데......


실서버에서 master를 불러오면, 아직 테스트가 안된 코드까지 올라가게 된다.


그래서 브랜치를 나눠서 하라는거다.....


예로 api 수정이 있어서....


있어서 수정해야 되면, 먼저 master 최신으로 pull한다음에....브랜치를 나눠서 작업하고,


master_dev라는 브랜치를 만들어서, 그곳에 merge해준다.


그리고 dev서버는 master 브랜치가 아닌 master_dev브랜치로 checkout 해놓는다.


로컬에서 안나오는 서버에서는 dev브랜치에서 충분히 테스트 해보고, 적용시켜도 된다라고 판단이 되면,


그때 마스터에 머지를 하는거다.


실서버적용후에는 master_dev에서 master를 한번 더 머지해줘서, dev에 적용못한 급하게 master에서 수정한 것들을 


합쳐주면 된다.


그러면 Master랑, master_dev랑 같은 히스토리를 가지고 가는거다.


이걸 아무리 말로 설명해줘도 이해하기가 힘들거다.






소규모 그룹이다 보니, 다들 그냥 master에다가 다 때려 넣다보니까.... 운영중에, 아직 반영하기 그런것들이랑 섞이다 보니까.... 


진짜.....class파일 뒤져서, 완전 노가다로 급하게 수정해준적도 있다.


그러니까...우리 브랜치를 나눠서 잘 사용하는 법을 배우자고요.



Posted by Tyson
2018. 4. 24. 17:29


사업자 등록번호 체크할 일이 있어서, 


밑에 페이지에서 가져와서 해놓았는데, 


체크썸이 0으로 끝났을때는 안되서, 보니까, 10일수도 있어서 한번 더 해줘야 되더라..


퍼온 페이지

https://gs.saro.me/#!m=elec&jn=10




사업자 등록번호는 123-45-67890 의 10 자리 구조입니다.
123 : 국세청 / 세무서별 코드
45 : 개인 법인 구분코드
6789 : 과세/면세/법인 사업자 등록/지정일자 일련번호
0 : 검증번호

검증방법
예제번호 : 123-45-67891
1. 하이픈 제거
1234567891 [사업자 10자리]
2. 인증키 배열 - 고정된값이다.
137137135 [인증키 9자리]
3. 사업자 앞 9자리와 인증키 앞 9자리를 각각 곱하여 모두 더합니다.
123456789 [사업자 앞9자리]
137137135 [인증키 9자리]
합계 = (1 * 2) + (2 * 3) + (3 * 7)..... + (9 * 5) = 165
합계 = 165
4. 앞 9자리의 마지막 값을 다시 곱하고 10으로 나눕니다.
((9 * 5) / 10) = 4.5 소수점제거 = 4
5. 합계에 바로위 값을 더해준다.
합계 = (합계165) + 4
합계 = 169
6. 합계를 10으로 나누어 나머지를 구합니다.
(169) % 10 = 9
값 = 9
7. 10 - 값을한다.
10 - 값(9) = 1
8. 마지막 자리수가 1이면 사업자등록번호입니다.
그럼으로 예제는 사업자 등록번호입니다.

  1. // 국내에 종속성을 가지고있기에 라온에는 직접 들어가지 않겠지만 나중에 확장용으로 들어갈 수 있습니다. (은글슬쩍 라이브러리 광고....)
  2. // https://dev.saro.me/raon/
  3. // 사업자번호 체크
  4. // 2015-04-24 전명 박용서 작성
  5. function ckBisNo(bisNo)
  6. {
  7. // 넘어온 값의 정수만 추츨하여 문자열의 배열로 만들고 10자리 숫자인지 확인합니다.
  8. if ((bisNo = (bisNo+'').match(/\d{1}/g)).length != 10) { return false; }
  9. // 합 / 체크키
  10. var sum = 0, key = [1, 3, 7, 1, 3, 7, 1, 3, 5];
  11. // 0 ~ 8 까지 9개의 숫자를 체크키와 곱하여 합에더합니다.
  12. for (var i = 0 ; i < 9 ; i++) { sum += (key[i] * Number(bisNo[i])); }
  13. // 각 8번배열의 값을 곱한 후 10으로 나누고 내림하여 기존 합에 더합니다.
  14. // 다시 10의 나머지를 구한후 그 값을 10에서 빼면 이것이 검증번호 이며 기존 검증번호와 비교하면됩니다.
  15. return (10 - ((sum + Math.floor(key[8] * Number(bisNo[8]) / 10)) % 10)) == Number(bisNo[9]);
  16. }

=============================================================================


여기 같에 보면 마지막에 한번 더 %10 이 들어가야한다.

값이 체크썸 값이 10이 떴을때는 틀렸다고 나온다.



  1. return ((10 - ((sum + Math.floor(key[8] * Number(bisNo[8]) / 10)) % 10)) % 10) == Number(bisNo[9]);



위에처럼 해야한다.



나 같은 경우는 아래처럼 나눠서 체크했다.

   function ckBisNo(bisNo)

    {

        // 넘어온 값의 정수만 추츨하여 문자열의 배열로 만들고 10자리 숫자인지 확인합니다.

        if ((bisNo = (bisNo+'').match(/\d{1}/g)).length != 10) { return false; }


        // 합 / 체크키

        var sum = 0, key = [1, 3, 7, 1, 3, 7, 1, 3, 5];


        // 0 ~ 8 까지 9개의 숫자를 체크키와 곱하여 합에더합니다.

        for (var i = 0 ; i < 9 ; i++) { sum += (key[i] * Number(bisNo[i])); }


        // 각 8번배열의 값을 곱한 후 10으로 나누고 내림하여 기존 합에 더합니다.

        // 다시 10의 나머지를 구한후 그 값을 10에서 빼면 이것이 검증번호 이며 기존 검증번호와 비교하면됩니다.

        

        // 체크섬구함

        var chkSum = 0;

        chkSum = Math.floor(key[8] * Number(bisNo[8]) / 10);

        // 체크섬 합계에 더해줌

        sum +=chkSum;

        var reminder = (10 - (sum % 10)) % 10;

        //값 비교

        if(reminder==Number(bisNo[9])) return true;

        return false;

    }

'컴퓨터 > JavaScript (jQuery)' 카테고리의 다른 글

jQuery에서 따옴표 처리하기  (0) 2018.05.24
정규식 패턴 종류  (0) 2018.04.27
Modal로 팝업 띄우기  (6) 2018.02.07
엔터 칠때 자동으로 클릭하기  (0) 2018.01.05
jQuery 동적 이벤트 on  (0) 2015.10.22
Posted by Tyson
2018. 4. 24. 15:36

쉘 스크립트에서,


한달된 로그파일들을 지워서 공간을 확보해 놓고 싶어서, 하나 만들었다.


su - test -c "rm -f /backup/db_backup_`date -d '1 month ago' +%Y%m`*.bak"


이렇게 하면, test 계정으로 들어가서, 

(현재 4월임)


3월달에 만들어진 파일들(rm -f /backup/db_backup_201803*.bak)을 삭제한다.



date 에서 가져오고 싶은 날짜 찾는거는 밑에 퍼온거를 참조해서 


아래와 같이 하면 된다.


날짜가 제대로 나오는지 확인해 보고 싶으면, echo로 아래와 같이 해보면 된다.


> echo `date -d '2 days ago' +%Y%m%d`



퍼온거

===========================================================================


과거


  1. date -d 'yesterday' # 어제
  2. date -d '1 day ago' # 1일전 = 어제
  3. date -d '2 day ago' # 2일전
  4. date -d '35 day ago' # 20일전
  5. date -d '1 week ago' # 1주일전
  6. date -d '2 month ago' # 1달전
  7. date -d '3 year ago' # 3년전
  8. date -d '10 second ago' # 10초전
  9. date -d '20 minute ago' # 20분전
  10. date -d '30 hour ago' # 30시간전
  11. date -d '3 year 7 month ago' # 3년 7개월전




미래 

* 과거에서 ago 를 빼면 됨

  1. date -d 'tomorrow' # 내일
  2. date -d '1 day' # 1일후 = 내일
  3. date -d '2 day' # 2일후
  4. date -d '35 day' # 20일후
  5. date -d '1 week' # 1주일후
  6. date -d '2 month' # 1달후
  7. date -d '3 year' # 3년후
  8. date -d '10 second' # 10초후
  9. date -d '20 minute' # 20분후
  10. date -d '30 hour' # 30시간후
  11. date -d '3 year 7 month' # 3년 7개월후



요일 기준


  1. date -d 'this friday' # 이번주 금요일
  2. date -d 'last monday' # 지난 월요일
  3. date -d 'next tuesday' # 다음 화요일



특정 시간을 기준으로 날짜 더하고 빼기


  1. date -d '2010-01-03 07:32:10 + 2 day 5 hours 17 minute'
  2. # 2010년 1월 3일 7시 32분 10초를 기준으로 2일 5시간 17분후



옵션 1


-d 는 --date 옵션으로 사용해도 됩니다. --date 로 쓸때에는 --date= 형식으로 사용하시면 됩니다.

  1. date --date='2 month'



옵션 2


시간단위를 나타내는 day, week, month, year, second, minute, hour 등은 뒤에 s(복수)를 붙여도 되고 안붙여도 됩니다.

  1. date -d '1 day ago'
  2. date -d '1 days ago'



옵션 3


시간을 원하는 형식으로 뽑기위해서는 아래같이 하시면 됩니다.

현재 시간으로부터 2일전의 년-월-일 시:분:초 형식으로 표시하려면

  1. date '+%Y-%m-%d %H:%M:%S' -d '2 day ago'



쉘스크립트에서 해당 시간을 변수에 담기


보통 위와 같은 date 함수는 주로 쉘스크립트에서 사용하게 됩니다. 리눅스 명령으로 가져온 결과값을 변수에 담으려면

  1. yesterday=$(date -d '1 day ago')


또는

  1. yesterday=`date -d '1 day ago'`


변수를 사용할때는

  1. echo $yesterday



자료출저 : http://steadypost.net/post/knowhow/id/8/


============================================================================


날짜별로 log파일 만들때 유용하다.

Posted by Tyson
2018. 4. 24. 11:49


앞에 만든 오라클 백업 스크립트를 자동으로 cron에 넣어주고, 


매일 백업하게 해주는 cron를 작성하겠다.


오라클백업 스크립트 만들기

http://tyson.tistory.com/113


===========================================================================

퍼온거

crontab 명령어

crontab [ -u 사용자 id] 파일
crontab [-u 사용자 id] { -l | -r | -e}

  • crontab -l : 예약된 작업리스트
  • crontab -e : 예약된 작업 수정
  • crontab -r : 예약된 작업 삭제
  • crontab -u 사용자명 : 루트관리자는 해당 사용자의 crontab 파일을 보거나 삭제, 편집가능

등록 내용 설정

"분,시,일,월,요일,[사용자명] 실행명령" 순으로 설정

crontab 파일 형식

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

필  드    의  미    범  위

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

첫번째    분        0-59

두번째    시        0-23

세번째    일        0-31

네번째    월        1-12

다섯번째  요일      0-7 (0 또는 7=일요일, 1=월, 2=화,...)

여섯번째  사용자명  /etc/crontab, /etc/cron.d 에 저장될 경우 필요

일곱번째  작업명령  실행할 명령을 한줄로 쓴다.

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


예)

45,5 10 * * 1-5 root /usr/bin/rdate -s time.bora.net && clock -w

월요일~금요일에 매월 매일 10시 5분과 45분에 루트의 권한으로 시간동기화 명령어를 실행한다.

  • * : 범위 내 모든 경우
  • 숫자 : 정확히 일치하는 그 시각, 날짜
  • '-' 기호로 연결된 두 숫자 : 두 숫자 사이에 포함된 범위를 뜻함
  • 콤마(,)로 구분돼 나열된 숫자 : 나열된 숫자 중 일치하는 경우를 뜻함



출처: http://webdir.tistory.com/174 [WEBDIR]


============================================================================

퍼온거 


$ crontab -e

그러면 뭔가 편집할 수 있는 곳이 로딩됩니다. 이곳이 바로 크론탭을 설정할 수 있는 장소이죠. 여기에 각종 크론탭 명령어를 입력후 콜론(:) 입력 후에 wq 를 입력해 크론탭을 갱신시킵시다.

반대로 현재 크론탭에 어떤 내용이 들어있는지 보려면 다음처럼 입력하세요.

$ crontab -l

그러면 cat 명령어로 파일을 읽어들인 것처럼 표준 출력으로 크론탭 내용이 나오게 됩니다. 그런데 만약(거의 없겠지만) 크론탭을 지우고 싶다면?

리눅스 쉘에 다음처럼 입력합니다.

$ crontab -d

이렇게까지 하면 크론탭의 기본 설정 및 확인, 삭제에 대해 배운 것입니다. 그러면 실제로 크론탭에 크론 하나를 예제로 등록 해봅시다.




주기 결정


*      *      *      *      *
분(0-59)  시간(0-23)  일(1-31)  월(1-12)   요일(0-7)

각 별 위치에 따라 주기를 다르게 설정 할 수 있습니다. 순서대로 분-시간-일-월-요일 순입니다. 그리고 괄호 안의 숫자 범위 내로 별 대신 입력 할 수 있습니다.

요일에서 0과 7은 일요일입니다. 1부터 월요일이고 6이 토요일입니다.


요일은 0부터 시작합니다.



1. 매분 실행

# 매분 test.sh 실행
* * * * * /home/script/test.sh

2. 특정 시간 실행

# 매주 금요일 오전 5시 45분에 test.sh 를 실행
45 5 * * 5 /home/script/test.sh

3. 반복 실행

# 매일 매시간 0분, 20분, 40분에 test.sh 를 실행
0,20,40 * * * * /home/script/test.sh

4. 범위 실행

# 매일 1시 0분부터 30분까지 매분 tesh.sh 를 실행
0-30 1 * * * /home/script/test.sh

5. 간격 실행

# 매 10분마다 test.sh 를 실행
*/10 * * * * /home/script/test.sh

6. 조금 복잡하게 실행

# 5일에서 6일까지 2시,3시,4시에 매 10분마다 test.sh 를 실행
*/10 2,3,4 5-6 * * /home/script/test.sh



크론 로깅 (cron logging)

크론탭을 사용해서 정기적으로 작업을 처리하는 것은 좋은데, 해당 처리 내역에 대해 로그를 남기고 싶을 때가 있을겁니다. 그럴때 다음처럼 한번 써봅시다.

* * * * * /home/script/test.sh > /home/script/test.sh.log 2>&1

위처럼 작성하면 매분마다 test.sh.log 파일이 갱신 되어 작업 내용이 어떻게 처리 되었는지 알 수 있습니다. 만약 2>&1 을 제거하면 쉘스크립트에서 표준 출력 내용만 나옵니다. 2>&1은 이곳에서 확인합시다.

그런데, 이게 너무 자주 실행 되고 또한 지속적으로 로깅이 되야 해서 로그를 계속 남겨둬야 한다면 다음처럼 입력합니다.

* * * * * /home/script/test.sh >> /home/script/test.sh.log 2>&1

그러면 계속 로그가 누적이 되는 것을 확인 할 수 있을겁니다. 대신 로그가 과도하게 쌓이면 리눅스 퍼포먼스에 영향을 주므로 가끔씩 비워주거나 파일을 새로 만들어주는 센스가 필요합니다.

반대로 로그는 필요 없는 크론을 위해선 다음처럼 입력합니다.

* * * * * /home/script/test.sh > /dev/null 2>&1




위에꺼는 퍼온겁니다.


펌:  http://jdm.kr/blog/2

============================================================================


저같은 경우 매일 새벽에 돌리고 싶어서, 아래와 같이 만들었습니다.


# 새벽 1시에 매일 실행시키기 0 1 * * * /bin/sh /home/oracle/backup/cron/db_backup.sh



위에처럼 하면 매일 실행 합니다.





Posted by Tyson
2018. 4. 24. 11:10

오라클 자동백을 하기 위해서 쉘 스크립트를 만들어서 쉘을 돌리게 백업하는 방법이다.


> vi backup.sh


치고 들어가서, 안에

밑에꺼를 써준다.

su - oracle -c "exp db유저/db패스워드 file=/home/oracle/backup/backup_`date +%Y%m%d`.dmp log=/home/oracle/backup/log/backup_log_`date +%Y%m%d`.log"


orcle 계정에서

 c 커멘드를 쓴다.

 exp 오라클 백업명령어

 유저명/유저패스워드 쓰고, 


file=은 저장 경로 및 파일명 를 적어주면 된다.

뒤에 `date +%Y%m%d`.dmp  이거는 파일명뒤에 날짜를 입력해준다.

예 ) backup_20180424.dmp 이렇게 저장된다.

여기에쓰는 콜론은 `이거다. 이거는 숫자1키옆에 있는 ~ 여기에 있는 콜론이다.

엔터옆의 " ' 이 아니다.

이거때문에 처음에 계속 에러 떴음.


그리고,  쉘 스크립트를 실행해 본다.

> ./backup.sh

또는 

> sh backup.sh 

하는데, 안 먹힐때가 있다.


이건 쉘 스크립트 실행권한을 줘야한다.


> chmod +x /home/oracle/backup/backup.sh

또는

> chmod +rx /home/oracle/backup/backup.sh


이렇게 해주고.

> ./backup.sh

하면 먹힌다. 


근데, 갑자기 


EXP-00056: ORACLE error 21561 encountered

ORA-21561: OID generation failed

에러를 토해낸다.

이거 해결법은 아래 포스트에 있다.


http://tyson.tistory.com/112




근데, 또 아래와 같은 에러가 뜬다.


Connected to: Oracle Database 11g Release 11.2.0.4.0 - 64bit Production

EXP-00028: failed to open /home/oracle/backup/backup_20180424.dmp for write

Export file: expdat.dmp >



이건, 오라클이 폴더권한이 없어서 그런거다.


그래서 위 경로 폴더에 777권한을 준다.


>chmod 777 /home/oracle/backup

>chmod 777 /home/oracle/backup/log


이렇게 준다.


그리고 다시 

> ./backup.sh

실행했을때, 자동으로 실행이 완료되면 스크립트 만들기는 끝난거다.



여기까지 하면 이제 cron에 등록만 해주면 된다.


크론에 등록법은 다음 포스트에서~

http://tyson.tistory.com/114



Posted by Tyson
2018. 4. 24. 10:49

오라클 백업시 (exp) 실행시 에러


Export: Release 11.2.0.4.0 - Production on Tue Apr 24 10:31:03 2018


Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.



EXP-00056: ORACLE error 21561 encountered

ORA-21561: OID generation failed


이란 에러가 계속떠서, 쉘 스크립트가 자동 실행이 안되는거다.


host파일에서 아이피 적고, 호스트 이름을 적어줘야한다.


vi /etc/hosts 


치면, 호스트 파일에 들어간다.


거기에서 내 아이피 호스트 이름을 써주면 된다.


예 :


192.168.0.10 TESTSERVER 


아이피 호스트이름(TESTSERVER)


이렇게 해주면 된다.


Posted by Tyson
2018. 3. 12. 18:47

가끔 문서작업, ppt만들때, 체크표시가 필요해서...



  1. ✓ - 확인 표시
  2. ✔ - 무거운 확인 표시
  3. ✗ - 투표 X
  4. ✘ - 무거운 투표 X
  5. ☐ - 체크 박스
  6. ☑ - 체크 박스의 체크 표시
  7. ☒ - X와 투표함


Posted by Tyson
2018. 3. 9. 18:00


다운받기


[root@localhost home]# wget http://apache.mirror.cdnetworks.com/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.43-src.tar.gz



다운을 받고,


> tar xvfz tomcat-connectors-1.2.30-src.tar.gz

> cd /home/kyu/tomcat-connectors-1.2.30-src/native

> ./configure --with-apxs=/home/apache2/bin/apxs

           /home/apache2는 아파치 설치된 디렉토리의 /bin/apxs 폴더로 한다.

> make

> make install



make install 하면, 자동으로 mode_jk.so파일이 아파치의 /modules 폴더로 들어간다.



그다음에, 아파치 conf폴더로 들어간다.(나같은 경우는 /home/apache2/conf/ 폴더이다.)


거기에서

>vi httpd.conf 파일을 열고,


LoadModule jk_module modules/mod_jk.so


<IfModule jk_module>


        JkWorkersFile conf/workers.properties


        # Configure logging and memory


        JkShmFile logs/mod_jk.shm


        JkLogFile logs/mod_jk.log


        JkLogLevel info


</IfModule>


를 추가해준다.


나같은 경우는 workers.properties란 파일을 추가로 만들어서 그곳에 톰캣 연결 정보를 넣을것이다.


그리고, vhost로 두개의 도매인을 띄울거라,



# Virtual hosts

#Include conf/extra/httpd-vhosts.conf


여기에서 #를 지워준다.


그리고, 도메인 설정을 httpd-vhosts.conf 파일에 설정하면 된다.


여러 설정을 파일로 나눠서 관리하게 편하게 하고, 파일을 include 시켜주는 구조이다.




저장하고 나와서,


> vi workers.properties

를 치고 


# Define worker names


worker.list=project1 project2 

worker.project2.type=ajp13

worker.project2.host=localhost

worker.project2.port=8008

worker.project1.type=ajp13

worker.project1.host=localhost

worker.project1.port=8009



위와같이 작성해준다.


난 프로젝트 두개를 띄울거라, 위에 같이 두개를 적어준다.


여러개 할때는 콤마(,) 없이, 그냥 띄어쓰기로 하면된다.




이제는 vhost에서 서버 접속 설정을 해줘야 한다.


> cd /home/apache2/conf/extra 폴더로 가면



[root@localhost extra]# ls

httpd-autoindex.conf  httpd-info.conf       httpd-mpm.conf                 httpd-userdir.conf

httpd-dav.conf        httpd-languages.conf  httpd-multilang-errordoc.conf  httpd-vhosts.conf

httpd-default.conf    httpd-manual.conf     httpd-ssl.conf                 proxy-html.conf



위에 같이 뜬다.


> vi httpd-vhosts.conf

파일을 열어서,


다른거 지우고 아래와 같이 써준다.


<VirtualHost *:80>

   DocumentRoot /

   ServerName localhost


    <IfModule log_config_module>

        LogFormat "%v %h %l %u %t \"%r\" %>s %b"

        LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

        LogFormat "%h %l %u %t \"%r\" %>s %b" common


        <IfModule logio_module>

          LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio

        </IfModule>


        #CustomLog "logs/project1-acoustid_access_log" common

        #CustomLog "logs/project1-acoustid_access_log" combined

        CustomLog "|/home/apache2/bin/rotatelogs /home/log/apache2/project1_access_log.%Y%m%d 86400 +540" combined

    </IfModule>



   JkLogFile logs/mod_jk.log

   JkLogLevel info

   JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

   JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories

   JkRequestLogFormat "%w %V %T"



   SetEnvIf Request_URI "/weblog/*" no-jk


   JkMount /* project1


   <Directory "/home/tomcat_project1/webapps/project1">

       Options FollowSymLinks

       AllowOverride None

       Order allow,deny

       Allow from all

   </Directory>


   <Directory "/home/weblog">

       Options FollowSymLinks

       AllowOverride None

       Order allow,deny

       Allow from all

   </Directory>


</VirtualHost>



폴더들은 자신이 원하는폴더로 지정해준다. 

대부분 로그정보 파일 저장 경로임.


그리고,   JkMount /* project1

이거가 중요하다.


여기에 아까 workers.properties 에 세팅한 톰캣에서 지정한 이름을 적어줘야 한다.


그래야 저기로 접속했을때 jk를 사용해서 지정한 포트로 보내준다.


두개의 도메인을 할시에는 도메인 명에 다른거 바꿔서 똑같이 하나 더 만들어준다.

그리고 폴더 경로 및 이름들은 바꿔주면 된다.


'컴퓨터 > Java Spring Framework' 카테고리의 다른 글

JPA CascadeType 종류  (0) 2018.05.10
Spring Security logout Handler custom  (0) 2018.05.08
톰캣 설치  (0) 2018.03.09
아파치 컴파일 설치  (0) 2018.03.09
스프링에서 DB 연결하기(ver. mySQL)  (0) 2017.03.31
Posted by Tyson
2018. 3. 9. 17:54





아래 방법은 자바 jdk가 설치 되어있다는 전재하에 설명임.


설치 안했을때는 먼저 설치하시고 하시길..




[root@localhost bin]# wget http://apache.mirror.cdnetworks.com/tomcat/tomcat-8/v8.0.50/bin/apache-tomcat-8.0.50.tar.gz



[root@localhost bin]# tar apache-tomcat-8.0.50.tar.gz


심볼릭 마크를 해줘도 된다.


근데, 난 그냥 폴더명을 바꿔주었다.


[root@localhost appls]# mv apache-tomcat-8.0.50 tomcat_project


(tomcat_project로 함)

그리고 설정에서 경로를 거기로 해주면 되니까.




그리고 환경변수를 지정해 줘야한다.


[root@localhost etc]# vi /etc/profile



export CATALINA_HOME=/appls/tomcat_project

export PATH=$PATH:$CATALINA_HOME/bin



실행해보려면, 

[root@localhost bin]# ./startup.sh 

실행하고,


확인하는법은,

[root@localhost bin]# ps -ef | grep java

위처럼 해보면 띄어져 있다.


중지할때는 아래처럼 하면된다.

[root@localhost bin]# ./shutdown.sh 


기본 8080포트로 되어 있으니,


http://localhost:8080 으로 접속하면, 


아래와 같은 화면이 보인다.





그리고 아파치랑 연동해서 사용하려면 mod_jk란걸 설치해 줘야한다.

다음 포스트에 mod_jk연동법은 올리겠다.





'컴퓨터 > Java Spring Framework' 카테고리의 다른 글

JPA CascadeType 종류  (0) 2018.05.10
Spring Security logout Handler custom  (0) 2018.05.08
mod_jk연동 도메인 여러개  (0) 2018.03.09
아파치 컴파일 설치  (0) 2018.03.09
스프링에서 DB 연결하기(ver. mySQL)  (0) 2017.03.31
Posted by Tyson