2015년 6월 26일 금요일

KT-ucloud cs 하드디스크 LV 마운트하기

스토리지는 기본 100GB를 신청했는데, 그림과 같이 20/80 GB로 생성된다.

매뉴얼에 PV(Physical Volume), VG(Volume Group), LV(Logical Volume)을 만들도록 가이드하고 있어 일단 자세히 모르지만 만들어 보도록 한다.(자세한 내용은 위 참고사이트 참조)

부팅된 후 터미널에서 디스크 상태를 살펴보면, /dev/xvdb 에 파티션이 할당되지 않았다고 한다.
이놈이 80GB 디스크이다. 이걸 마운트해서 써먹어야 한다. (이런 내용은 매뉴얼 어디에도 나와 있지 않다.. ;;)

[root@i-955-6459-VM ~]# fdisk -l

Disk /dev/xvdb: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/xvdb doesn't contain a valid partition table

Disk /dev/xvda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *           1          13      104391   83  Linux
/dev/xvda2              14        2610    20860402+  8e  Linux LVM


요렇게 확인해볼 수 있다.
[root@i-955-6459-VM ~]# ls /dev/xv*
/dev/xvc0  /dev/xvda  /dev/xvda1  /dev/xvda2  /dev/xvdb


fdisk를 이용해 /dev/xvdb에 파티션을 생성해준다. (80GB 통으로 잡았고, 밑줄친 부분이 입력한 부분)
[root@i-955-6459-VM ~]# fdisk  /dev/xvdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.


The number of cylinders for this disk is set to 10443.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): p

Disk /dev/xvdb: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

    Device Boot      Start         End      Blocks   Id  System

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-10443, default 1): 
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-10443, default 10443): 
Using default value 10443

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e  ==> VG, LV를 사용하려면 반드시 '8e' Linux LVM 타입을 선택!
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.


잘 됐는지 확인.
[root@i-955-6459-VM ~]# fdisk -l

Disk /dev/xvdb: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

    Device Boot      Start         End      Blocks   Id  System
/dev/xvdb1               1       10443    83883366   8e  Linux LVM

Disk /dev/xvda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *           1          13      104391   83  Linux
/dev/xvda2              14        2610    20860402+  8e  Linux LVM


PV 생성.
[root@i-955-6459-VM ~]# pvcreate /dev/xvdb1 
  Physical volume "/dev/xvdb1" successfully created


VG 생성: VG이름을 "DataVG"로 주었다.
[root@i-955-6459-VM ~]# vgcreate DataVG /dev/xvdb1 
  Volume group "DataVG" successfully created


VG 정보 보기.
[root@i-955-6459-VM ~]# vgdisplay 
  --- Volume group ---
  VG Name               DataVG
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               80.00 GB
  PE Size               4.00 MB
  Total PE              20479
  Alloc PE / Size       0 / 0   
  Free  PE / Size       20479 / 80.00 GB
  VG UUID               1Lgw05-rK7Y-t6M4-gm6v-Po6Y-Nktn-oScFfW
   
  --- Volume group ---
  VG Name               VolGroup00
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               19.88 GB
  PE Size               32.00 MB
  Total PE              636
  Alloc PE / Size       636 / 19.88 GB
  Free  PE / Size       0 / 0   
  VG UUID               5UlLWB-skhS-kYkE-hg3U-TYW7-wgQ0-hfcsJ4


위 참고 사이트에서 PE 크기가 어쩌고 하는 내용이 있다. PE 크기를 16MB로 변경해보자. vgremove 후 다시 vgcreate하면 된다.(이 부분은 좀 더 공부하자.)
[root@i-955-6459-VM ~]# vgremove DataVG
  Volume group "DataVG" successfully removed
[root@i-955-6459-VM ~]# vgcreate -s 16m DataVG /dev/xvdb1
  Volume group "DataVG" successfully created
