Linux/CentOS2021. 3. 7. 16:31
  1. CentOS6 이전 버전 설치에 따른 yum 업데이트가 수행이 불가하여,
    /etc/yum.repos.d/CentOS-Base.repo를 아래와 같이 수행 후에 yum -y update 를 수행하였는데,
    원격접속이 되지 않아서, 서버 강제 리부팅을 수행하였는데,
    Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) 이 나타나면서
    부팅이 불가하게 되었다.

CentOS-Base.repo

#

The mirror system uses the connecting IP address of the client and the

update status of each mirror to pick mirrors that are updated to and

geographically close to the client. You should use this for CentOS updates

unless you are manually picking other mirrors.

#

If the mirrorlist= does not work for you, as a fall back you can try the

remarked out baseurl= line instead.

#
#

[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
baseurl=https://vault.centos.org/centos/$releasever/os/$basearch/
#gpgcheck=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#released updates
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
baseurl=https://vault.centos.org/centos/$releasever/os/$basearch/
#gpgcheck=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
baseurl=https://vault.centos.org/centos/$releasever/os/$basearch/
#gpgcheck=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
baseurl=https://vault.centos.org/centos/$releasever/os/$basearch/
#gpgcheck=1
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
baseurl=https://vault.centos.org/centos/$releasever/os/$basearch/
#gpgcheck=1
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6


  1. Linux Rescue mode 로 부팅하기
    CD/DVD USB 등의 media 를 넣고 부팅
    Boot 화면에서 rescue 선택

3rd party driver 등이 필요할 경우 tab 키를 누르고 kernel parameter 수정
If your system requires a third-party driver provided on a driver disc to boot, load the driver with the additional option dd:
linux rescue dd

언어 선택 (Korean 이 있으나 Text 모드이므로 선택이 불가하므로 English 를 선택)

KeyBoard Type 선택
Rescue Method 선택(DVD 부팅이므로 기본 Local CD/DVD 선택)

Network 이 필요할 경우 Network 설정
Rescue mode 선택. Local 에 설치된 linux 를 찾아서 /mnt/sysimage 에 마운트하며 시스템을 복구하려면 Read-Write로 마운트해야 한다. Continue 선택.

rescue manager 에는 다음과 같이 3개의 메뉴가 표시됨. shell을 선택하면 shell prompt 가 기동되어 복구 작업을 할 수 있음.

복구
복구할 리눅스 시스템의 루트 암호를 변경하거나 패키지를 설치하는등의 복구 작업을 할 경우 해당 파티션이 root로 마운트 되어야 작업이 가능하므로 다음 chroot 명령어로 루트 파티션을 변경.

chroot /mnt/sysimage

chroot 를 수행했으면 yum 이나 passwd 등 시스템 변경은 복구 대상 시스템을 대상으로 이루어짐.

  1. 패닉이 발생한 커널부분 삭제 후, 리부팅

    vi /etc/grub.conf

    에서 panic이 발생한 커널부분을 삭제하고, 리부팅 수행

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

Apache KeepAlive 설정  (0) 2019.10.08
PHPIZE를 이용한 openSSL PHP 확장 모듈 설치  (0) 2013.09.16
집 컴퓨터를 웹서버로 만들기  (0) 2013.09.16
CentOS 6.4(x86 64Bit) 웹서버 설치  (0) 2013.09.15
리눅스 yum 명령어  (0) 2012.10.10
Posted by iWithJoy
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/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
Linux/CentOS2012. 10. 10. 11:19

yum command sample (install, Uninstall,Update .. )

 

1.  패키지설치 (yum install)

[root@www ~]# yum -y install java-1.6.0-openjdk.i386


2.  패키지 삭제하기 (yum remove)

[root@www ~]# yum -y  remove java-1.6.0-openjdk.i386

 

3. 패키지 업데이트 (yum update)

[root@www ~]# yum update java-1.6.0-openjdk.i386

 

4. 패키지 찾기 (yum search)

[root@www ~]# yum search java

 

5. 패키지 정보 확인하기 (yum info)

[root@www ~]# yum info kernel


6. 설치 가능한 패키지 전체 리스트보기

[root@www ~]# yum list | less

 

7. 설치된 패키지 리스트 보기

[root@www ~]# yum list installed | less

 

8. 패키지그룹 설치하기

[root@www ~]# yum -y groupinstall "Development Tools"

 

9. 패키지그룹 업데이트

[root@www ~]# yum groupupdate "Development Tools"

 

10. 패키지그룹 삭제하기

[root@www ~]# yum groupremove "Development Tools"

 

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

집 컴퓨터를 웹서버로 만들기  (0) 2013.09.16
CentOS 6.4(x86 64Bit) 웹서버 설치  (0) 2013.09.15
BackupPC for CentOS  (0) 2012.10.09
아파치 모듈 mod_rewrite 설정  (0) 2012.09.13
CentOS Iptables 방화벽 포트 OPEN  (0) 2012.09.07
Posted by iWithJoy
Linux/CentOS2012. 10. 9. 11:41

backuppc 를 이용한 백업구성.

참고:  http://wiki.centos.org/HowTos/BackupPC

 
== 서버 설정.
* 백업서버에 backuppc 설치.
  o TEST repo 추가.
 # cd /etc/yum.repos.d
 # wget http://dev.centos.org/centos/6/testing/CentOS-Testing.repo

 # yum install yum-priorities
 
  o BackupPC 설치

   # yum --enablerepo=c6-testing install httpd (주의! 기존에 Apache를 이용하여 홈페이지를 운영 중인 웹서버라면, httpd를 설치 금지) 
   # yum --enablerepo=c6-testing install mod_perl

   주요설치모듈 
      httpd-2.2.8-1.el5s2.centos.i386.rpm
      mod_perl.i386 2.0.4-6.el5 (기존에 설치되어 있음)

http://www.centos.org/modules/newbb/viewtopic.php?topic_id=39424&forum=55&post_id=171289#forumpost171289

참고하여,

http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/6/i386/repoview/epel-release.html

에서

epel-release-6-7.noarch 를 다운로드 받아서

# rpm -Uvh epel-release-6-7.noarch.rpm

을 수행하고,

# yum install BackupPC

를 실행하여 설치하면 된다.

 


  o Apache 설정
 # vim /etc/httpd/conf/httpd.conf
또는
# vim /usr/local/apache/conf/httpd.conf (설치에 따라 위치 상이)
 ## Change User apache to User backuppc
 User backuppc
 ServerName backuppc.domain.com:80   

 # vim /etc/httpd/conf.d/BackupPC.conf
 ## Change Allow from 127.0.0.1 to all
 Allow from all

 # htpasswd -c /var/lib/backuppc/passwd/htpasswd your_user   <--admin
 New password: your_password
 Re-type new password: your_password
 Adding password for user your_user

 # service httpd start
 # chkconfig httpd on

  o 웹인터페이스 접속 :  http://localhost  접속하여 apache 설정오류 확인.. 접속되면 OK
 
  o BackupPC Main config 설정.
 # vim /etc/BackupPC/config.pl
 
 ## Default transfer method BackupPC uses.
 $Conf{XferMethod} = 'rsync';
 
 ## Path to where actual backup data is stored.
 $Conf{TopDir}      = '/var/lib/backuppc';
 
 ## Path to init.d which is used to to start server.
 $Conf{ServerInitdPath} = '/etc/init.d/backuppc';
 $Conf{ServerInitdStartCmd} = '$sshPath -q -x -l root $serverHost$serverInitdPath start';
 
 ## Allowed user that you created using htpasswd.
 $Conf{CgiAdminUsers}     = 'your_user';   <-- admin


  o sudo 설정.
 # visudo
 
 ## Comment out Defaults requiretty
 ## Add the following two lines.
 Defaults !lecture
 backuppc ALL=NOPASSWD:/bin/gtar,/bin/tar

  o httpd, backuppc  restart
 # service httpd restart
 # service backuppc start
 # chkconfig backuppc on

  o 웹 접속 확인  :  http://serverip/backuppc  접속하여 로그인(admin)되면 OK
 
  o SSH Key 설정 : 원격서버 접속(rsync 등)을 위해서.
 # cd /var/lib/backuppc
 # mkdir .ssh
 # chown backuppc.backuppc .ssh
 # chmod 700 .ssh

 # su -s /bin/bash backuppc
 bash-3.2$ ssh-keygen -t dsa
 
 Generating public/private dsa key pair.
 Enter file in which to save the key (/var/lib/backuppc/.ssh/id_dsa):
 Enter passphrase (empty for no passphrase):      <--공백을 입력해야 원격서버 접속시 요청을 안함.
 Enter same passphrase again:
 Your identification has been saved in /var/lib/backuppc/.ssh/id_dsa.
 Your public key has been saved in /var/lib/backuppc/.ssh/id_dsa.pub.
 The key fingerprint is:
 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx backuppc@host.domain.name

 bash-3.2$ ssh-copy-id -i .ssh/id_dsa.pub root@host_to_backup   <--클라이언트 IP
 bash-3.2$ ssh root@host_to_backup    --> 원격서버 접속 확인. 최초한번 패스워드를 요청함.


  o 웹에서 백업을 수행할 사용자 등록 : backupuser
 # htpasswd  /var/lib/backuppc/passwd/htpasswd backupuser   <--admin
 
 
== 백업client(원격서버) 설정.
* 가정 : client 설정 : linux, 10.10.10.44

* 웹인터페이스에서 hosts 추가 : http://serverid/backuppc   (admin/xxxxx)
  o 메뉴위치 : 좌측하단의 "Edit Hosts" 클릭  우측의 add 버튼
   - host : 원격서버(client) hostname
   - user : 웹인터페이스에서 담당할 계정  (backupuser)
   

== 백업 client(원격서버) 설정 : windows, rsyncd 방식
* 윈도우용 cygwin-rsyncd  데몬 다운로드 :
   http://sourceforge.net/projects/backuppc/files/latest/download  
   rsync 적용시 한글파일명지원을 위하여 필요시 cygwin1.dll을 패치를 해야하는 경우가 있다.
    http://isulnara.com/tt/161
  
* 압축을 해제한후 c:\rsyncd 폴더에 복사함.
 o rsyncd.conf 설정
 use chroot = false
 max connections = 4
 log file = c:/rsyncd/rsyncd.log
 pid file = c:/rsyncd/rsyncd.pid
 lock file = c:/rsyncd/rsyncd.lock
 
 [backuppc]
   path = d:\xxxx
   comment = user comment
   auth user = backupuser
   secrets file = c:/rsyncd/rsyncd.secrets
   # hosts allow = 172.16.0.17
   strict modes = true
   read only = true
   list = false
  o rsyncd.secrets 에 사용자 IP:PW 설정.
    backupuser:xxxxxxx
   
  o rsync 서비스 시작 : xinet 도는 inetd
   
  o 웹인터페이스에서 hosts 추가 : http://serverid/backuppc   (admin/xxxxx)
   - 메뉴위치 : 좌측하단의 "Edit Hosts" 클릭  우측의 add 버튼
      host : 원격서버(client) hostname
      user : 웹인터페이스에서 담당할 계정  (backupuser)
  o 웹인터페이스에서 좌측상단의 hosts 를 선택하여 개별사항설정하기.
   - Edit Config > Xfer
     XferMethod : rsyncd
     RsyncShareName : backuppc
     RsyncdUserName : backupuser
     rsyncdPasswd : your_password
     Save 버튼 클릭.
   - Edit Config > Backup Settings
     ClientNameAlias : 실제IP를 입력함.
     Save 버튼 클릭.
    
    
    
== 참고사항 ==
* smb 방식에서
 o window 파일 SMB방식으로 백업수행시 tree connect failed: NT_STATUS_ACCESS_DENIED 메세지 발생시
   Got fatal error during xfer (No files dumped for share xxxx)
  - Xfer 메뉴의 SmbClientFullCmd 파라미터에 "-N" 파라미터를 제거하거나
    또는 "-U $userName -N" 제거후 시도해 본다.
    http://www.mail-archive.com/backuppc-users@lists.sourceforge.net/msg12207.html
    https://bugs.launchpad.net/ubuntu/+source/backuppc/+bug/283652
   
    smb : http://wiki.kldp.org/wiki.php/LinuxdocSgml/SMB-HOWTO
   
   
* cygwin-rsyncd download :: http://sourceforge.net/projects/backuppc/files/   2009.08.10 현재 2.6.8_0   


* samba 사용법
  http://int.hcc.ac.kr/~swnam/%B0%AD%C0%C7%C0%DA%B7%E1/%B8%AE%B4%AA%BD%BA/07.%B8%AE%B4%AA%BD%BA_Samba.ppt#332,37,사용자별 공유폴더 사용하기
 
 
* mssql2000 백업방법...
http://sqler.pe.kr/sql2k/102.asp

 

==== sun pkg install
http://www.sunfreeware.com/pkg-get.html
pkg-get -U   <--처음한번.
=====================


# pkg-get -u rsync

# vi /etc/services 파일에 다음추가
  rsync 873/tcp  # rsync
 
# vi /etc/inetd.conf   아래추가
    rsync stream tcp nowait root /usr/local/bin/rsync rsyncd --daemon
   
# vi /etc/rsyncd.conf  파일생성
use chroot = false
max connections = 4

log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock

[www]
    path = /home/www
    comment = webserver1
    uid = nobody
    gid = nobody
    read only = yes
    ###hosts allow = 10.10.
    timeout = 600
    list = false
    strict modes = false
    auth users = backupuser

    secrets file = /etc/rsyncd.secrets
   

# vi /etc/rsyncd.secrets   생성
  backupuser:yourpassword
  
 
# ps -ef | grep inetd
# kill -HUP inetd_pid  
# netstat -an | grep 873    <-- 포트오픈 확인.

 

 

=== rsync  For HP-UX ===

http://hpux.connect.org.uk/hppd/hpux/Networking/Admin/rsync-3.0.6/

 

 

=== iis 백업하기 ==

iis backup :: http://blog.naver.com/saint7710?Redirect=Log&logNo=10040107329
cd c:\windoes\system32
백업 :: iisback /backup /b 백업으로저장될이름
리스트보기 :: iisback /list
복구하기 :: iisback /restore /b 백업된이름 /v 1

 

 

=== 백업내용제거시 ===
su -s /bin/bash backuppc
/usr/bin/BackupPC_nightly 0 150

 

=== troubleshoting == 
su -s /bin/bash backuppc 
BackupPC_dump -v -f hostname

 

참고
http://wiki.qnap.com/wiki/How_to_install_the_BackupPC_application

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

CentOS 6.4(x86 64Bit) 웹서버 설치  (0) 2013.09.15
리눅스 yum 명령어  (0) 2012.10.10
아파치 모듈 mod_rewrite 설정  (0) 2012.09.13
CentOS Iptables 방화벽 포트 OPEN  (0) 2012.09.07
Wowza Media Server 설치  (0) 2012.09.07
Posted by iWithJoy
Linux/CentOS2012. 9. 13. 11:00

발단은 퍼마링크(permalink:  permanent link, 고유링크) 접속이 불가하여 확인하던 중에 mod_rewrite 설정이 필요했다.

 

1)mod_rewrite이 설치되어 있는지 확인해보자
- 아파치 설정 파일에 다음 라인이 있는지 확인하고 없다면 적고 저장한다
LoadModule rewrite_module modules/mod_rewrite.so
- 아파치 재시작
/etc/init.d/httpd restart
- index.php에 <? phpinfo(); ?> 를 코딩하고 DocumentRoot로 지정된 디렉토리에 저장하자
- 웹브라우저로 index.php 확인하자
apache2handler Loaded Modules 항목에 mod_rewrite이 보이면
이미 rewrite 모듈이 설치된 것이다

 