[root@i-955-6459-VM ~]# vgdisplay 
  --- Volume group ---
  VG Name               DataVG
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               79.98 GB
  PE Size               16.00 MB
  Total PE              5119
  Alloc PE / Size       0 / 0   
  Free  PE / Size       5119 / 79.98 GB
  VG UUID               bdUjjs-gxNi-0170-Gzur-H3aQ-hw2B-5Ug5AQ
   
  --- Volume group ---
  VG Name               VolGroup00
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               19.88 GB
  PE Size               32.00 MB
  Total PE              636
  Alloc PE / Size       636 / 19.88 GB
  Free  PE / Size       0 / 0   
  VG UUID               5UlLWB-skhS-kYkE-hg3U-TYW7-wgQ0-hfcsJ4


마지막으로 LV를 만들자. 그전에 LV 확인. 기본적으로 생성돼 있는 Logical Volume 들이다.
/dev/VolGroup00/LogVol01 은 swap 파티션이다. (/etc/fstab 파일을 열어보면 알 수 있다.)
[root@i-955-6459-VM ~]# lvdisplay 
  --- Logical volume ---
  LV Name                /dev/VolGroup00/LogVol00
  VG Name                VolGroup00
  LV UUID                2EmbII-Vyhb-TkaO-iZDh-dK0c-JKyD-3K10l6
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                15.88 GB
  Current LE             508
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
   
  --- Logical volume ---
  LV Name                /dev/VolGroup00/LogVol01
  VG Name                VolGroup00
  LV UUID                EUFrRy-0UTw-3DE3-LL5b-0kKL-dIAX-Gri1kD
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                4.00 GB
  Current LE             128
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1


LV를 생성해 보자. -L 옵션은 용량을 직접 적을 수 있다. PE를 16MB로 잡아서 80GB를 full로 쓸 수 없다.
[root@i-955-6459-VM ~]# lvcreate -L 80g -n data00 DataVG
  Insufficient free extents (5119) in volume group DataVG: 5120 required

-l 옵션으로 LE(=PE) 수를 직접 지정할 수 있다. 에러 메시지의 '5119'가 최대값이다. 다음과 같이 하면 순순히 만들어 준다..
[root@i-955-6459-VM ~]# lvcreate -l 5119 -n data00 DataVG
  Logical volume "data00" created


LV 정보를 보면 data00이 생성된 것을 볼 수 있다.
[root@i-955-6459-VM ~]# lvdisplay 
  --- Logical volume ---
  LV Name                /dev/DataVG/data00
  VG Name                DataVG
  LV UUID                APPToZ-SZ59-O1LT-zwni-n9zJ-5sbV-ezzJvE
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                79.98 GB
  Current LE             5119
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2
   
  --- Logical volume ---
  LV Name                /dev/VolGroup00/LogVol00
  VG Name                VolGroup00
  LV UUID                2EmbII-Vyhb-TkaO-iZDh-dK0c-JKyD-3K10l6
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                15.88 GB
  Current LE             508
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
   
  --- Logical volume ---
  LV Name                /dev/VolGroup00/LogVol01
  VG Name                VolGroup00
  LV UUID                EUFrRy-0UTw-3DE3-LL5b-0kKL-dIAX-Gri1kD
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                4.00 GB
  Current LE             128
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1


이제 /dev/DataVG/data00 를 일반 스토리지처럼 사용하면 된다.

파일 시스템을 만들고,
[root@i-955-6459-VM ~]# mkfs.ext3 /dev/DataVG/data00 
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
10485760 inodes, 20967424 blocks
1048371 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
640 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks: 
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
4096000, 7962624, 11239424, 20480000

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 29 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.


마운트 한다.
[root@i-955-6459-VM ~]# mount /dev/DataVG/data00 /mnt/tmp