2)
DocumentRoot로 지정된 디렉토리에(/var/www/html) cloth/freece라는 이름의 하위 디렉토리들을 만들고
# mkdir -p /var/www/html/cloth/freece
그 아래에 123.html 파일을 저장하자
# cd /var/www/html/cloth/freece
# touch 123.html

3)
/var/www/html에 .htaccess 파일을 생성하고 다음을 적어주자
RewriteRuleEngine on
RewriteRule /products/([0-9]+) /products/freece/$1
RewriteRule의 기본 형식은 다음과 같다
RewriteRule Pattern Substitution [Flag(s)]
[0-9]+는 숫자가 하나 이상 있음을 의미한다
예)아래와 같은 형태의 파일이 매칭된다

http://localhost/products/123.html

http://localhost/products/4323.html

http://localhost/products/43374823.html

소괄호로 감싼 부분은 태그를 부여하는 것이다 뒤에서 $1로 참조할 수 있다
 
4)
.htaccess 파일을 사용하기 위해서 /etc/httpd/conf/httpd.conf의 다음 부분을 수정하자
<Directory /var/www/html>
    AllowOverride ALL #원래는 None인데 ALL로 수정하자
</Directory>
설정을 변경했으니 아파치 재시작한다
/etc/init.d/httpd restart

 

5)

테스트를 해볼 차례다
/var/www/html에 test.html을 만들고 다음을 저장하자
<html>
    <head>
        <title>example</title>
    </head>
<body>
<p>
<a href="http://192.168.0.3/products/123.html">test</a>
</p>
</body>
</html>
웹브라우저 주소창에 http://192.168.0.3/test.html을 입력하고 test라는 링크를 클릭하면
http://192.168.0.3/products/123.html 페이지 대신에 http://192.168.0.3/cloth/freece/123.html 페이지가 로드된다

 

6) 
웹서버에 존재하지도 않는 http://192.168.0.3/products/123.html을 주소창에 입력해도
http://192.168.0.3/cloth/freece/123.html로 리다이렉트되기 때문에
오류없이 http://192.168.0.3/cloth/freece/123.html 페이지를 볼 수 있게 된다 

mod_rewrite에 대해서 쉽게 설명한 웹사이트
http://www.workingwith.me.uk/articles/scripting/mod_rewrite
http://www.sitepoint.com/article/guide-url-rewriting/2/

출처: http://blog.naver.com/timberx/30040695435

 

 

 

apache 서버에서 mod_rewrte 가 동작 하도록 설정하기

 

rewrite 모듈은 설치가 되어 있다는 것을 가정한다.

 