디스크 정보를 보면 이쁘게 들어와 있다.
[root@i-955-6459-VM ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                       16G  1.2G   14G   8% /
/dev/xvda1             99M   14M   81M  15% /boot
tmpfs                 512M     0  512M   0% /dev/shm
/dev/mapper/DataVG-data00
                       79G  184M   75G   1% /mnt/tmp



/mnt/tmp 는 임시로 마운트한 것이고, /home 등 원하는 곳에 마운트하고 쓰면 끝.

2014년 10월 19일 일요일

IP에 따른 국가별 정보를 알려주는 GeoIP 환경 구축

IP에 따른 국가별 정보를 알려주는 GeoIP 환경 구축

 

1. GeoIP C 라이브러리 설치


# ./configure –prefix=/usr/local/GeoIP
# make
# make install
/usr/local/GeoIP 위치에 해당 라이브러리들이 생성된다.




2. geoip php extension 모듈 설치



getip 의 압축을 푼 후 해당 폴더로 이동 하여 phpize 를 실행하면 빌드를 하기위한 config 파일들이 생성된다.


# phpize
# ./configure –with-php-config=/usr/bin/php-config –with-geoip=/usr/local/GeoIP
# make
# make install
/usr/lib/php/modules 에 geoip.so 가 생성된다.




3. php 환경 설정 파일에 geoip extension 선언

/etc/php.ini 맨 끝 줄에 아래의 내용을 추가한다.


extension=geoip.so
[geoip]
geoip.custom_directory=/usr/local/GeoIP




4. GeoIP DB 파일 연결

# gzip -d GeoIP.dat.gz
# gzip -d GeoLiteCity.dat.gz
# cp GeoIP.dat /usr/local/GeoIP/
# cp GeoLiteCity.dat /usr/local/GeoIP/




5. php 데몬 재시작.


6. 사용법은 geoIP PHP 사용법 메뉴얼을 참고하도록 한다.



2013년 3월 28일 목요일

아파치 톰켓 연동 작업



보통 많이 사용하는 웹서버는 APM(apache + php + Mysql)이지만 여기에 tomcat을 추가해보도록 하겟다.
일단 기본적으로 APM이 설치된 환경이라는 가정하에 문서를 작성하겠다.
혹 APM이 설치가 되어 있지 않았다면, http://wory.tistory.com/139 에서 yum으로 간단히 설치하는 방법으로 설치해보자.
0. 준비하기
tomcat을 apache와 연동하기 위해서는 중간에 컨넥트 컨테이너가 필요하다.
보통 mod_jk를 많이 사용한다고 한다.
설치에 들어가기전에 tomcat과 tomcat connector를 다운받아 놓자.
두가지 모드 아파치 소프트웨어 파운데이션에서 받을 수 있다. http://tomcat.apache.org/index.html
tomcat connector의 경우 아파치 버전에 맞는 바이너리로 다운받자.
http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.30/i586/
%> wget http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.30/i586/mod_jk-1.2.30-httpd-2.2.X.so
두가지 모두 빠른 미러 사이트를 이용해 받도록 한다.
항상 버전 및 미러 사이트에 따라 주소는 다를 수 있다.
1. jdk 설치하기
%> yum -y install java
간단하게 yum을 이용하여 jdk를 설치한다.

2. tomcat 설치하기
%> tar xvfz apache-tomcat-7.0.4.tar.gz
%> mv apache-tomcat-7.0.4 /usr/local/tomcat


3. tomcat connector 설치하기
%> mv mod_jk-1.2.30-httpd-2.2.X.so /usr/lib/httpd/modules/mod_jk.so
%> chmod +x /usr/lib/httpd/modules/mod_jk.so
mod_jk.so 바이너리 파일을 httpd 모듈 폴더에 옮겨넣는다.
여기서 httpd 모듈 폴더 위치는 설치에 따라 달라진다. yum으로 설치하였다면 /usr/lib/httpd/modules/가 된다.
그외에 위치는 whereis httpd 등으로 위치를 찾는다.
4. 아파치 환경설정 httpd.conf
%> vi /etc/httpd/conf/httpd.conf
//LoadModule가 모인 곳에.
   LoadModule jk_module modules/mod_jk.so
//..ifModule 설정이 모인 곳에.
<ifModule jk_module>
        JkWorkersFile /etc/httpd/conf/workers.properties
        JkShmFile /etc/httpd/logs/mod_jk.shm
        JkLogFile /etc/httpd/logs/mod_jk.log
        JkLogLevel info
        JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
</ifModule>

JkMount /*.jsp ajp13
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
이곳에서 역시. httpd의 폴더 위치에 따라서 workersfile, logfile, shmfile의 위치는 변한다.
5. workers.properties 파일 생성 및 설정(httpd.conf에 WorkersFile 위치 설정한곳에 생성)
%> vi /etc/httpd/conf/workers.properties
worker.list=ajp13
worker.ajp13.type=ajp13
worker.ajp13.host=domain.co.kr
worker.ajp13.port=8009
worker.ajp13.lbfactor=1
worker.ajp13.connection_pool_timeout=600
worker.ajp13.socket_keepalive=1
worker.ajp13.host=domain.co.kr  이부분은 자신의 주소를 넣으면 된다.

6. 연동 테스트
tomcat 시작
%> /usr/local/tomcat/bin/catalina.sh stop
%> /usr/local/tomcat/bin/catalina.sh start
stop 명령을 내리면 컨넥션 오류를 출력할 것이다. 이것은 현재 실행이 되어 있지 않기 때문에 일어나는 것이므로 무시해도 된다. 그럼 왜 하느냐?? 혹시나 tomcat이 실행되어 있을지 모르는까.. 껏다 켜기 위해서 ^^ ;
아파치 재시작
# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                             [  OK  ]

혹시나 아파치 재실행중 다음과 같이 퍼미션 문제로 오류가 발생할 때.
Stopping httpd:                                            [  OK  ]
Starting httpd: httpd: Syntax error on line 200 of /etc/httpd/conf/httpd.conf: Cannot load /etc/httpd/modules/mod_jk.so into server: /etc/httpd/modules/mod_jk.so: cannot open shared object file: Permission denied
                                                           [FAILED]

혹시나 Selinux 보안 정책을 사용하고 있다면 다음과 같이 퍼미션을 변경해 준다.
%> chcon -t textrel_shlib_t /usr/lib/httpd/module/mod_jk.so
%> service httpd start

http://domain/index.jsp를 접속해 보면!!!!
Apache Tomcat Apache Tomcat/7.0.4
라는 환영메세지를 보게 될것이다 ^^ ㅋ
http://domain/을 접속하면?? 일반 아파치 환영 페이지가 ^^

7. 가상호스트 연동
httpd.conf에 하거나 또는 extra/httpd-vhost.conf에 가상호스트 설정을 한다.
ㄴㅁㅇㄹ
NameVirtualHost *
<VirtualHost *>
        ServerAdmin id@domain.com
        DocumentRoot "/var/www/html"
        ServerName domain.com
        ErrorLog "logs/domain.com-error_log"
        CustomLog "logs/domain.com-access_log" common
        JkMount /*.jsp ajp13
        <Directory />
                Options FollowSymLinks
                AllowOverride None
                Order allow,deny
                Allow from all
        </Directory>
</VirtualHost>
<VirtualHost *>
        ServerAdmin ID@domain.com
        DocumentRoot "/home/update/www"
        ServerName sub.domain.com
        JkMount /*.jsp ajp13
</VirtualHost>

다음은 tomcat의 server.xml 설정
<Host name=localhost... >.... </Host>다음에 아래처럼 가상호스팅한 정보와 맞추어 넣는다

<!--########################### VirtualHost ###########################-->
        <Host name="domain.com" appBase="/home/update/www"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
        <Context path="" docBase="" debug="1"/>
        </Host>
<!--######################## VirtualHost End ##########################-->


8.tomcat 데몬 등록

#> vi /etc/init.d/tomcat
vi /etc/init.d/tomcat 으로 다음과 같이 쉘스크립트를 짠다.

#!/bin/sh
#
# Tomcat6 auto-start
#
# chkconfig: 2345 90 90
# description: Auto-starts tomcat6
# processname: tomcat6
# pidfile: /var/run/tomcat6.pid
case $1 in
start)
    sh /usr/local/tomcat/bin/startup.sh
    ;;
stop)
    sh /usr/local/tomcat/bin/shutdown.sh
    ;;
restart)
    sh /usr/local/tomcat/bin/shutdown.sh
    sh /usr/local/tomcat/bin/startup.sh
    ;;
esac
exit 0

이후 권한 설정과 chkconfig 리스트에 추가한다.
#> chmod 755 /etc/init.d/tomcat
#> chkconfig --add tomcat
#> service tomcat restart

 

2013년 3월 27일 수요일

아파치 톰켓7 연동



보통 많이 사용하는 웹서버는 APM(apache + php + Mysql)이지만 여기에 tomcat을 추가해보도록 하겟다.
일단 기본적으로 APM이 설치된 환경이라는 가정하에 문서를 작성하겠다.
혹 APM이 설치가 되어 있지 않았다면, http://wory.tistory.com/139 에서 yum으로 간단히 설치하는 방법으로 설치해보자.
0. 준비하기
tomcat을 apache와 연동하기 위해서는 중간에 컨넥트 컨테이너가 필요하다.
보통 mod_jk를 많이 사용한다고 한다.
설치에 들어가기전에 tomcat과 tomcat connector를 다운받아 놓자.
두가지 모드 아파치 소프트웨어 파운데이션에서 받을 수 있다. http://tomcat.apache.org/index.html
tomcat connector의 경우 아파치 버전에 맞는 바이너리로 다운받자.
http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.30/i586/
%> wget http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.30/i586/mod_jk-1.2.30-httpd-2.2.X.so
두가지 모두 빠른 미러 사이트를 이용해 받도록 한다.
항상 버전 및 미러 사이트에 따라 주소는 다를 수 있다.
1. jdk 설치하기
%> yum -y install java
간단하게 yum을 이용하여 jdk를 설치한다.

2. tomcat 설치하기
%> tar xvfz apache-tomcat-7.0.4.tar.gz
%> mv apache-tomcat-7.0.4 /usr/local/tomcat


3. tomcat connector 설치하기
%> mv mod_jk-1.2.30-httpd-2.2.X.so /usr/lib/httpd/modules/mod_jk.so
%> chmod +x /usr/lib/httpd/modules/mod_jk.so
mod_jk.so 바이너리 파일을 httpd 모듈 폴더에 옮겨넣는다.
여기서 httpd 모듈 폴더 위치는 설치에 따라 달라진다. yum으로 설치하였다면 /usr/lib/httpd/modules/가 된다.
그외에 위치는 whereis httpd 등으로 위치를 찾는다.
4. 아파치 환경설정 httpd.conf
%> vi /etc/httpd/conf/httpd.conf
//LoadModule가 모인 곳에.
   LoadModule jk_module modules/mod_jk.so
//..ifModule 설정이 모인 곳에.
<ifModule jk_module>
        JkWorkersFile /etc/httpd/conf/workers.properties
        JkShmFile /etc/httpd/logs/mod_jk.shm
        JkLogFile /etc/httpd/logs/mod_jk.log
        JkLogLevel info
        JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
</ifModule>

JkMount /*.jsp ajp13
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
이곳에서 역시. httpd의 폴더 위치에 따라서 workersfile, logfile, shmfile의 위치는 변한다.
5. workers.properties 파일 생성 및 설정(httpd.conf에 WorkersFile 위치 설정한곳에 생성)
%> vi /etc/httpd/conf/workers.properties
worker.list=ajp13
worker.ajp13.type=ajp13
worker.ajp13.host=domain.co.kr
worker.ajp13.port=8009
worker.ajp13.lbfactor=1
worker.ajp13.connection_pool_timeout=600
worker.ajp13.socket_keepalive=1
worker.ajp13.host=domain.co.kr  이부분은 자신의 주소를 넣으면 된다.

6. 연동 테스트
tomcat 시작
%> /usr/local/tomcat/bin/catalina.sh stop
%> /usr/local/tomcat/bin/catalina.sh start
stop 명령을 내리면 컨넥션 오류를 출력할 것이다. 이것은 현재 실행이 되어 있지 않기 때문에 일어나는 것이므로 무시해도 된다. 그럼 왜 하느냐?? 혹시나 tomcat이 실행되어 있을지 모르는까.. 껏다 켜기 위해서 ^^ ;
아파치 재시작
# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                             [  OK  ]

혹시나 아파치 재실행중 다음과 같이 퍼미션 문제로 오류가 발생할 때.
Stopping httpd:                                            [  OK  ]
Starting httpd: httpd: Syntax error on line 200 of /etc/httpd/conf/httpd.conf: Cannot load /etc/httpd/modules/mod_jk.so into server: /etc/httpd/modules/mod_jk.so: cannot open shared object file: Permission denied
                                                           [FAILED]

혹시나 Selinux 보안 정책을 사용하고 있다면 다음과 같이 퍼미션을 변경해 준다.
%> chcon -t textrel_shlib_t /usr/lib/httpd/module/mod_jk.so
%> service httpd start

http://domain/index.jsp를 접속해 보면!!!!
Apache Tomcat Apache Tomcat/7.0.4
라는 환영메세지를 보게 될것이다 ^^ ㅋ
http://domain/을 접속하면?? 일반 아파치 환영 페이지가 ^^

7. 가상호스트 연동
httpd.conf에 하거나 또는 extra/httpd-vhost.conf에 가상호스트 설정을 한다.
ㄴㅁㅇㄹ
NameVirtualHost *
<VirtualHost *>
        ServerAdmin id@domain.com
        DocumentRoot "/var/www/html"
        ServerName domain.com
        ErrorLog "logs/domain.com-error_log"
        CustomLog "logs/domain.com-access_log" common
        JkMount /*.jsp ajp13
        <Directory />
                Options FollowSymLinks
                AllowOverride None
                Order allow,deny
                Allow from all
        </Directory>
</VirtualHost>
<VirtualHost *>
        ServerAdmin ID@domain.com
        DocumentRoot "/home/update/www"
        ServerName sub.domain.com
        JkMount /*.jsp ajp13
</VirtualHost>

다음은 tomcat의 server.xml 설정
<Host name=localhost... >.... </Host>다음에 아래처럼 가상호스팅한 정보와 맞추어 넣는다

<!--########################### VirtualHost ###########################-->
        <Host name="domain.com" appBase="/home/update/www"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
        <Context path="" docBase="" debug="1"/>
        </Host>
<!--######################## VirtualHost End ##########################-->


8.tomcat 데몬 등록

#> vi /etc/init.d/tomcat
vi /etc/init.d/tomcat 으로 다음과 같이 쉘스크립트를 짠다.

#!/bin/sh
#
# Tomcat6 auto-start
#
# chkconfig: 2345 90 90
# description: Auto-starts tomcat6
# processname: tomcat6
# pidfile: /var/run/tomcat6.pid
case $1 in
start)
    sh /usr/local/tomcat/bin/startup.sh
    ;;
stop)
    sh /usr/local/tomcat/bin/shutdown.sh
    ;;
restart)
    sh /usr/local/tomcat/bin/shutdown.sh
    sh /usr/local/tomcat/bin/startup.sh
    ;;
esac
exit 0

이후 권한 설정과 chkconfig 리스트에 추가한다.
#> chmod 755 /etc/init.d/tomcat
#> chkconfig --add tomcat
#> service tomcat restart