httpd.conf 에서

 

DocumentRoot "C:/webroot"
<Directory "C:/webroot">
   Options Includes ExecCGI FollowSymLinks
    AddHandler cgi-script .cgi .pl
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

 

 

AllowOverride  All 이걸 해줘야 웹루트의 .htaccess 파일에 있는 rewrite rule 이 동작한다.

None 로 해두면 무시 된다.

 

Options FollowSymLinks 이 부분도 있어야 동작한다.

 

.htaccess

 

파일에

 

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>

 

이렇게 넣어두면

 

http://localhost/users => http://localhost/index.php?url=users 로 맵핑된다.

 

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

리눅스 yum 명령어  (0) 2012.10.10
BackupPC for CentOS  (0) 2012.10.09
CentOS Iptables 방화벽 포트 OPEN  (0) 2012.09.07
Wowza Media Server 설치  (0) 2012.09.07
CentoOS DSS(Darwin Streaming Server) 설치  (0) 2012.09.07
Posted by iWithJoy
Linux/CentOS2012. 9. 7. 15:02

CentOS 에서는 Install을 하는경우 자동적으로 Iptables 방화벽이 설치되는 것 같다.

 

그럼 우선 설치다하고 나서 WAS , MYSQL 등등의 Setting 후 외부에서 접속하는 방법에 대해서 알아보자.

 

[1] 방화벽 설정파일은 어디있는가?

아래 경로를 보면 방화벽 설정파일을 열어볼 수가 있다.

 # vim /etc/sysconfig/iptables

 

[2] 설정파일을 대충 파악하자.

# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

 

(노랑색) 위 설정을 보면 22번 sshd port가 현재 열려있는것을 확인가능하다.

(파랑색) 또한 22번 이외의 다른 것들은 모두 막아라 라는 코드가 있다.

 

그럼 3306,21,80 포트를 를 추가하여 보자.

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT 

 

위 처럼 포트를 추가하고 저장한다음 잘 추가되었는지 보도록 하자.

 

단!! 주의사항은 위 파랑색으로 된 -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited

요코드드는 삭제한 후에 해야 한다 그럼 다음과 같이 되겠죠?

 

 

 # Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

COMMIT

 

자 , 이제 iptables가 잘 적용이 되었는지 확인해 보도록 하자.

 

 

[root@localhost sysconfig]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
RH-Firewall-1-INPUT  all  --  anywhere             anywhere

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
RH-Firewall-1-INPUT  all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain RH-Firewall-1-INPUT (2 references)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     icmp --  anywhere             anywhere            icmp any
ACCEPT     esp  --  anywhere             anywhere
ACCEPT     ah   --  anywhere             anywhere
ACCEPT     udp  --  anywhere             224.0.0.251         udp dpt:mdns
ACCEPT     udp  --  anywhere             anywhere            udp dpt:ipp
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ipp
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ftp
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:mysql
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:http

[root@localhost sysconfig]# 

 

위 보는바와 같이 적용이 잘 되었다. 이제 데몬을 재시작 하도록 하자.

 

 # /etc/init.d/iptables restart

 

 

다시 이제 방화벽을 적용해야 한다, 아까 위에서 빼버린 코드를 넣고 다시금 재시작 하도록 한다.

-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited 코드 추가함

 

최종 적으로 , 다시 iptables -L 명령어를 통해 보도록 하자.

 

 

[root@localhost sysconfig]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
RH-Firewall-1-INPUT  all  --  anywhere             anywhere

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
RH-Firewall-1-INPUT  all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain RH-Firewall-1-INPUT (2 references)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     icmp --  anywhere             anywhere            icmp any
ACCEPT     esp  --  anywhere             anywhere
ACCEPT     ah   --  anywhere             anywhere
ACCEPT     udp  --  anywhere             224.0.0.251         udp dpt:mdns
ACCEPT     udp  --  anywhere             anywhere            udp dpt:ipp
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ipp
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ftp
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:mysql
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:http
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

 

위 코드에서 보듯이 다시금 reject를 통해서 방화벽이 추가된 것을 확인할 수 있따.

 

이상이 IPTABLES의 PORT를 여는 방법에 대해서 서술 하였다.

 

출처: http://srzero.tistory.com/125

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

BackupPC for CentOS  (0) 2012.10.09
아파치 모듈 mod_rewrite 설정  (0) 2012.09.13
Wowza Media Server 설치  (0) 2012.09.07
CentoOS DSS(Darwin Streaming Server) 설치  (0) 2012.09.07
부팅 시에 네트워크 자동 시작  (0) 2012.09.05
Posted by iWithJoy
Linux/CentOS2012. 9. 7. 09:41

와우자 미디어서버로 모든 스트리밍 서비스를 하려고 합니다.

현재 cafe24에서 테라서버 호스팅을 이용중에 있습니다.
곰인코더를 통해 mp4로 해당 영상을 변환하고 ftp로 업로드 후
jwplayer를 통해 홈페이지에서 동영상을 서비스하고 있는 형태입니다.

이렇게 했을때 문제가 발생하는데 제가 겪고 있는 가장 큰 애로는 아래 두 가지입니다.
1. 멀티디바이스 서비스 애로
2. 트래픽 가중

1. 멀티디바이스 서비스의 경우 코딩을 통해 어느정도 해결이 가능할거 같은데
    솔직히 실력이 안돼서라고 말하지만, 귀찮아서 안한다고로 버티는 중이구요.
2. 트래픽 가중은 좀 심각한 상황입니다.
    한달에 트래픽이 약 1테라 정도 발생하는데 가끔씩 약정 트래픽에 오버되어 추가 비용이 발생하는 상황이죠.
    유저가 홈페이지를 통해 동영상을 볼때 해당 페이지를 빠져나가거나 재생중지를 하는 경우
    스트리밍도 중단이 되어야 하는데, 너무나 착실하게 다운로드를 하니까 이런 문제가 발생하는 듯합니다.

그리하여 와우자 미디어 서버(Wowza media server를 설치하여 위 두가지의 문제점을
해결하고자 합니다.

cafe24 테라서버의 경우 CentOs 5.5 버전이 설치되어 있습니다.

먼저 jdk를 설치해야 하는데요.
http://gauryan.blogspot.kr/2011/04/centos-jdk.html  이곳을 참고하면 쉽게 설치가 가능합니다.

내용은 아래와 같고요. 링크를 통해 확인 가능합니다.

CentOS에서 JDK 설치하기

CentOS에서 JDK를 설치하려면, 내장 패키지인 OpenJDK 를 설치하면 아주 쉽게 된다. 물론 Oracle 에서 다운로드 받아서 해도 되지만, 쉬운 방법이 있으니 그냥 쉽게 하자. OpenJDK도 특별히 문제 없고, 대부분 리눅스 배포판에서도 지원하고 있으니, 맘 놓고 사용하면 될 것 같다.


  • OpenJDK 패키지 확인/설치
    # yum list all | grep jdk
    gnu-crypto-sasl-jdk1.4.i386 2.1.0-2jpp.1 base
    java-1.6.0-openjdk.i386 1:1.6.0.0-1.16.b17.el5 updates
    java-1.6.0-openjdk-demo.i386 1:1.6.0.0-1.16.b17.el5 updates
    java-1.6.0-openjdk-devel.i386 1:1.6.0.0-1.16.b17.el5 updates
    java-1.6.0-openjdk-javadoc.i386 1:1.6.0.0-1.16.b17.el5 updates
    java-1.6.0-openjdk-src.i386 1:1.6.0.0-1.16.b17.el5 updates
    ldapjdk.i386 4.18-2jpp.3.el5 base
    ldapjdk-javadoc.i386 4.18-2jpp.3.el5 base
    mockobjects-alt-jdk1.4.i386 0.09-14jpp.3 base
    mockobjects-jdk1.4.i386 0.09-14jpp.3 base



    # yum install java-1.6.0-openjdk java-1.6.0-openjdk-devel
  • Java 버전을 확인해본다.
    # javac -versionjavac 1.6.0_17# java -version
    java version "1.6.0_17"
    OpenJDK Runtime Environment (IcedTea6 1.7.5) (rhel-1.16.b17.el5-i386)
    OpenJDK Client VM (build 14.0-b16, mixed mode)

이제 와우자홈페이지 (www.wowza.com)에서 해당 프로그램을 다운받아 설치해보자.
저는 여기서 (http://www.wowza.com/pricing/installer) Linux RPM버전을 다운받아
설치했습니다. 

설치방법은 아래와 같습니다.
sudo chmod +x WowzaMediaServer-3.1.2.rpm.bin
sudo ./WowzaMediaServer-3.1.2.rpm.bin

 
설치방법은 와우자 포럼페이지에서도 확인가능합니다. - 쭈욱 훑어보시기 바랍니다.
http://www.wowza.com/forums/content.php?217#installWowza

 


설치는 간단합니다.

약관(?)을 다 읽고 yes만 쳐주면 1분도 되지 않아 설치가 다 됩니다.

설치후에는 라이센스 키를 입력해야하는데 화면에 나와있듯이 /usr/local/WowzaMediaServer/bin에서
./startup.sh를 실행하면 라이센스 키를 입력하라는 화면이 나옵니다.

*라에센스 키 받는법.
1. 산다.
2. Trial키를 받는다.- 30일짜리
3. Developer 키를 받는다. - 180일짜리

메일주소를 비롯한 기본 정보를 넣고 신청하면 메일로 옵니다.
그걸 ./startup.sh 를 실행했을때 입력하면 됩니다.

 


해당라이센스키를 입력하면 위의 그림처럼 와우자 미디어 서버가 시작되었다는 메세지가 뜹니다.
근데 이렇게 계속하면 안되구요.

Starting and Stopping the Server (System Service) 방식으로 저는 했습니다.
두 번째 방법(진한글씨)으로 했습니다.

service WowzaMediaServer start

or


/etc/init.d/WowzaMediaServer start


or


/sbin/service WowzaMediaServer start


이렇게 실행하고 나면 웹페이지에서 제대로 돌아가는지 확인을 해야겠죠.
확인하는 방법은 해당도메인에 1935포트번호를 붙여주면 되죠.
http://www.abc.com:1935/

 

저는 개발자 버전 키를 받아서 내년 2월7일까지 사용이 가능합니다.

*이렇게 1935포트를 이용해서 서버 버전등을 알 수 있는데 이걸 또 비공개화 하는 방법이 있습니다.

 

출처: http://zicman.egloos.com/2953224

출처: http://zicman.egloos.com/2953415

 

 

 

[wowza] 모바일 rtsp링크를 웹에 임베딩 할때

 

윈도우에 미디어 플레이어 임베딩 하는 것 처럼
rtsp 플레이어인 vlc 플레이어를 임베딩 한다
 
<OBJECT classid="clsid:E23FE9C6-778E-49D4-B537-38FCDE4887D8"
codebase="http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab"
width="400" height="300" id="vlc" events="True">
<param name="Src" value="rtsp://[wowza-ip-address]/vod/mp4:sample.mp4" />
<param name="ShowDisplay" value="True" />
<param name="AutoLoop" value="True" />
<param name="AutoPlay" value="True" />
<param name="Volume" value="100">
</OBJECT>
 
 
자세한 내용은 VIDEOLAN 홈페이지를 참고하세요.
 
 
 
 
플레쉬 임베딩시에는 아래 참조
<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' width='640' height='480' id='single1' name='single1'>
<param name='movie' value='http://플레이어위치/player.swf'>
<param name='allowfullscreen' value='true'>
<param name='allowscriptaccess' value='always'>
<param name='wmode' value='transparent'>
<param name='flashvars' value='file=스트림파일&screencolor=EEEEEE&bufferlength=1&streamer=rtmp://서버아이피또는 주소/live&autostart=true'>
</object>

 

출처: http://www.jnetwork.co.kr/bbs/board.php?bo_table=useguide&wr_id=116 

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

아파치 모듈 mod_rewrite 설정  (0) 2012.09.13
CentOS Iptables 방화벽 포트 OPEN  (0) 2012.09.07
CentoOS DSS(Darwin Streaming Server) 설치  (0) 2012.09.07
부팅 시에 네트워크 자동 시작  (0) 2012.09.05
사용자 계정 추가  (0) 2012.09.03
Posted by iWithJoy