'manabu & Linux'에 해당되는 글 43건

  1. 2011.04.05 APMSETUP,XAMPP등으로 XE작업환경을 만들때. 1
  2. 2010.06.29 CentOS 용 Filezilla Client
  3. 2010.04.02 httpd 프로세서 폭주 - 웹서버가 급격히 느려질때
  4. 2010.01.03 euckr세팅 MYSQL에서 UTF8코드 사용하기..
  5. 2009.12.14 CentOS 5.3 php compile시 Installing PDO headers: /usr/local/php/include/php/ext/pdo/ 메세지와 함께 install이 중지될때
  6. 2009.07.29 CentOS(Fedora,RHEL)에서 PC스피커음(비프음) 완전히 끄기..
  7. 2009.07.29 chkconfig 리눅스에서의 데몬관리
  8. 2009.07.26 Making Linux Streaming Server RED5 스트리밍 리눅스서버 만들기
  9. 2009.07.25 CentOS 리눅스에서 완벽 동영상 재생하기
  10. 2009.07.24 CentOS에서 윈도우서체 쓰기..
  11. 2009.07.23 CentOS Flash plugin 10 설치하기
  12. 2009.07.16 레드헷 리눅스에서 Apache + Oracle + PostgreSQL + MySQL + PHP + Tomcat + JAVA 서버구성3 (버추얼호스팅 Virtual hosting) 1
  13. 2009.07.15 레드헷 리눅스에서 Apache + Oracle + PostgreSQL + MySQL + PHP + Tomcat + JAVA 서버구성2
  14. 2009.07.15 레드헷 리눅스에서 Apache + Oracle + PostgreSQL + MySQL + PHP + Tomcat + JAVA 서버구성1 1
  15. 2009.07.15 레드헷 계열 리눅스에서 MySQL설치
  16. 2009.07.15 레드헷계열 리눅스에서 PostgreSQL의 설치
  17. 2009.07.15 레드헷 리눅스에서의 오라클의 자동 시동
  18. 2009.07.14 레드헷 계열 리눅스에서 오라클11설치하기
  19. 2009.06.18 페도라코어에서 putty 한글 사용법 2
  20. 2009.05.31 Linux lastlog
  21. 2009.05.30 Webalizer의 설치
  22. 2009.05.29 제로보드XE 통째로 서버이전하기 2
  23. 2009.05.28 Yum이 갑자기 안될때...
  24. 2009.05.28 Proftp의 설치
  25. 2009.05.25 스트리밍 서버 구축 - 2003 Windows Media Server VOD 주문형
  26. 2009.05.25 주문형 스트리밍 서버 구성기 - Darwin Streaming Server 2 1
  27. 2009.05.24 리눅스(fedora) 주문형 스트리밍 서버 구성기 - Darwin Streaming Server 2
  28. 2009.05.24 페도라코어 VLC 스트리밍 서버 - 브로드캐스팅형 방송 구현 4
  29. 2009.05.24 fedora core VLC스트리밍서버 설치
  30. 2009.05.15 제로보드 Xe Rewrite Mod설정하기 1
2011. 4. 5. 11:57

APMSETUP,XAMPP등으로 XE작업환경을 만들때.

사이트를 만들다 보면 서버 - 작업컴퓨터로 연결하여 작업할때 보면 여간 불편한것이 만들고 ftp로 업로드를 해주거나 서버상태에서 vim이나 에디터를 이용해 직접 만져주어야 하는 경우가 있다. 

이 경우 서버와 작업 클라이언트간에 동일시 되지 않는 파일의 변경때문에 나중에 에로사항에 접할때가 많다.

그래서 ftp나 vim등을 이용하지 않고 클라이언트 작업 컴퓨터에 APM을 설치하여 클라이언트에서 모든 작업을 하고 완성되어 서버에 한꺼번에 올리면 작업속도나 여러가지 면에서 상당히 편한점이 있다.

하지만 보통 서버에서는 표준적으로 아파치나 sql php등의 환경을 제공하기 때문에 별 어려움이 없으나 자신의 컴퓨터에서는 하나하나 설치하는것이 상당히 재미없고 무의미한 작업이다.

이에 APM을 통합적으로 한번에 설치해주는 프로그램이 국내에서는 APMSETUP이고 외국의 경우 XAMPP(lampp)등이 많이 애용된다. xampp의 경우 리눅스용 패키지도 제공하고 있으니 유용할 듯 싶다.

단 윈도우에서 xampp나 apmsetup등을 설치한 후 나타나는 에러사항이 바로 XE의 rewrite모드.. 

이것은 아파치의 환경을 재설정해주어야 된다.

아파치의 http.conf 파일을 열면

1.

LoadModule rewrite_module modules/mod_rewrite.so

보기와 같이 활성화 되어 있어야 한다. 앞에 #처리 되어 있다면 지워줄것.. 

2.
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

이 항목을 

<Directory />
    Options FollowSymLinks
    AllowOverride All
    #Order deny,allow
    #Deny from all
</Directory>

이와 같이 변경하여 주고 아파치 리스타트...!

 
 <xampp의 콘트롤박스에서 간단히 stop/start버튼으로 아파치를 재기동시켜준다.>

여기까지 완료되면 간혹 XE를 사용하다보면 330 오류 Error_contents_decording_failed에러에 직면할경우가 있다.  이 경우에는  xe디렉토리의 class디렉토리 아래 display디렉토리에서 DisplayHandler.class.php를 찾아 수정해주어야 한다.

classes/display/DisplayHandler.class.php의 function printContent(&$oModule)함수부분을 수정해준다.
 


// header 출력
            if($this->gz_enabled) header("Content-Encoding: gzip");
if(Context::getResponseMethod() == 'JSON') $this->_printJSONHeader();
else if(Context::getResponseMethod() != 'HTML') $this->_printXMLHeader();
else $this->_printHTMLHeader(); 

이 부분을

// header 출력
$this->gz_enabled = false;
            if($this->gz_enabled) header("Content-Encoding: gzip");
if(Context::getResponseMethod() == 'JSON') $this->_printJSONHeader();
else if(Context::getResponseMethod() != 'HTML') $this->_printXMLHeader();
else $this->_printHTMLHeader(); 

  
이런식으로 바꾸어준다.

이제 작업클라이언트에서도 말끔히 웹서버를 만들어 작업을 원할히 할수 있다.

서버의 업로드시에는 XE가 인스톨된 /에 files디렉토리를 작업컴퓨터에서 서버로 업로드에 덮어쓰기 한후에 db.config.php와 mysql의 xe_sites만 서버의 도메인이나 ip로 수정하고 files의 소유권을 daemon.daemon으로 바꾼다.

mysqldump명령으로 작업클라이언트에서 sql를 백업받은후 mysql명령으로 서버에서 restore하면 클라이언트에서 작업한것은 서버에서도 동일하게 이상없이 돌아간다.

 
2010. 6. 29. 15:27

CentOS 용 Filezilla Client

 filezilla 클라이언트를 CentOS에서 사용하기 위해서 파일질라 공식 홈페이지에서 다운받으면 의존성 문제땜에 구찮아 지기 시작한다..

그래서 비공식적인 CentOS용 파일질라를 업로드합니다..







 
2010. 4. 2. 05:33

httpd 프로세서 폭주 - 웹서버가 급격히 느려질때

어느날...

나의 웹서버가 매우 느려진다는 느낌이 들었다..
이유가 무엇일까? 아직 원인을 모른다..

그러나 해결은 했다..

32385 ?        S      0:00 /usr/local/httpd/bin/httpd -k start
32388 ?        S      0:00 /usr/local/httpd/bin/httpd -k start
32390 ?        S      0:00 /usr/local/httpd/bin/httpd -k start
32395 ?        S      0:00 /usr/local/httpd/bin/httpd -k start
32399 ?        S      0:00 /usr/local/httpd/bin/httpd -k start
32402 ?        S      0:00 /usr/local/httpd/bin/httpd -k start
32406 ?        S      0:00 /usr/local/httpd/bin/httpd -k start
32411 ?        S      0:00 /usr/local/httpd/bin/httpd -k start
32417 ?        S      0:00 /usr/local/httpd/bin/httpd -k start


이러한 httpd프로세서가 무한적으로 실행되고 있는것...
httpd를 다시 시작해봐도.. 증가하는것은 마찬가지 였다..

-> 현재 서비스하고 있는 서버 데몬들의 점검이 필요하다.. mysql  이나  SSH ,ftpd등등...

해결 : vsfttd를 죽이고 다시 웹서버를 가동하니... 정상적으로 돌아왔다.. 휴~ ftp의 요청과 서버의 응답속에서 뭔가의 오류에 직면해서 httpd프로세서에 영향을 준듯하다..추측성 생각..

vsftpd를 사용하지 않고 proftp로 설치후 ftp의 포트를 변경하니.. 다시 정상화...

무슨 이유일까?... kldp나 구글링을 통해도 뭔가 딱 하는 답변이 없다..

어쨋든 다시 정상화 되어 다행이다.. 

2010. 1. 3. 16:14

euckr세팅 MYSQL에서 UTF8코드 사용하기..


오랫동안 UTF8용 MYSQL만 사용하였더니, EUCKR용 MySQL서버로 UTF8로 인코딩된 데이타베이스와 페이지를 이전하니 코드가 모두 깨지는 현상이 발생한다.

물론 table 모두 utf8로 만들어진 상태..

그럴때는 간단하게
 function my_connect($host,$id,$pass,$db)
{
 $connect=mysql_connect($host,$id,$pass);
 mysql_select_db($db);
 mysql_query("set names 'utf8'",$connect);
 return $connect;
}

connect용 php함수에서 붉은색의 query만 삽입해주고, 보통의 페이지는 평소대로 작업하면 끝난다..


2009. 12. 14. 16:59

CentOS 5.3 php compile시 Installing PDO headers: /usr/local/php/include/php/ext/pdo/ 메세지와 함께 install이 중지될때


CentOS 5.3 PHP설치시 많이 발생하는 에러라고 하는군요..

Ubunto나 FC시스템에서 발생하지 않았는데.. Cent에서는 발생하는군요..

이것은 make가 끝난 상황에 make install시에 발생되는 일종의 버그같은 느낌입니다.

압축을 푼 디렉토리로 이동하여..

[root@localhost php-5.2.11]# cp php.ini-dist /usr/local/httpd/conf/php.ini

이와같이 php.ini로 카피를 해줍니다.

* php.5.3x 버젼부터는 php.ini-dist가 아닌 php.ini-development 와 php.ini-product의 형태로 파일이 제공됩니다. php.ini-product파일로 php.ini파일로 변환 카피해주시면 됩니다.

그다음
[root@localhost php-5.2.11]# vi /usr/local/httpd/conf/httpd.conf

파일을 열어서..
DirectoryIndex부분에 index.php를 추가해주시고요..

AddType Apllication/x-httpd-php .php .html

을 추가해주시면 됩니다.




2009. 7. 29. 13:18

CentOS(Fedora,RHEL)에서 PC스피커음(비프음) 완전히 끄기..

조용함이 반드시 필요한 병원이나 도서관,사무실에서 비프음을 완전히 없애는 방법이다.

[root@akaslinux modprobe.d]# vi /etc/modprobe.d/blacklist

 #
# Listing a module here prevents the hotplug scripts from loading it.
# Usually that'd be so that some other driver will bind it instead,
# no matter which driver happens to get probed first.  Sometimes user
# mode tools can also control driver binding.
#
# Syntax:  driver name alone (without any spaces) on a line. Other
# lines are ignored.
#

# watchdog drivers
blacklist i8xx_tco

# framebuffer drivers
blacklist aty128fb
blacklist atyfb
blacklist radeonfb
blacklist i810fb
blacklist cirrusfb
blacklist intelfb
blacklist kyrofb
blacklist i2c-matroxfb
blacklist hgafb
blacklist nvidiafb
blacklist rivafb
blacklist savagefb
blacklist sstfb
blacklist neofb
blacklist tridentfb
blacklist tdfxfb
blacklist virgefb
blacklist vga16fb

# ISDN - see bugs 154799, 159068
blacklist hisax
blacklist hisax_fcpcipnp

#Login Beep OffMode
blacklist pcspkr


위와 같이 작성하고 리부팅하여 그놈이나 KDE로그인시 비프음이 들리나 확인하자.

2009. 7. 29. 10:51

chkconfig 리눅스에서의 데몬관리

부팅시 로딩하고 싶지 않은 데몬이 있다면...간단히 죽일수 있는 명령어이다.
물론 rpm형태로 제공된 데몬들만 다룰수있다.

KISA정책으로 인해 고정IP가 없는 유져들에게는 sendmail이 사실 유명무실해진 서비스..
예로 sendmail를 죽여보도록 하자.

[root@akaslin ~]# chkconfig sendmail off

간단히 sendmail을 부팅시 로딩안되게 만들었다.
콘솔상에서 다시 이 데몬을 임시로 쓰고 싶다면

service sendmail start

다시 sendmail 부팅시 구동시키기 위해서는
[root@akaslin ~]# chkconfig sendmail on
해주면 된다.

물론 service항목을 수정해도 같은 결과가 된다.

list옵션으로 서비스되고 있는 데몬을 확인할수 있다.

[root@akaslin ~]# chkconfig --list

[root@akaslin ~]# chkconfig rlogin off

예로 xinetd 기반의 서비스인 rlogin을 해제한다.


2009. 7. 26. 05:55

Making Linux Streaming Server RED5 스트리밍 리눅스서버 만들기

또한번의 리눅스 스트리밍서버 구성 포스팅을 쓴다.

리눅스로 데탑용으로 넘어온지 벌써 15일째..
너무 편하고 너무 좋다..ㅋ 그넘의 액티브X만 인터넷에서 안보인다면 말이야.. 다운도 끊김없이 쉽게 받아지고..윈도우즈용 서체도등록해주니 파월인지 익스플로러인지 구분이 안갈정도로 너무 편하다. 가장 좋은것은..터미널에 익숙한 나에게 마우스조작없이 키보드로왠만한 작업이 가능하니 이보다 더 편할수가...

리눅스에서 Xwindows는 그냥 폼같이 생각했었다. GUI용 프로그램은 윈도우에서 돌리고 서버용은 다 서버리눅스에 설치해 윈도우에서 원격으로 제어했으니깐...

이놈의 스트리밍 서버때문에 골치아프다.
MS의 WMS를 쓰면 구현은 무쟈게 쉬운데 라이센스 정책때문에 배보다 배꼽이 더 커버리는 현상이 생기게 된다.
그래서 그동안 포기했던 리눅스용 스트리밍서버로 다시 정책을 변환해볼까 생각하다 그동안 시도하지 못했던 RED5 스트리밍 서버에 대해 포스팅에 들어간다.

이 포스팅이 발행되면, 일단은 RED5서버가 성공한것이 된다.
성공후 운영상에 생기는 임포트와 동영상 제작에 관한 lib와 기법은 나중에 다시 카테고리를 따로 만들어 다뤄보기로 하고...

내가 구상하는 서버구성으로는 오라클서버 + 아파치톰캣서버 + 스트리밍서버 + DNS서버이다.
각설하고 RED5 Streming Server에 대해 알아보자.

서버환경
Linux 2.6.18-128.el5 #1 SMP Wed Jan 21 10:44:23 EST 2009 i686 i686 i38-(CentOS 5.3)
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 14
model name      : Genuine Intel(R) CPU           T2400  @ 1.83GHz
stepping        : 8
cpu MHz         : 1000.000
cache size      : 2048 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
apicid          : 0
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mcacmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nxconstant_tsc pni monitor vmx est tm2 xtpr
bogomips        : 3664.90

*나의 4년된 노트북이다.. 이참에 공개되네.. Dell INSPORION 6400.. 아직도 쓸만하단 말이야..~

맨처음으로 설치해야 할것이 apache ant이다.
apache ant는 도대체 뭐하는것인가 ? Apache ant는 프로그램을 설치할때 쓰는 make와 비슷한 개념의 프로그램이다.  make의 의존성과 셀상에서만 구동되는 한계성으로 이프로그램을 개발했다고 하는것만 알고.. 설치를 해보자.

APACHE-ANT
[root@AkasLinux download]# wget http://apache.mirror.cdnetworks.com/ant/binaries/apache-ant-1.7.1-bin.tar.bz2
[root@AkasLinux download]# tar -xvf apache-ant-1.7.1-bin.tar.bz2

apache-ant-1.7.1/lib/libraries.properties
apache-ant-1.7.1/lib/xercesImpl.jar
apache-ant-1.7.1/lib/xml-apis.jar
[root@AkasLinux download]# mv apache-ant-1.7.1 /usr/local/ant
[root@AkasLinux download]# vi ~/.bashrc
# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi
export ANT_HOME=/usr/local/ant
export PATH=${PATH}:${ANT_HOME}/bin



JDK
JSP서버 만들기에서 설치한 그 JDK이다. 톰캣 구성을 완료한 서버에서는 따로 안해주고 건너띄어도 된다. 그러나, 이번에 만들 네트워크 구성안은 웹서버와 스트리밍 서버의 분리이다. 스트리밍 서버는 부하가 많이 걸리기 때문에, 별도회선으로 서비한다는 개념이다. JSP와 APACHE-TOMCAT서버는 별도로 두기 때문에, JDK를 설치한다. 포스팅은 간단히..

다운로드: 
http://www.snowrice.com/freepds/1103
http://java.sun.com/javase/downloads/

jdk-6u14-linux-i586-rpm.bin
jdk는 jdk와 jre로 구성되어있다. jdk는 한마디로 개발툴이고 jre는 자바용 프로그램들을 시스템에서 구현해주는 툴이라고 보면 된다. jdk설치로 두 가지다 설치된다.

[[root@AkasLinux download]# chmod +x jdk-6u14-linux-i586-rpm.bin
[root@AkasLinux download]#./jdk-6u14-linux-i586-rpm.bin
2. LICENSE TO USE. Subject to the terms and conditions of
this Agreement, including, but not limited to the Java

Do you agree to the above license terms? [yes or no]
yes
엔터계속
물음에 모두 yes로 답한다
Unpacking...
Checksumming...
Extracting...
UnZipSFX 5.50 of 17 February 2002, by Info-ZIP (
Zip-Bugs@lists.wku.edu).
  inflating: jdk-6u14-linux-i586.rpm
  inflating: sun-javadb-common-10.4.2-1.1.i386.rpm
  inflating: sun-javadb-core-10.4.2-1.1.i386.rpm
  inflating: sun-javadb-client-10.4.2-1.1.i386.rpm
  inflating: sun-javadb-demo-10.4.2-1.1.i386.rpm
  inflating: sun-javadb-docs-10.4.2-1.1.i386.rpm
  inflating: sun-javadb-javadoc-10.4.2-1.1.i386.rpm
준비 중...               ########################################### [100%]
   1:jdk                    ########################################### [100%]
Unpacking JAR files...
        rt.jar...
        jsse.jar...
        charsets.jar...
        tools.jar...
        localedata.jar...
        plugin.jar...
        javaws.jar...
        deploy.jar...
Installing JavaDB
준비 중...               ########################################### [100%]
   1:sun-javadb-common      ########################################### [ 17%]
   2:sun-javadb-core        ########################################### [ 33%]
   3:sun-javadb-client      ########################################### [ 50%]
   4:sun-javadb-demo        ########################################### [ 67%]
   5:sun-javadb-docs        ########################################### [ 83%]
   6:sun-javadb-javadoc     ########################################### [100%]

Java(TM) SE Development Kit 6 successfully installed.

Product Registration is FREE and includes many benefits:
* Notification of new versions, patches, and updates
* Special offers on Sun products, services and training
* Access to early releases and documentation

Product and system data will be collected. If your configuration
supports a browser, the Sun Product Registration form for
the JDK will be presented. If you do not register, none of
this information will be saved. You may also register your
JDK later by opening the register.html file (located in
the JDK installation directory) in a browser.

For more information on what data Registration collects and
how it is managed and used, see:
http://java.sun.com/javase/registration/JDKRegistrationPrivacy.html

Press Enter to continue.....


Done.


이것으로 Java의 설치는 끝이다.
확인을 위해서 아래의 사항을 점검한다.
[root@localhost Desktop]# rpm -qa | grep jdk
java-1.6.0-openjdk-1.6.0.0-0.25.b09.el5
jdk-1.6.0_14-fcs
[root@AkasLinux download]# java
Usage: java [-options] class [args...]
           (to execute a class)
   or  java [-options] -jar jarfile [args...]
           (to execute a jar file)
where options include:
    -d32          use a 32-bit data model if available
    -d64          use a 64-bit data model if available
    -client       to select the "client" VM
    -server       to select the "server" VM
    -hotspot      is a synonym for the "client" VM  [deprecated]
                  The default VM is client.

    -cp <class search path of directories and zip/jar files>
    -classpath <class search path of directories and zip/jar files>
                  A : separated list of directories, JAR archives,
                  and ZIP archives to search for class files.
    -D<name>=<value>
                  set a system property
    -verbose[:class|gc|jni]
                  enable verbose output
    -version      print product version and exit
    -version:<value>
                  require the specified version to run
    -showversion  print product version and continue
    -jre-restrict-search | -jre-no-restrict-search
                  include/exclude user private JREs in the version search
    -? -help      print this help message
    -X            print help on non-standard options
    -ea[:<packagename>...|:<classname>]
    -enableassertions[:<packagename>...|:<classname>]
                  enable assertions with specified granularity
    -da[:<packagename>...|:<classname>]
    -disableassertions[:<packagename>...|:<classname>]
                  disable assertions with specified granularity
    -esa | -enablesystemassertions
                  enable system assertions
    -dsa | -disablesystemassertions
                  disable system assertions
    -agentlib:<libname>[=<options>]
                  load native agent library <libname>, e.g. -agentlib:hprof
                  see also, -agentlib:jdwp=help and -agentlib:hprof=help
    -agentpath:<pathname>[=<options>]
                  load native agent library by full pathname
    -javaagent:<jarpath>[=<options>]
                  load Java programming language agent, see java.lang.instrument
    -splash:<imagepath>
                  show splash screen with specified image
See
http://java.sun.com/javase/reference for more details.



jdk의 설치는 무난히 끝났다. 모두 그렇지만 윈도우 프로그램처럼 setup.exe만 실행시킨후 모든게 끝나면 얼마나 좋겠냐만은, 작은 설정이 필요하다.
 [root@AkasLinux download]# ls /usr/java
default  jdk1.6.0_14  latest
[root@AkasLinux download]# mv  /usr/java/ /usr/java_temp
[root@AkasLinux download]# mv  /usr/java/jdk1.6.0_14 /usr/java
[root@AkasLinux download]# cp  /usr/java/java_temp/* /usr/java/
[root@AkasLinux download]# vi ~/.bashrc
# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi
export ANT_HOME=/usr/local/ant
export PATH=${PATH}:${ANT_HOME}/bin
export JAVA_HOME=/usr/java
export JAVA_VERSION=1.5
export PATH=${PATH}:${ANT_HOME}/bin:${JAVA_HOME}/bin

[root@localhost Desktop]# source ~/.bashrc (bashrc재적용)


RED5

RED5의 설치를 시작해보자.

[root@AkasLinux download]# wget http://dl.fancycode.com/red5/red5-0.6.2.tar.gz
--05:15:32--  http://dl.fancycode.com/red5/red5-0.6.2.tar.gz
Resolving dl.fancycode.com... 213.133.108.69
Connecting to dl.fancycode.com|213.133.108.69|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 61551443 (59M) [application/x-gzip]
Saving to: `red5-0.6.2.tar.gz'

100%[=============================>] 61,551,443   462K/s   in 4m 55s

05:20:31 (204 KB/s) - `red5-0.6.2.tar.gz' saved [61551443/61551443]
[root@AkasLinux download]# tar xvf red5-0.6.2.tar.gz
./red5-0.6.2/red5.bat
./red5-0.6.2/red5.sh
./red5-0.6.2/red5-shutdown.bat
./red5-0.6.2/Makefile
[root@AkasLinux download]# cd red5-0.6.2
[root@AkasLinux red5-0.6.2]# make
mentation.  It can only be used in the following types of documentation: method, inline text.
  [javadoc] /root/red5-0.6.2/src/org/red5/server/so/SharedObjectEvent.java:42: warning - Tag @inheritDoc cannot be used in constructor documentation.  It can only be used in the following types of documentation: method, inline text.

javadoc_compatibility:

dist:
     [copy] Copying 1205 files to /root/red5-0.6.2/dist/doc
     [copy] Copying 77 files to /root/red5-0.6.2/dist/lib
     [copy] Copying 32 files to /root/red5-0.6.2/dist/conf
     [copy] Copying 97 files to /root/red5-0.6.2/dist/webapps
     [copy] Copying 4 files to /root/red5-0.6.2/dist

BUILD SUCCESSFUL
Total time: 51 seconds

Total time: 42 seconds
[root@AkasLinux red5-0.6.2]# make install
mkdir -p /usr/lib/red5
install dist/red5.jar /usr/lib/red5
install -m 755 dist/red5.sh /usr/lib/red5
cp -r dist/conf /usr/lib/red5
cp -r dist/lib /usr/lib/red5
cp -r dist/webapps /usr/lib/red5


RED5의 실행
 [root@AkasLinux red5-0.6.2]#  /usr/lib/red5/red5.sh &

웹브라이져에서 http://ip:5080/으로 접속해서 아래와 같은 메세지가 생기면 성공


<성공적인 설치가 끝난다고 보고하는 페이지>

이제 세부적인 설정에 들어가는듯 하다. 설정 포스팅은 다음번에 올리기로 하고...

# 기존 서버(Tomcat,Oracle)에서 설치하였을때는 자바에러가 뜬다. 참조하시기를..
2009. 7. 25. 20:26

CentOS 리눅스에서 완벽 동영상 재생하기

설치환경 : CentOS 5.3

무료할때 영화 한편 때리는것도 좋은 일이다. 영화를 보기위해 리눅스로 작업하다가 다시 윈도우로 로그인하기 구찮은 데탑용 리눅스머신에서는 토템이나 Mplayer로서 보면 된다. 하지만, 짜증나는 코덱설치가 윈도우즈의 곰플레이어나 통합코덱처럼 제공되질 않는다.

그럼 우선 해야할일은..YUM을 통해 여러가지 파일들만 시스템에 설치해주면 된다.

[root@AkasLinux Desktop]# yum -y install yum-priorities
Installed: yum-priorities.noarch 0:1.1.16-13.el5.centos
Complete!
[root@AkasLinux Desktop]#rpm -Uvh http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm(을)를 복구합니다
경고: /var/tmp/rpm-xfer.I0IdFc: Header V3 DSA signature: NOKEY, key ID 6b8d79e6
준비 중...               ########################################### [100%]
   1:rpmforge-release       ########################################### [100%]
[root@AkasLinux Desktop]# yum -y install gstreamer gstreamer-tools gstreamer-plugins-base  gstreamer-plugins-good

Updated: gstreamer-plugins-base.i386 0:0.10.20-3.0.1.el5_3 gstreamer-plugins-good.i386 0:0.10.9-1.el5_3.2
Complete!
[root@AkasLinux Desktop]#yum -y install gstreamer-plugins-bad gstreamer-plugins-ugly
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
 * rpmforge: ftp-stud.fht-esslingen.de
 
Installed: gstreamer-plugins-bad.i386 0:0.10.8-3.el5.rf gstreamer-plugins-ugly.i386 0:0.10.9-1.el5.rf
Dependency Installed: SDL_gfx.i386 0:2.0.19-1.el5.rf a52dec.i3860:0.7.4-8.el5.rf amrnb.i386 0:7.0.0.2-1.el5.rf amrwb.i3860:7.0.0.3-1.el5.rf compat-libstdc++-296.i386 0:2.96-138 cppunit.i3860:1.12.0-3.el5.rf dirac.i386 0:1.0.2-1.el5.rf directfb.i3860:1.2.4-1.el5.rf divx4linux.i386 0:5.0.5-0.el5.rf faac.i3860:1.26-1.el5.rf faad2.i386 0:2.6.1-1.el5.rf ffmpeg.i386 0:0.5-2.el5.rfffmpeg-libpostproc.i386 0:0.5-2.el5.rf gsm.i386 0:1.0.13-1.el5.rfimlib2.i386 0:1.4.0-1.el5.rf lame.i386 0:3.98.2-1.el5.rflibcdaudio.i386 0:0.99.12p2-12.el5.rf libcdio.i386 0:0.77-1.el5.rflibdca.i386 0:0.0.5-1.el5.rf libdvdcss.i386 0:1.2.10-1.el5.rflibdvdread.i386 0:0.9.7-1.el5.rf libid3tag.i386 0:0.15.1b-3.el5.rflibmad.i386 0:0.15.1b-4.el5.rf libmms.i386 0:0.3-1.el5.rflibmpcdec.i386 0:1.2.6-1.el5.rf libquicktime.i386 0:1.1.3-1.el5.rflibsidplay.i386 0:1.36.59-1.2.el5.rf libsndfile.i386 0:1.0.17-1.el5.rfmjpegtools.i386 0:1.9.0-0.6.rc2.el5.rf mpeg2dec.i386 0:0.4.1-2.el5.rfsoundtouch.i386 0:1.3.1-1.el5.rf tslib.i386 0:1.0-1.el5.rf x264.i3860:0.0.0-0.4.20090708.el5.rf xvidcore.i386 0:1.2.2-1.el5.rf
Complete!
[root@AkasLinux Desktop]# yum -y install mplayer
Installed: mplayer.i386 0:1.0-0.40.svn20090711.el5.rf
Dependency Installed: aalib.i386 0:1.4.0-5.el5.rf arts.i386 8:1.5.4-1enca.i386 0:1.9-4.el5.rf freeglut.i386 0:2.4.0-7.1.el5 fribidi.i3860:0.10.7-5.1 libXvMC.i386 0:1.0.2-2.1 libcaca.i3860:0.99-0.1.beta11.el5.rf lirc.i386 0:0.6.6-4.el5.rf lzo2.i3860:2.02-3.el5.rf mplayer-fonts.noarch 0:1.1-3.0.rf openal.i3860:0.0.8-2.el5.rf svgalib.i386 0:1.9.25-1.el5.rf
Complete!

해당동영상을 MPLAYER로 열면, 우측 하단에 리모콘이 열리는데, 리모콘 아무데나 오른쪽 마우스 버튼을 클릭하면, Preference메뉴를 클릭하고 아래와 같이 편집한다.

폰트를 아래 포스팅을 참조하여, 한글 폰트로 설정하고 인코딩을 유니코드로 설정후


자막부분 설정에서 인코딩을 한국 문자셋 (Korean charset)로 설정하면 된다.


설정후에는 재생중인 동영상이 멈추며, 다시 기동하였을때 자막과 영상이 제대로 보이기 시작한다..
아쉽게도 토템에서 자막이 있는 동영상은 자막을 인식하지 못한다는 메세지를 보인다..
Mplayer로 즐거운 시간을..
즐거운 리눅스 시간을..~


2009. 7. 24. 11:19

CentOS에서 윈도우서체 쓰기..


적용환경 : centos 5.3

어느덧 윈도우즈 로그인을 제대로 안하게된다.

리눅스에 드림위버와 포토샵이 있다면 얼마나 좋을까...익스플로러같은건 전혀 쓸모없으니깐..

그러나 윈도우즈에서 가장 부러운건 역시 수많은 폰트이다..그리고 한국의 웹사이트들이 윈도우즈 굴림체에 맞게 이쁘게 출력되므로..

역시 인터넷글꼴은 윈도우 글꼴이 좋다.

윈도우즈에서 글꼴을 받아다가.. /usr/share/fonts/msfont라는 곳에 저장후..아래와 같이 실행시켜주면 된다.

# cd /usr/share/fonts/msfont
# mkfontscale
# ttmkfdir
# mkfontdir

그후~ 파이어폭스에서 대표글꼴을 굴림체로 해주면 끝..

그러나 굴림체를 시스템에 적용할경우에는 Gnome에서 에러가 폭주되니..주의할것..! 그럴경우 영문모드로 들어와서 글꼴을 변경해주어야 한다...

글꼴을 설치하고 나니 한영키가 먹히네...오~! 굳굳

하지만 인터넷이 느린감이 있다.. 이걸 해결해야지.. 그리고...그림추가등의 문제가 생긴다..

2009. 7. 23. 16:17

CentOS Flash plugin 10 설치하기

1. 일단은 adobe사이트에서 yum을 통해 인스톨한후..
2. yum과 rpm을 해도 정상적으로 출력되지 않으니깐..adobe사이트에서 install_flash_player_10_linux를 다운받아 압축을 푼후 /usr/lib/mozilla/plugins 디렉토리에 libflashplayer.so를 카피하면 끝난다.

다운로드는 파이어폭스 접속시 플래쉬플러그인을 만나면 adobe사이트로 접속되기 때문에, 별도 링크를 하지 않는다.. 끝..
(Flash Site - Olympus Japan : Browser Firefox In CentOS )


2009. 7. 16. 06:08

레드헷 리눅스에서 Apache + Oracle + PostgreSQL + MySQL + PHP + Tomcat + JAVA 서버구성3 (버추얼호스팅 Virtual hosting)


어느덧 아침이 밝아온다. jsp용 웹호스팅세팅만 끝나면 그동안 실현하고자 했던 웹서버 구현이 완성이 된다. 사용자 환경에 quata와 ftp,ssh만 적용하고 안정적인 회선과 IP만 공급되면 웹서버로서의 충분한 실현가치를 할수 있을것이라고 본다.

우선 테스트환경으로 별도의 DNS서버를 만들지 않고 사용자계정을 이용한 jsp서버를 완성한다.
http://ip/~account 식의 도메인이 붙을것이다.


테스트용 DNS서버를 만들어서 아파치의 버추얼호스트 기능과 함께 완벽하게 개별 도메인하에서 jsp가 작동하는지 알아보자.

1. user의 생성과 아파치설정 변경
/etc/skel디렉토리에 유져 등록시 자동 생성되는 파일이나 디렉토리를 정의후, 유져를 등록하면 편하다. jsp스크립트를 확인하기 위하여 skel디렉토리에 jsp코드로 된 파일을 생성하고 테스트용 유져를 등록했다.
테스트용이므로 test계정에는 php,html코드로 된 파일들도 생성한다.

[root@localhost ~]# cd /etc/skel
[root@localhost skel]# ls
public_html
[root@localhost skel]# vi public_html/index.jsp
<HTML>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>AKAS'S BLOG</title>
</head>

 <BODY>
  <h1><h1><% out.print("akasアカウントです"); %></h1><br /></h1>
  <h1>
http://bestakas.tistory.com <br /></h1>
  <h1>
http://snowrice.com<br /></h1>

 </BODY>
</HTML>

[root@localhost skel]# useradd test
[root@localhost skel]# passwd test
Changing password for user test.
New UNIX password:
BAD PASSWORD: it is too short
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@localhost skel]# useradd akas
[root@localhost skel]# passwd akas
Changing password for user akas.
New UNIX password:
BAD PASSWORD: it is too short
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@localhost skel]# chmod -R 755 /home/test
[root@localhost skel]# chmod -R 755 /home/akas
[root@localhost skel]# ls /home/akas
public_html
[root@localhost skel]# cd /home/test/public_html/
[root@localhost public_html]# cp index.jsp index.html
[root@localhost public_html]# vi index.php
<?='this is test'?>
아파치에서 사용자계정을 사용해서 사용자 디렉토리에 접근할수 있도록 설정해보자.
[root@test home]# vi /usr/local/httpd/conf/httpd.conf
# User home directories
Include conf/extra/httpd-userdir.conf
#Include문앞에 주석을 제거한다.
[root@test home]# /usr/local/httpd/bin/httpd -k restart


우선, http://ip/~test/index.php를 실행시켜본다.


php사용을 위해서 httpd.conf에서
 #JkMount /* loadbalancer
처럼 #주석을 주고 아파치를 재가동하면  정상출력된다. 즉 php스크립트가 먹힌다는 이야기다.
그럼 이제, index.html를 가동하여 보자.

위에 만들어놓은 jsp용 스크립트를 실행시켜보자.
index.jsp index.html을 public_html디렉토리에 이와같이 만든다.
 <HTML>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>AKAS'S BLOG</title>
</head>

 <BODY>
  <h1><h1><% out.print("akasアカウントです"); %></h1><br /></h1>
  <h1>
http://bestakas.tistory.com <br /></h1>
  <h1>
http://snowrice.com<br /></h1>

 </BODY>
</HTML>


http://ip/~test/http://ip/~test/index.jsp로 접속하여 보자.


하지만 html의 경우 jkmount를 시켰기 때문에 읽을수 없다. 그럼~! 계정용 디렉토리의 index.jspl가 정상출력되면 jsp연동이 잘되었다는 이야기이다. 이제 출력되게끔 설정에 들어가자.

test 계정에서
[test@localhost public_html]$ mkdir /home/test/public_html/WEB-INF
[test@localhost public_html]$ exit
exit
[root@localhost ~]# vi /usr/local/tomcat/conf/server.xml
<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">

      <Context path="/~test" docBase="/home/test/public_html" debug="0" reloadable="true" />

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
        -->

      </Host>
    </Engine>
  </Service>
</Server>
[root@localhost conf]# /usr/local/httpd/bin/httpd -k restart
[root@localhost conf]# /usr/local/tomcat/bin/catalina.sh stop
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:       /usr/local/jdk
[root@localhost conf]# /usr/local/tomcat/bin/catalina.sh start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:       /usr/local/jdk



위와 같이 public_html아래에 WEB-INF를 만들고 루트로 돌아와 /usr/local/tomcat/conf/server.xml에 <Context path="/~test" docBase="/home/test/public_html" debug="0" reloadable="true" />식으로 </host>위에 입력하고 저장하고 톰캣을 다시 시동한다.

로칼에서 http://ip/~testhttp://ip/~test.jsp 입력하여 보자.
 jsp파일이 정상 출력되는것을 알수있다. 하지만 html은 <% %>코드는 먹히질 않는다.

 

jsp가 잘 적용되었음을 알수있다. 
이제 도메인을 주고 사용자 계정에 도메인을 붙여 jsp가 잘 구동되는지 알아봐야 한다.

테스터 서버에 도메인을 붙이기 위해, 가상의 DNS를 만들어보자.(네임서버 포스팅이 아니기 때문에 대략적으로..이놈의 네임서버 오랜만에 구성해보네^^)
[root@localhost named]#yum install caching-nameserver
[root@localhost named]#yum install bind

[root@localhost named]# vi /etc/named.caching-nameserver.conf
//
// named.caching-nameserver.conf
//
// Provided by Red Hat caching-nameserver package to configure the
// ISC BIND named(8) DNS server as a caching only nameserver
// (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// DO NOT EDIT THIS FILE - use system-config-bind or an editor
// to create named.conf - edits to this file will be lost on
// caching-nameserver package upgrade.
//
options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";

        // Those options should be used carefully because they disable port
        // randomization
         query-source    port 53;
        // query-source-v6 port 53;

        //allow-query     { localhost; };
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
view localhost_resolver {
        match-clients      { any; };
        match-destinations { any; };
        recursion yes;
        include "/etc/named.rfc1912.zones";
};

[root@localhost named]# vi /etc/named.rfc1912.zones
// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
zone "." IN {
        type hint;
        file "named.ca";
};

zone "localdomain" IN {
        type master;
        file "localdomain.zone";
        allow-update { none; };
};

zone "localhost" IN {
        type master;
        file "localhost.zone";
        allow-update { none; };
};

zone "0.0.127.in-addr.arpa" IN {
        type master;
        file "named.local";
        allow-update { none; };
};

zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
        type master;
        file "named.ip6.local";
        allow-update { none; };
};

zone "255.in-addr.arpa" IN {
        type master;
        file "named.broadcast";
        allow-update { none; };
};

zone "0.in-addr.arpa" IN {
        type master;
        file "named.zero";
        allow-update { none; };
};

zone "test.com" IN {
        type master;
        file "test.com.zone";
        allow-update { none; };
};

[root@localhost named]# vi /var/named/test.com.zone
$TTL    86400
@               IN SOA  ns.test.com. root.test.com (
                                        42              ; serial (d. adams)
                                        3H              ; refresh
                                        15M             ; retry
                                        1W              ; expiry
                                        1D )            ; minimum
                IN NS           ns.test.com.
                IN MX 10        mail.test.com.
                IN A            192.168.100.132
ns             IN A            192.168.100.132
www         IN A            192.168.100.132
akas         IN A            192.168.100.132
ftp             IN CNAME        @
*               IN CNAME        @
mail           IN CNAME        www

[root@localhost etc]# service named restart
named を停止中:                                            [  OK  ]
named を起動中:                                            [  OK  ]
[root@localhost etc]#
[root@localhost named]# system-config-securitylevel-tui
53:tcp , 53:udp 방화벽 해제


테스트서버이므로 방화벽을 아예 꺼버리는것이 신경안쓰고 좋다.


윈도우에서 위와 같이 지금의 테스트 서버로 DNS서버를 맞춘다.


 일본윈도우(테스트 클라이언트- 인코딩테스터기)에서 DNS변경후 제대로 출력됨을 알수있다. 이제 가상 내부 DNS를 가지고 www.test.com과  akas.test.com이라는 두 도메인을 만들어서 톰캣 가상호스팅을 해보자


윈도우에서 DNS서버를 테스터서버 IP로 주고 인터넷에 연결해 www.test.com에 접속해본다. 외부에서 DNS서버로 이용하고 싶으면 포트포워딩을 하거나 직접 공인ip에 DNS서버를 물리면 바로 DNS서버로 이용가능하다.
www.test.com이 제대로 DNS서버에서 인식하였는지 확인하여 본다.

DNS서버가 정상적으로 운영되고 있음을 알수있다.


DNS서버 zone파일에서 www와 akas를 지정해서 www.test.com으로 접속하면 test계정의 웹디렉토리로 접속하고 akas.test.com으로 접속하면 akas계정으로 접속을 시도한다.

이것을 위해서 test계정의 index 세파일을 akas계정으로 카피한다.

[root@test public_html]# cp /home/test/public_html/* /home/akas/public_html/
cp: omitting directory `/home/test/public_html/WEB-INF'
cp: `/home/akas/public_html/index.jsp' を上書きしてもよろしいですか(yes/no)? yes
[root@test public_html]# ls /home/akas/public_html/
index.html  index.jsp  index.php

세파일을 아래와 같이 변형한다.
[root@test public_html]# vi index.html
<HTML>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>AKAS'S BLOG</title>
</head>

 <BODY>
  <h1><h1><% out.print("akasアカウントです"); %><br /></h1>
  <h1>
http://bestakas.tistory.com <br /></h1>
  <h1>
http://snowrice.com<br /></h1>

 </BODY>
</HTML>


[root@test public_html]# vi index.jsp
<HTML>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>AKAS'S BLOG</title>
</head>

 <BODY>
  <h1><h1><% out.print("akasアカウントです"); %><br /></h1>
  <h1>
http://bestakas.tistory.com <br /></h1>
  <h1>
http://snowrice.com<br /></h1>

 </BODY>
</HTML>


[root@test public_html]# vi index.php
<?='this is AKAS'?>


이제 위의 httpd.conf를 수정하여 www.test.com과 akas.test.com을 버추얼 호스팅 하여보자.
vi /usr/local/httpd/conf/httpd.conf 의 #Include conf/extra/httpd-vhosts.conf주석을 제거한다.

[root@test named]# vi /usr/local/httpd/conf/httpd.conf
# Virtual hosts
Include conf/extra/httpd-vhosts.conf

아래와 같이 일반 아파치 버추얼 호스팅처럼 httpd-vhosts.conf 수정한다.
[root@test named]# vi /usr/local/httpd/conf/extra/httpd-vhosts.conf
#
# Use name-based virtual hosting.
#
NameVirtualHost *:80
#
www.test.com
<VirtualHost *:80>
    DocumentRoot /home/test/public_html
    ErrorLog logs/www.test.com_error_log
    CustomLog logs/www.test.com_access_log common
    ServerName
www.test.com
    ServerAlias www.test.com
</VirtualHost>
<Directory /home/test/public_html/>
    AllowOverride All
</Directory>

#akas.test.com
<VirtualHost *:80>
    DocumentRoot /home/akas/public_html
    ErrorLog logs/akas.test.com_error_log
    CustomLog logs/akas.test.com_access_log common
    ServerName akas.test.com
    ServerAlias akas.test.com
</VirtualHost>
<Directory /home/akas/public_html/>
    AllowOverride All
</Directory>

[root@test named]# /usr/local/httpd/bin/httpd -k restart


웹서버 다시 가동

www.test.comindex.php index.jsp index.html이 모두 출력되나 php코드는 적용되고 jsp코드는 적용이 안됨을 알수있다. akas.test.com의 파일들을 열어보자. php의 출력모습이 틀리는것을 확인하니, 버추얼 호스트가 잘 적용되었다. 



이제부터 jsp도 적용할수 있게 jsp버추얼호스팅을 하자.
httpd-vhosts.conf의 내용을 수정해야 한다. 우선 위에서 입력한 버추얼호스팅 변경부분을 지우고 아래의 내용으로 변경한다. (물론 파일안에 예시 구문들은 모두 #처리하거나 지워주어애 한다.)

[root@test named]# vi /usr/local/httpd/conf/extra/httpd-vhosts.conf
#
www.test.com
<VirtualHost *:80>
 ServerAdmin        
webmaster@test.com
 DocumentRoot        /home/test/public_html
 ServerName         
www.test.com
 ServerAlias         www.test.com
 DirectoryIndex      index.jsp index.html
 ErrorLog            logs/www.test.com-error.log
 CustomLog           logs/www.test.com-access.log common
          JkMount /*.jsp loadbalancer
          JkMount /*.do loadbalancer
          JkMount /*.html loadbalancer
          JkMount /servlet/* loadbalancer
          #JkMount /* loadbalancer
          JkMount /*.gif loadbalancer

</VirtualHost>
<Directory /home/test/public_html/>
    AllowOverride All
</Directory>

#akas.test.com
<VirtualHost *:80>
 ServerAdmin        
webmaster@akas.com
 DocumentRoot        /home/akas/public_html
 ServerName          akas.test.com
 ServerAlias         akas.test.com
 DirectoryIndex      index.jsp index.html
 ErrorLog            logs/akas.test.com-error.log
 CustomLog           logs/akas.test.com-access.log common
          JkMount /*.jsp loadbalancer
          JkMount /*.do loadbalancer
          JkMount /*.html loadbalancer
          JkMount /servlet/* loadbalancer
          #JkMount /* loadbalancer
          JkMount /*.gif loadbalancer

</VirtualHost>
<Directory /home/akas/public_html/>
    AllowOverride All
</Directory>


아주 간단하다. httpd/htdocs의 연동처럼 JkMount만 버추얼호스트 부분에서 첨가해주면 된다.
다음으로  /usr/local/tomcat/conf/server.xml을 수정한다. </host>로 끝나는 태그 아래에 추가한다.

 [root@test public_html]# vi /usr/local/tomcat/conf/server.xml

      <Host name="
www.test.com"  appBase="home/test/public_html"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">

      </Host>
      <Host name="akas.test.com"  appBase="home/akas/public_html"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
      </Host>


사이트 이름의 디렉토리를 /usr/local/tomcat/conf/Catalina에서 만든다.
[root@test conf]# mkdir /usr/local/tomcat/conf/Catalina/www.test.com
[root@test conf]# mkdir /usr/local/tomcat/conf/Catalina/akas.test.com
[root@test conf]# vi /usr/local/tomcat/conf/Catalina/www.test.com/ROOT.xml
<Context path="" reloadable="true" debug="1" docBase="/home/test/public_html" />
[root@test conf]# vi /usr/local/tomcat/conf/Catalina/akas.test.com/ROOT.xml
<Context path="" reloadable="true" debug="1" docBase="/home/akas/public_html" />

jsp가 적용될 계정의 public_html의 아래에 WEB-INF 디렉토리를  만들고 /usr/local/tomcat/webapps/WEB-INF의 web.xml을 계정 디렉토리의 WEB-INF에 카피한다.
[root@test conf]# cp /usr/local/tomcat/webapps/ROOT/WEB-INF/web.xml /home/test/public_html/WEB-INF/
[root@test conf]# cp /usr/local/tomcat/webapps/ROOT/WEB-INF/web.xml /home/akas/public_html/WEB-INF/

이제 설정은 끝났다. 다시 웹서버와 톰캣을 재시동하자.
[root@test conf]# /usr/local/httpd/bin/httpd -k restart
[root@test conf]# /usr/local/tomcat/bin/catalina.sh stop
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:       /usr/local/jdk
[root@test conf]# /usr/local/tomcat/bin/catalina.sh start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:       /usr/local/jdk

브러우져에서 php와 index.html을 모두 로드해본다.
두 사이트 모두 의도한대로 정상적으로 출력된다.


Apache + PHP + MySQL + Oracle + PostGreSQL + JSP의 모든 연동이 끝났다.

2009. 7. 15. 15:02

레드헷 리눅스에서 Apache + Oracle + PostgreSQL + MySQL + PHP + Tomcat + JAVA 서버구성2

기본적 APM과 Oracle,PostgreSQL까지 구성이 끝났다. 지금 상태에서도 왠만한 사이트와 프로젝트는 수행할 능력이 된다. Oracle과 PostGreSQL을 제외한 APM만으로도 충분히 웹서버의 기능을 할수있다.

한동안 웹용 언어(CGI)로서 인기가 많았던 PHP의 경우 인기가 시들어가고 있다. 물론 지금도 PHP소스는 강력하다. 전세계용 웹어플리케이션인 Moodle이나 우리나라 웹사이트들이 많이 사용하는 제로보드,그누보드,테터툴즈,설치형 블로그등은 모두 PHP로 작성된 언어들이다. APM은 설치법이 다른 서버류보다 많이 일반화 되어 있고 한번에 설치해주는 툴도 많이 나와있다. 또한 리눅스,유닉스,윈도우즈 버젼으로 대개의 운영체제로 지원되기 때문에 유포형 웹솔루션으로서는 APM용 솔루션이 가장 적합하다.

그만큼 PHP는 나름 대중화 되어 있는 웹언어라고 할수 있다.
C를 약간 접한 사람이라면 PHP가 매우 친숙하다. PHP는 문법의 틀이 C의 구조와 매우 비슷하기 때문이다.

ASP는 MicroSoft사에서 개발한 웹용언어이다. ASP는 일단 Windows NT용이라는 생각이 머리에 꽂히게 된다. 보통의 APM이 Windows나 Linux와 유닉스에서도 모두 쓸수있다는 장점이 있지만, NT를 사용하지 않는 유져들은 ASP를 접할 기회가 드물다. 물론 Windows XP에서도 ASP는 돌릴수는 있다. 하지만 개인용 XP에 웹서버를 운영한다는것이 바로 자원의 낭비라는것을 곧바로 알게될것이다.

MS용 웹어플리케이션으로는 Apache에 대응하는 IIS가 있고, MySQL에 대응하는 MSSQL이 있다. ASP는 IIS와 MSSQL에 연동해 많이 쓰인다.

각설하고, 이 포스팅은 레드헷 계열(CentOS, Fedora, RHE)에서 서버구성의 발자취..즉 노트를 만드는 일이다.
그럼 지금 쓰는 포스팅.. JSP는 무엇인가?

JSP는 PHP와 ASP와 같은 스크립트 언어이다.
PHP가 C를 따르고 ASP가 비주얼베이직을 따랐다면, JSP는 Java를 따르고 있다.
제작사도 Java를 만드는 Sun사이다.

JSP는 PHP로 코딩하는것보다 더 어렵다. 많은 사람이 이치만 깨우치면 쉽다라고 하지만, 모든 표현을 객체화하여 표현하기 때문에 라이브러리 중심의 PHP보다 참조나 변형이 어렵다는것을 금방 알게된다. 또한 서블릿이라는 java로 컴파일한 객체를 사용할수 있다고 하는데 이분야는 좀더 연구를 해봐야겠다. 연구를 하면서 서블릿에 대한 포스팅도 시작하여야 겠다.

이제 그만 잡소리하고..설치를 해보도록 하자.

JAVA (jdk)
다운로드: 
http://www.snowrice.com/freepds/1103
http://java.sun.com/javase/downloads/


jdk-6u14-linux-i586-rpm.bin
jdk는 jdk와 jre로 구성되어있다. jdk는 한마디로 개발툴이고 jre는 자바용 프로그램들을 시스템에서 구현해주는 툴이라고 보면 된다. jdk설치로 두 가지다 설치된다.

[root@localhost Desktop]# chmod +x jdk-6u14-linux-i586-rpm.bin
[root@localhost Desktop]# ./jdk-6u14-linux-i586-rpm.bin
2. LICENSE TO USE. Subject to the terms and conditions of
this Agreement, including, but not limited to the Java

Do you agree to the above license terms? [yes or no]
yes
엔터계속
물음에 모두 yes로 답한다
Unpacking...
Checksumming...
Extracting...
UnZipSFX 5.50 of 17 February 2002, by Info-ZIP (
Zip-Bugs@lists.wku.edu).
  inflating: jdk-6u14-linux-i586.rpm
  inflating: sun-javadb-common-10.4.2-1.1.i386.rpm
  inflating: sun-javadb-core-10.4.2-1.1.i386.rpm
  inflating: sun-javadb-client-10.4.2-1.1.i386.rpm
  inflating: sun-javadb-demo-10.4.2-1.1.i386.rpm
  inflating: sun-javadb-docs-10.4.2-1.1.i386.rpm
  inflating: sun-javadb-javadoc-10.4.2-1.1.i386.rpm
준비 중...               ########################################### [100%]
   1:jdk                    ########################################### [100%]
Unpacking JAR files...
        rt.jar...
        jsse.jar...
        charsets.jar...
        tools.jar...
        localedata.jar...
        plugin.jar...
        javaws.jar...
        deploy.jar...
Installing JavaDB
준비 중...               ########################################### [100%]
   1:sun-javadb-common      ########################################### [ 17%]
   2:sun-javadb-core        ########################################### [ 33%]
   3:sun-javadb-client      ########################################### [ 50%]
   4:sun-javadb-demo        ########################################### [ 67%]
   5:sun-javadb-docs        ########################################### [ 83%]
   6:sun-javadb-javadoc     ########################################### [100%]

Java(TM) SE Development Kit 6 successfully installed.

Product Registration is FREE and includes many benefits:
* Notification of new versions, patches, and updates
* Special offers on Sun products, services and training
* Access to early releases and documentation

Product and system data will be collected. If your configuration
supports a browser, the Sun Product Registration form for
the JDK will be presented. If you do not register, none of
this information will be saved. You may also register your
JDK later by opening the register.html file (located in
the JDK installation directory) in a browser.

For more information on what data Registration collects and
how it is managed and used, see:
http://java.sun.com/javase/registration/JDKRegistrationPrivacy.html

Press Enter to continue.....


Done.


이것으로 Java의 설치는 끝이다.
확인을 위해서 아래의 사항을 점검한다.
[root@localhost Desktop]# rpm -qa | grep jdk
java-1.6.0-openjdk-1.6.0.0-0.25.b09.el5
jdk-1.6.0_14-fcs
[root@localhost Desktop]# java
Usage: java [-options] class [args...]
           (to execute a class)
   or  java [-options] -jar jarfile [args...]
           (to execute a jar file)
where options include:
    -d32          use a 32-bit data model if available
    -d64          use a 64-bit data model if available
    -client       to select the "client" VM
    -server       to select the "server" VM
    -hotspot      is a synonym for the "client" VM  [deprecated]
                  The default VM is client.

    -cp <class search path of directories and zip/jar files>
    -classpath <class search path of directories and zip/jar files>
                  A : separated list of directories, JAR archives,
                  and ZIP archives to search for class files.
    -D<name>=<value>
                  set a system property
    -verbose[:class|gc|jni]
                  enable verbose output
    -version      print product version and exit
    -version:<value>
                  require the specified version to run
    -showversion  print product version and continue
    -jre-restrict-search | -jre-no-restrict-search
                  include/exclude user private JREs in the version search
    -? -help      print this help message
    -X            print help on non-standard options
    -ea[:<packagename>...|:<classname>]
    -enableassertions[:<packagename>...|:<classname>]
                  enable assertions with specified granularity
    -da[:<packagename>...|:<classname>]
    -disableassertions[:<packagename>...|:<classname>]
                  disable assertions with specified granularity
    -esa | -enablesystemassertions
                  enable system assertions
    -dsa | -disablesystemassertions
                  disable system assertions
    -agentlib:<libname>[=<options>]
                  load native agent library <libname>, e.g. -agentlib:hprof
                  see also, -agentlib:jdwp=help and -agentlib:hprof=help
    -agentpath:<pathname>[=<options>]
                  load native agent library by full pathname
    -javaagent:<jarpath>[=<options>]
                  load Java programming language agent, see java.lang.instrument
    -splash:<imagepath>
                  show splash screen with specified image
See
http://java.sun.com/javase/reference for more details.



jdk의 설치는 무난히 끝났다. 모두 그렇지만 윈도우 프로그램처럼 setup.exe만 실행시킨후 모든게 끝나면 얼마나 좋겠냐만은, 작은 설정이 필요하다.
 [root@localhost Desktop]# ls /usr/java
default  jdk1.6.0_14  latest
[root@localhost Desktop]# ln -s /usr/java/jdk1.6.0_14 /usr/local/jdk
[root@localhost Desktop]# vi /etc/profile
# /etc/profile

# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc

pathmunge () {
        if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then
           if [ "$2" = "after" ] ; then
              PATH=$PATH:$1
           else
              PATH=$1:$PATH
           fi
        fi
}

# ksh workaround
if [ -z "$EUID" -a -x /usr/bin/id ]; then
        EUID=`id -u`
        UID=`id -ru`
fi

# Path manipulation
if [ "$EUID" = "0" ]; then
        pathmunge /sbin
        pathmunge /usr/sbin
        pathmunge /usr/local/sbin
fi

# No core files by default
ulimit -S -c 0 > /dev/null 2>&1

if [ -x /usr/bin/id ]; then
        USER="`id -un`"
        LOGNAME=$USER
        MAIL="/var/spool/mail/$USER"
fi

HOSTNAME=`/bin/hostname`
HISTSIZE=1000

if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then
    INPUTRC=/etc/inputrc
fi

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC

for i in /etc/profile.d/*.sh ; do
    if [ -r "$i" ]; then
        . $i
    fi
done

unset i
unset pathmunge

export JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/lib/tools.jar:.

[root@localhost Desktop]# ls -la /etc/profile
-rw-r--r-- 1 root root 1049  7월 16 00:07 /etc/profile
[root@localhost Desktop]# chmod 755 /etc/profile(실행권한설정)
[root@localhost Desktop]# /etc/profile (갱신된 profile을 적용) 
[root@localhost Desktop]# javac (설치가 잘되었나 확인)
Usage: javac <options> <source files>
where possible options include:
  -g                         Generate all debugging info
  -g:none                    Generate no debugging info
  -g:{lines,vars,source}     Generate only some debugging info
  -nowarn                    Generate no warnings
  -verbose                   Output messages about what the compiler is doing
  -deprecation               Output source locations where deprecated APIs are used
  -classpath <path>          Specify where to find user class files and annotation processors
  -cp <path>                 Specify where to find user class files and annotation processors
  -sourcepath <path>         Specify where to find input source files
  -bootclasspath <path>      Override location of bootstrap class files
  -extdirs <dirs>            Override location of installed extensions
  -endorseddirs <dirs>       Override location of endorsed standards path
  -proc:{none,only}          Control whether annotation processing and/or compilation is done.
  -processor <class1>[,<class2>,<class3>...]Names of the annotation processors to run; bypasses default discovery process
  -processorpath <path>      Specify where to find annotation processors
  -d <directory>             Specify where to place generated class files
  -s <directory>             Specify where to place generated source files
  -implicit:{none,class}     Specify whether or not to generate class files for implicitly referenced files
  -encoding <encoding>       Specify character encoding used by source files
  -source <release>          Provide source compatibility with specified release
  -target <release>          Generate class files for specific VM version
  -version                   Version information
  -help                      Print a synopsis of standard options
  -Akey[=value]              Options to pass to annotation processors
  -X                         Print a synopsis of nonstandard options
  -J<flag>                   Pass <flag> directly to the runtime system


 

APACHE-TOMCAT
jdk만으로 설정이 끝나느냐? 아니다. jsp를 구현하기 위해서는 apache-tomacat을 설치해 주어야 한다.
다운로드
http://www.snowrice.com/freepds/1108
http://mirror.apache-kr.org/tomcat/tomcat-6/v6.0.20/bin/apache-tomcat-6.0.20.tar.gz
 [root@localhost Desktop]# wget http://mirror.apache-kr.org/tomcat/tomcat-6/v6.0.20/bin/apache-tomcat-6.0.20.tar.gz
--00:03:52--  http://mirror.apache-kr.org/tomcat/tomcat-6/v6.0.20/bin/apache-tomcat-6.0.20.tar.gz
Resolving mirror.apache-kr.org... 211.174.58.187
Connecting to mirror.apache-kr.org|211.174.58.187|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5998298 (5.7M) [application/x-gzip]
Saving to: `apache-tomcat-6.0.20.tar.gz'

100%[=======================================================================================================================================================================>] 5,998,298   1.32M/s   in 4.3s

00:03:57 (1.33 MB/s) - `apache-tomcat-6.0.20.tar.gz' saved [5998298/5998298]

[root@localhost Desktop]#


wget을 통해서 apache-tomacat을 다운받았다.

 [root@localhost Desktop]# tar -xvf apache-tomcat-6.0.20.tar.gz
[root@localhost Desktop]# mv apache-tomcat-6.0.20 /usr/local/tomcat
[root@localhost Desktop]# cd /usr/local
[root@localhost local]# ls
bin  etc  games  httpd  include  jdk  lib  libexec  mysql  pgsql  php  sbin  share  src  tomcat
[root@localhost local]# vi /etc/profile
export CATALINA_HOME=/usr/local/tomcat
export PATH=$PATH:$CATALINA_HOME/bin
[root@localhost local]# source /etc/profile
[root@localhost local]# system-config-securitylevel-tui (system-config-firewall-tui)
8080:tcp 8080번 포트를 열어준다.
[root@localhost bin]# /usr/local/tomcat/bin/catalina.sh start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:       /usr/local/jdk



로칼에서 http://ip:8080으로 접속하여 보자


설치는 제대로 잘되었다. 여기서 확실히 개념을 잡아야 할것은..
일반 http://domain으로 접속을 하였을때는 apache의 본래의 기능으로 접속을 하고

http://ip:8080으로 접속을 하면 위의 고양이 나오는 그림과 같이 jsp페이지가 떠야한다는것이다.

여기서 개념을 잡아야 할것이 있다.
일반 html으로 접속한것은 아파치의 본래의 기능으로 접속하고 jsp로 접속한것은 tomcat을 이용하여 8080번으로 접속을 한다는 이야기다.

톰캣과 아파치를 연동하면 http://domain을 연결하면 /usr/local/tomcat/webapps의 index.jsp나 index.html을 찾는다. 그러나 이렇게 하면 아파치의 고유기능인 virtual hosting과 어떻게 적절히 움직일수 있느냐 하는 의문점이 남는다.

자 그럼, 우선 계정 사용자를 염두해두지 않고, http://ip식으로 접속하면 루트 사용자만을 위한 /usr/local/httpd/htdocs가 아닌 /usr/local/tomcat/webapps에 접속하는 아파치-톰캣 연동을 하자.

APACHE-TOMCAT CONNECTOR
다운로드
http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.28/tomcat-connectors-1.2.28-src.tar.gz
 [root@localhost Desktop]# wget http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.28/tomcat-connectors-1.2.28-src.tar.gz
--01:26:20--  http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.28/tomcat-connectors-1.2.28-src.tar.gz
Resolving www.apache.org... 140.211.11.130
Connecting to
www.apache.org|140.211.11.130|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1541956 (1.5M) [application/x-gzip]
Saving to: `tomcat-connectors-1.2.28-src.tar.gz'

100%[=============================================================>] 1,541,956    588K/s   in 2.6s

01:26:23 (588 KB/s) - `tomcat-connectors-1.2.28-src.tar.gz' saved [1541956/1541956]

[root@localhost Desktop]# tar -xvf tomcat-connectors-1.2.28-src.tar.gz
[root@localhost Desktop]#cd tomcat-connectors-1.2.28-src
[root@localhost tomcat-connectors-1.2.28-src]# cd native
[root@localhost native]# ls
BUILDING.txt  Makefile.in  STATUS.txt  apache-1.3    common        docs  netscape
CHANGES       NEWS         TODO.txt    apache-2.0    configure     iis   nt_service
Makefile.am   README.txt   aclocal.m4  buildconf.sh  configure.in  jni   scripts
[root@localhost native]# ./configure --with-apxs=/usr/local/httpd/bin/apxs
[root@localhost native]# make && make install
make[2]: `install-exec-am'를 위해 할 일이 없습니다
make[2]: `install-data-am'를 위해 할 일이 없습니다
make[2]: Leaving directory `/root/Desktop/tomcat-connectors-1.2.28-src/native'
make[1]: Leaving directory `/root/Desktop/tomcat-connectors-1.2.28-src/native'
[root@localhost native]# ls /usr/local/httpd/modules/mod_jk.so
/usr/local/httpd/modules/mod_jk.so


연동 설정을 위하여 httpd.conf와 workers.properties파일을 수정 생성하자.
 [root@localhost native]# vi /usr/local/httpd/conf/httpd.conf
LoadModule jk_module          modules/mod_jk.so
#Tomcat-connector
JkWorkersFile conf/workers.properties
JkLogFile logs/jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %y]"
JkMount /*.jsp loadbalancer
JkMount /*.do loadbalancer
JkMount /*.html loadbalancer
JkMount /servlet/* loadbalancer
JkMount /* loadbalancer
JkMount /*.gif loadbalancer


#Load Module 맨뒤에 위와같이 추가한다.
ServerName 192.168.123.132

#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/usr/local/httpd/htdocs"

#
# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories).
#
# First, we configure the "default" to be a very restrictive set of
# features.
#


#서버네임에 자신의 도메인이나, IP를 입력하고 위와같이 삽입한다.


workers.properties파일을 새로 생성하고 위와 같이 삽입한다.
[root@localhost conf]# vi /usr/local/httpd/conf/workers.properties
worker.list=loadbalancer
worker.tomcat1.type=ajp13
worker.tomcat1.host=127.0.0.1
worker.tomcat1.port=8008
worker.tomcat1.lbfactor=1
worker.tomcat2.type=ajp13
worker.tomcat2.host=127.0.0.1
worker.tomcat2.port=8009
worker.tomcat2.lbfactor=1
worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=tomcat1,tomcat2

[root@localhost conf]# /usr/local/httpd/bin/httpd -k restart
[root@localhost conf]# /usr/local/tomcat/bin/catalina.sh stop
[root@localhost conf]# /usr/local/tomcat/bin/catalina.sh start

아파치와 톰캣을 재시동한다.
http://ip로 접속

아파치와 톰캣의 연동이 성공적으로 끝났다.
하지만.. 앞서 설치한 PHP는 이제부터 쓸수없게 된다!
예로 <?php phpinfo(); ?> php태그를 이용하여 test.php를 작성하여 읽어보자..
웹서버는 test.php를 출력하지 않고 브라우져는 해당파일을 웹페이지로 인식못하고 다운로드 받게 된다.
그러므로 jsp이외의 php파일은 정상적으로 tomcat의 영향을 받지 않고 출력해줘야 한다.

httpd.conf에서
JkMount /* loadbalancer
이부분을 지우고 웹서버를 재가동하면 JkMount부분에서 지정하지 않은 확장자는 모두 본래의 아파치디렉토리에서 정상적으로 읽게된다.

웹호스팅을 기획하지 않고 단일 웹서버로 쓰이는 머신은 여기까지 세팅하면 된다.
작은 사이트의 경우, 거의 모든 플랫폼이 APM에 맞춰있기 때문에 jsp까지 세팅하지 않고 APM+Oracle서버로도 매우 훌륭하다. 

하지만 기필코 jsp와 php 모두 웹호스팅에 적용하고 싶으면 다음 포스팅 +3에서 이어진다.

2009. 7. 15. 06:22

레드헷 리눅스에서 Apache + Oracle + PostgreSQL + MySQL + PHP + Tomcat + JAVA 서버구성1


앞전 3개의 DB Oracle + PostgreSQL + MySQL는 구성을 모두 마쳤다. 그러므로 이제 웹서버와 PHP,JSP용 언어서버들을 구성해 주면 된다.

 Apache.
다운로드
http://www.snowrice.com/?module=file&act=procFileDownload&file_srl=848&sid=daf0b6f9fb2ad0a9f241a0dcf6b9cd4b

[root@akas httpd-2.2.11]# tar -xvf httpd-2.2.11.tar.gz
[root@akas httpd-2.2.11]# cd httpd-2.2.11
[root@akas httpd-2.2.11]# ./configure --prefix=/usr/local/httpd --with-mpm=prefork --enable-ssl --with-ssl=/usr/local/openssl --enable-deflate --with-z=/usr/local/zlib --enable-so --enable-mods-shared=all
생략
config.status: creating build/pkg/pkginfo
config.status: creating build/config_vars.sh
config.status: creating include/ap_config_auto.h
config.status: executing default commands
[root@akas httpd-2.2.11]# make
생략
make[4]: Leaving directory `/root/Desktop/httpd-2.2.11/modules/mappers'
make[3]: Leaving directory `/root/Desktop/httpd-2.2.11/modules/mappers'
make[2]: Leaving directory `/root/Desktop/httpd-2.2.11/modules'
make[2]: Entering directory `/root/Desktop/httpd-2.2.11/support'
make[2]: Leaving directory `/root/Desktop/httpd-2.2.11/support'
make[1]: Leaving directory `/root/Desktop/httpd-2.2.11'
[root@akas httpd-2.2.11]# make install
생략
mkdir /usr/local/httpd/man
mkdir /usr/local/httpd/man/man1
mkdir /usr/local/httpd/man/man8
mkdir /usr/local/httpd/manual
make[1]: Leaving directory `/root/Desktop/httpd-2.2.11'
[root@akas httpd-2.2.11]# ls /usr/local/httpd/bin
ab            apu-1-config  dbmmanage    htcacheclean  htpasswd   logresolve
apachectl     apxs          envvars      htdbm         httpd      rotatelogs
apr-1-config  checkgid      envvars-std  htdigest      httxt2dbm
[root@akas httpd-2.2.11]# /usr/local/httpd/bin/httpd -k start


성공!!

PHP
다운로드
http://www.snowrice.com/?module=file&act=procFileDownload&file_srl=853&sid=b091359f32e2dd92eb8d584c44f0cca5
[root@akas php-5.2.9]# tar -xvf php-5.2.9.tar.gz
[root@akas Desktop]# cd php-5.2.9

[root@akas Desktop]# yum install libxml2-devel  libjpeg-devel libc-client-devel krb5-devel  libjpeg-devel  libpng-devel

[root@akas php-5.2.9]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/httpd/bin/apxs --with-oci8=/home/oracle/oracle11/product/11.1.0/db_1 --with-pgsql=/usr/local/pgsql --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/httpd/conf --with-exec-dir=/usr/local/httpd/bin --with-gd=shared --with-xmlrpc --with-openssl --with-gd --enable-gd-native-ttf  --with-curl=/usr/local/curl --with-zlib --with-jpeg-dir=/usr/lib --with-png-dir=/usr/lib --with-kerberos --with-imap-ssl --with-libxml-dir --with-imap=shared --enable-inline-optimization --enable-mbstring

생략
Generating files
updating cache ./config.cache
creating ./config.status
creating php5.spec
creating main/build-defs.h
creating scripts/phpize
creating scripts/man1/phpize.1
creating scripts/php-config
creating scripts/man1/php-config.1
creating sapi/cli/php.1
creating main/php_config.h
creating main/internal_functions.c
creating main/internal_functions_cli.c
+--------------------------------------------------------------------+
| Notice:                                                                                           |
| If you encounter <defunc> processes when using a local Oracle-DB    |
| please recompile PHP and specify --enable-sigchild when configuring |
| (This problem has been reported under Linux using Oracle >= 8.1.5)     |
+--------------------------------------------------------------------+
| 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@akas php-5.2.9]# make
Build complete.
Don't forget to run 'make test'.

[root@akas php-5.2.9]# make install
You may want to add: /usr/local/php/lib/php to your php.ini include_path
Installing PDO headers:          /usr/local/php/include/php/ext/pdo/

[root@akas php-5.2.9]# vi /usr/local/httpd/conf/httpd.conf
LoadModule php5_module modules/libphp5.so(검색)
AddType application/x-httpd-php .php .html .htm (365라인에 입력)

[root@akas php-5.2.9]# ls /usr/local/httpd/modules/libphp5.so
/usr/local/httpd/modules/libphp5.so(확인)


[root@akas php-5.2.9]# vi /usr/local/httpd/htdocs/test.php
[root@akas php-5.2.9]# cat /usr/local/httpd/htdocs/test.php
<?php phpinfo(); ?>
[root@akas php-5.2.9]#/usr/local/httpd/bin/httpd -k restart


부팅시 자동 실행

[root@akas conf]# vi /etc/rc.local
[root@akas conf]# cat /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local
/etc/init.d/oracle start
/etc/rc.d/init.d/postgresql start
/etc/local/mysql/bin/mysqld_safe --user=mysql &
/usr/local/httpd/bin/httpd -k start

[root@akas conf]#



브라우져로 확인
http://ip/test.php

PHP Logo

PHP Version 5.2.9


System Linux akas.com 2.6.18-128.el5 #1 SMP Wed Jan 21 10:44:23 EST 2009 i686
Build Date Jul 15 2009 05:30:22
Configure Command './configure' '--prefix=/usr/local/php' '--with-apxs2=/usr/local/httpd/bin/apxs' '--with-oci8=/home/oracle/oracle11/product/11.1.0/db_1' '--with-pgsql=/usr/local/pgsql' '--with-mysql=/usr/local/mysql' '--with-config-file-path=/usr/local/httpd/conf' '--with-exec-dir=/usr/local/httpd/bin' '--with-gd=shared' '--with-xmlrpc' '--with-openssl' '--with-gd' '--enable-gd-native-ttf' '--with-curl=/usr/local/curl' '--with-zlib' '--with-jpeg-dir=/usr/lib' '--with-png-dir=/usr/lib' '--with-kerberos' '--with-imap-ssl' '--with-libxml-dir' '--with-imap=shared' '--enable-inline-optimization' '--enable-mbstring'
Server API Apache 2.0 Handler
Virtual Directory Support disabled
Configuration File (php.ini) Path /usr/local/httpd/conf
Loaded Configuration File (none)
Scan this dir for additional .ini files (none)
additional .ini files parsed (none)
PHP API 20041225
PHP Extension 20060613
Zend Extension 220060519
Debug Build no
Thread Safety disabled
Zend Memory Manager enabled
IPv6 Support enabled
Registered PHP Streams php, file, data, http, ftp, compress.zlib, https, ftps
Registered Stream Socket Transports tcp, udp, unix, udg, ssl, sslv3, sslv2, tls
Registered Stream Filters string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, convert.iconv.*, zlib.*

Zend logoThis program makes use of the Zend Scripting Language Engine:
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies


PHP Credits


Configuration

PHP Core

Directive Local Value Master Value
allow_call_time_pass_reference On On
allow_url_fopen On On
allow_url_include Off Off
always_populate_raw_post_data Off Off
arg_separator.input & &
arg_separator.output & &
asp_tags Off Off
auto_append_file no value no value
auto_globals_jit On On
auto_prepend_file no value no value
browscap no value no value
default_charset no value no value
default_mimetype text/html text/html
define_syslog_variables Off Off
disable_classes no value no value
disable_functions no value no value
display_errors On On
display_startup_errors Off Off
doc_root no value no value
docref_ext no value no value
docref_root no value no value
enable_dl On On
error_append_string no value no value
error_log no value no value
error_prepend_string no value no value
error_reporting no value no value
expose_php On On
extension_dir /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613 /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613
file_uploads On On
highlight.bg #FFFFFF #FFFFFF
highlight.comment #FF8000 #FF8000
highlight.default #0000BB #0000BB
highlight.html #000000 #000000
highlight.keyword #007700 #007700
highlight.string #DD0000 #DD0000
html_errors On On
ignore_repeated_errors Off Off
ignore_repeated_source Off Off
ignore_user_abort Off Off
implicit_flush Off Off
include_path .:/usr/local/php/lib/php .:/usr/local/php/lib/php
log_errors Off Off
log_errors_max_len 1024 1024
magic_quotes_gpc On On
magic_quotes_runtime Off Off
magic_quotes_sybase Off Off
mail.force_extra_parameters no value no value
max_execution_time 30 30
max_input_nesting_level 64 64
max_input_time -1 -1
memory_limit 128M 128M
open_basedir no value no value
output_buffering 0 0
output_handler no value no value
post_max_size 8M 8M
precision 14 14
realpath_cache_size 16K 16K
realpath_cache_ttl 120 120
register_argc_argv On On
register_globals Off Off
register_long_arrays On On
report_memleaks On On
report_zend_debug On On
safe_mode Off Off
safe_mode_exec_dir /usr/local/httpd/bin /usr/local/httpd/bin
safe_mode_gid Off Off
safe_mode_include_dir no value no value
sendmail_from no value no value
sendmail_path /usr/sbin/sendmail -t -i  /usr/sbin/sendmail -t -i 
serialize_precision 100 100
short_open_tag On On
SMTP localhost localhost
smtp_port 25 25
sql.safe_mode Off Off
track_errors Off Off
unserialize_callback_func no value no value
upload_max_filesize 2M 2M
upload_tmp_dir no value no value
user_dir no value no value
variables_order EGPCS EGPCS
xmlrpc_error_number 0 0
xmlrpc_errors Off Off
y2k_compliance On On
zend.ze1_compatibility_mode Off Off

apache2handler

Apache Version Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.9
Apache API Version 20051115
Server Administrator you@example.com
Hostname:Port akas.com:0
User/Group daemon(2)/2
Max Requests Per Child: 10000 - Keep Alive: on - Max Per Connection: 100
Timeouts Connection: 300 - Keep-Alive: 5
Virtual Server No
Server Root /usr/local/httpd
Loaded Modules core prefork http_core mod_so mod_authn_file mod_authn_dbm mod_authn_anon mod_authn_dbd mod_authn_default mod_authz_host mod_authz_groupfile mod_authz_user mod_authz_dbm mod_authz_owner mod_authz_default mod_auth_basic mod_auth_digest mod_dbd mod_dumpio mod_ext_filter mod_include mod_filter mod_substitute mod_deflate mod_log_config mod_log_forensic mod_logio mod_env mod_mime_magic mod_cern_meta mod_expires mod_headers mod_ident mod_usertrack mod_unique_id mod_setenvif mod_version mod_ssl mod_mime mod_dav mod_status mod_autoindex mod_asis mod_info mod_cgi mod_dav_fs mod_vhost_alias mod_negotiation mod_dir mod_imagemap mod_actions mod_speling mod_userdir mod_alias mod_rewrite mod_php5

Directive Local Value Master Value
engine 1 1
last_modified 0 0
xbithack 0 0

Apache Environment

Variable Value
UNIQUE_ID SlzuNMCoCoQAAAj8NC8AAAAA
HTTP_HOST 192.168.10.132
HTTP_CONNECTION keep-alive
HTTP_USER_AGENT Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/2.0.172.33 Safari/530.5
HTTP_ACCEPT application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
HTTP_ACCEPT_ENCODING gzip,deflate,bzip2,sdch
HTTP_ACCEPT_LANGUAGE ko-KR,ko;q=0.8,en-US;q=0.6,en;q=0.4
HTTP_ACCEPT_CHARSET windows-949,utf-8;q=0.7,*;q=0.3
HTTP_IF_NONE_MATCH "15825f-14-46eb073fb6f80"
HTTP_IF_MODIFIED_SINCE Tue, 14 Jul 2009 20:40:46 GMT
PATH /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
SERVER_SIGNATURE no value
SERVER_SOFTWARE Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.9
SERVER_NAME 192.168.10.132
SERVER_ADDR 192.168.10.132
SERVER_PORT 80
REMOTE_ADDR 192.168.10.102
DOCUMENT_ROOT /usr/local/httpd/htdocs
SERVER_ADMIN you@example.com
SCRIPT_FILENAME /usr/local/httpd/htdocs/test.php
REMOTE_PORT 1126
GATEWAY_INTERFACE CGI/1.1
SERVER_PROTOCOL HTTP/1.1
REQUEST_METHOD GET
QUERY_STRING no value
REQUEST_URI /test.php
SCRIPT_NAME /test.php

HTTP Headers Information

HTTP Request Headers
HTTP Request GET /test.php HTTP/1.1
Host 192.168.10.132
Connection keep-alive
User-Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/2.0.172.33 Safari/530.5
Accept application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Encoding gzip,deflate,bzip2,sdch
Accept-Language ko-KR,ko;q=0.8,en-US;q=0.6,en;q=0.4
Accept-Charset windows-949,utf-8;q=0.7,*;q=0.3
If-None-Match "15825f-14-46eb073fb6f80"
If-Modified-Since Tue, 14 Jul 2009 20:40:46 GMT
HTTP Response Headers
X-Powered-By PHP/5.2.9
Keep-Alive timeout=5, max=100
Connection Keep-Alive
Transfer-Encoding chunked
Content-Type text/html

ctype

ctype functions enabled

curl

cURL support enabled
cURL Information libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5

date

date/time support enabled
"Olson" Timezone Database Version 2009.1
Timezone Database internal
Default timezone Asia/Seoul

Directive Local Value Master Value
date.default_latitude 31.7667 31.7667
date.default_longitude 35.2333 35.2333
date.sunrise_zenith 90.583333 90.583333
date.sunset_zenith 90.583333 90.583333
date.timezone no value no value

dom

DOM/XML enabled
DOM/XML API Version 20031129
libxml Version 2.6.26
HTML Support enabled
XPath Support enabled
XPointer Support enabled
Schema Support enabled
RelaxNG Support enabled

filter

Input Validation and Filtering enabled
Revision $Revision: 1.52.2.45 $

Directive Local Value Master Value
filter.default unsafe_raw unsafe_raw
filter.default_flags no value no value

gd

GD Support enabled
GD Version bundled (2.0.34 compatible)
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled

hash

hash support enabled
Hashing Engines md2 md4 md5 sha1 sha256 sha384 sha512 ripemd128 ripemd160 ripemd256 ripemd320 whirlpool tiger128,3 tiger160,3 tiger192,3 tiger128,4 tiger160,4 tiger192,4 snefru gost adler32 crc32 crc32b haval128,3 haval160,3 haval192,3 haval224,3 haval256,3 haval128,4 haval160,4 haval192,4 haval224,4 haval256,4 haval128,5 haval160,5 haval192,5 haval224,5 haval256,5

iconv

iconv support enabled
iconv implementation glibc
iconv library version 2.5

Directive Local Value Master Value
iconv.input_encoding ISO-8859-1 ISO-8859-1
iconv.internal_encoding ISO-8859-1 ISO-8859-1
iconv.output_encoding ISO-8859-1 ISO-8859-1

json

json support enabled
json version 1.2.1

libxml

libXML support active
libXML Version 2.6.26
libXML streams enabled

mbstring

Multibyte Support enabled
Multibyte string engine libmbfl
Multibyte (japanese) regex support enabled
Multibyte regex (oniguruma) version 4.4.4
Multibyte regex (oniguruma) backtrack check On

mbstring extension makes use of "streamable kanji code filter and converter", which is distributed under the GNU Lesser General Public License version 2.1.

Directive Local Value Master Value
mbstring.detect_order no value no value
mbstring.encoding_translation Off Off
mbstring.func_overload 0 0
mbstring.http_input pass pass
mbstring.http_output pass pass
mbstring.internal_encoding no value no value
mbstring.language neutral neutral
mbstring.strict_detection Off Off
mbstring.substitute_character no value no value

mysql

MySQL Support enabled
Active Persistent Links 0
Active Links 0
Client API version 5.1.32
MYSQL_MODULE_TYPE external
MYSQL_SOCKET /tmp/mysql.sock
MYSQL_INCLUDE -I/usr/local/mysql/include/mysql
MYSQL_LIBS -L/usr/local/mysql/lib/mysql -lmysqlclient

Directive Local Value Master Value
mysql.allow_persistent On On
mysql.connect_timeout 60 60
mysql.default_host no value no value
mysql.default_password no value no value
mysql.default_port no value no value
mysql.default_socket no value no value
mysql.default_user no value no value
mysql.max_links Unlimited Unlimited
mysql.max_persistent Unlimited Unlimited
mysql.trace_mode Off Off

oci8

OCI8 Support enabled
Version 1.2.5
Revision $Revision: 1.269.2.16.2.44 $
Active Persistent Connections 0
Active Connections 0
Oracle Version 11.1
Compile-time ORACLE_HOME /home/oracle/oracle11/product/11.1.0/db_1
Libraries Used no value
Temporary Lob support enabled
Collections support enabled

Directive Local Value Master Value
oci8.default_prefetch 10 10
oci8.max_persistent -1 -1
oci8.old_oci_close_semantics 0 0
oci8.persistent_timeout -1 -1
oci8.ping_interval 60 60
oci8.privileged_connect Off Off
oci8.statement_cache_size 20 20

openssl

OpenSSL support enabled
OpenSSL Version OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008

pcre

PCRE (Perl Compatible Regular Expressions) Support enabled
PCRE Library Version 7.8 2008-09-05

Directive Local Value Master Value
pcre.backtrack_limit 100000 100000
pcre.recursion_limit 100000 100000

PDO

PDO support enabled
PDO drivers sqlite2, sqlite

pdo_sqlite

PDO Driver for SQLite 3.x enabled
PECL Module version (bundled) 1.0.1 $Id: pdo_sqlite.c,v 1.10.2.6.2.4 2008/12/31 11:17:42 sebastian Exp $
SQLite Library 3.3.7

pgsql

PostgreSQL Support enabled
PostgreSQL(libpq) Version 8.4.0
Multibyte character support enabled
SSL support enabled
Active Persistent Links 0
Active Links 0

Directive Local Value Master Value
pgsql.allow_persistent On On
pgsql.auto_reset_persistent Off Off
pgsql.ignore_notice Off Off
pgsql.log_notice Off Off
pgsql.max_links Unlimited Unlimited
pgsql.max_persistent Unlimited Unlimited

posix

Revision $Revision: 1.70.2.3.2.22 $

Reflection

Reflection enabled
Version $Id: php_reflection.c,v 1.164.2.33.2.55 2008/12/31 11:17:42 sebastian Exp $

session

Session Support enabled
Registered save handlers files user sqlite
Registered serializer handlers php php_binary

Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 On On
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_httponly Off Off
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 100 100
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 4 4
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path no value no value
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid 0 0

SimpleXML

Simplexml support enabled
Revision $Revision: 1.151.2.22.2.46 $
Schema support enabled

SPL

SPL support enabled
Interfaces Countable, OuterIterator, RecursiveIterator, SeekableIterator, SplObserver, SplSubject
Classes AppendIterator, ArrayIterator, ArrayObject, BadFunctionCallException, BadMethodCallException, CachingIterator, DirectoryIterator, DomainException, EmptyIterator, FilterIterator, InfiniteIterator, InvalidArgumentException, IteratorIterator, LengthException, LimitIterator, LogicException, NoRewindIterator, OutOfBoundsException, OutOfRangeException, OverflowException, ParentIterator, RangeException, RecursiveArrayIterator, RecursiveCachingIterator, RecursiveDirectoryIterator, RecursiveFilterIterator, RecursiveIteratorIterator, RecursiveRegexIterator, RegexIterator, RuntimeException, SimpleXMLIterator, SplFileInfo, SplFileObject, SplObjectStorage, SplTempFileObject, UnderflowException, UnexpectedValueException

SQLite

SQLite support enabled
PECL Module version 2.0-dev $Id: sqlite.c,v 1.166.2.13.2.12 2008/12/31 11:17:44 sebastian Exp $
SQLite Library 2.8.17
SQLite Encoding iso8859

Directive Local Value Master Value
sqlite.assoc_case 0 0

standard

Regex Library Bundled library enabled
Dynamic Library Support enabled
Path to sendmail /usr/sbin/sendmail -t -i

Directive Local Value Master Value
assert.active 1 1
assert.bail 0 0
assert.callback no value no value
assert.quiet_eval 0 0
assert.warning 1 1
auto_detect_line_endings 0 0
default_socket_timeout 60 60
safe_mode_allowed_env_vars PHP_ PHP_
safe_mode_protected_env_vars LD_LIBRARY_PATH LD_LIBRARY_PATH
url_rewriter.tags a=href,area=href,frame=src,form=,fieldset= a=href,area=href,frame=src,form=,fieldset=
user_agent no value no value

tokenizer

Tokenizer Support enabled

xml

XML Support active
XML Namespace Support active
libxml2 Version 2.6.26

xmlreader

XMLReader enabled

xmlrpc

core library version xmlrpc-epi v. 0.51
php extension version 0.51
author Dan Libby
homepage http://xmlrpc-epi.sourceforge.net
open sourced by Epinions.com

xmlwriter

XMLWriter enabled

zlib

ZLib Support enabled
Stream Wrapper support compress.zlib://
Stream Filter support zlib.inflate, zlib.deflate
Compiled Version 1.2.3
Linked Version 1.2.3

Directive Local Value Master Value
zlib.output_compression Off Off
zlib.output_compression_level -1 -1
zlib.output_handler no value no value

Additional Modules

Module Name

Environment

Variable Value
HOSTNAME akas.com
SHELL /bin/bash
TERM xterm
HISTSIZE 1000
USER root
LS_COLORS no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35:
MAIL /var/spool/mail/root
PATH /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
INPUTRC /etc/inputrc
PWD /root/Desktop/httpd-2.2.11
LANG ko_KR.UTF-8
SSH_ASKPASS /usr/libexec/openssh/gnome-ssh-askpass
SHLVL 1
HOME /root
LOGNAME root
CVS_RSH ssh
LESSOPEN |/usr/bin/lesspipe.sh %s
G_BROKEN_FILENAMES 1
_ /usr/local/httpd/bin/httpd
OLDPWD /root/Desktop

PHP Variables

Variable Value
_SERVER["UNIQUE_ID"] SlzuNMCoCoQAAAj8NC8AAAAA
_SERVER["HTTP_HOST"] 192.168.10.132
_SERVER["HTTP_CONNECTION"] keep-alive
_SERVER["HTTP_USER_AGENT"] Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/2.0.172.33 Safari/530.5
_SERVER["HTTP_ACCEPT"] application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
_SERVER["HTTP_ACCEPT_ENCODING"] gzip,deflate,bzip2,sdch
_SERVER["HTTP_ACCEPT_LANGUAGE"] ko-KR,ko;q=0.8,en-US;q=0.6,en;q=0.4
_SERVER["HTTP_ACCEPT_CHARSET"] windows-949,utf-8;q=0.7,*;q=0.3
_SERVER["HTTP_IF_NONE_MATCH"] "15825f-14-46eb073fb6f80"
_SERVER["HTTP_IF_MODIFIED_SINCE"] Tue, 14 Jul 2009 20:40:46 GMT
_SERVER["PATH"] /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
_SERVER["SERVER_SIGNATURE"] no value
_SERVER["SERVER_SOFTWARE"] Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.9
_SERVER["SERVER_NAME"] 192.168.10.132
_SERVER["SERVER_ADDR"] 192.168.10.132
_SERVER["SERVER_PORT"] 80
_SERVER["REMOTE_ADDR"] 192.168.10.102
_SERVER["DOCUMENT_ROOT"] /usr/local/httpd/htdocs
_SERVER["SERVER_ADMIN"] you@example.com
_SERVER["SCRIPT_FILENAME"] /usr/local/httpd/htdocs/test.php
_SERVER["REMOTE_PORT"] 1126
_SERVER["GATEWAY_INTERFACE"] CGI/1.1
_SERVER["SERVER_PROTOCOL"] HTTP/1.1
_SERVER["REQUEST_METHOD"] GET
_SERVER["QUERY_STRING"] no value
_SERVER["REQUEST_URI"] /test.php
_SERVER["SCRIPT_NAME"] /test.php
_SERVER["PHP_SELF"] /test.php
_SERVER["REQUEST_TIME"] 1247604276
_SERVER["argv"]
Array
(
)
_SERVER["argc"] 0
_ENV["HOSTNAME"] akas.com
_ENV["SHELL"] /bin/bash
_ENV["TERM"] xterm
_ENV["HISTSIZE"] 1000
_ENV["USER"] root
_ENV["LS_COLORS"] no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35:
_ENV["MAIL"] /var/spool/mail/root
_ENV["PATH"] /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
_ENV["INPUTRC"] /etc/inputrc
_ENV["PWD"] /root/Desktop/httpd-2.2.11
_ENV["LANG"] ko_KR.UTF-8
_ENV["SSH_ASKPASS"] /usr/libexec/openssh/gnome-ssh-askpass
_ENV["SHLVL"] 1
_ENV["HOME"] /root
_ENV["LOGNAME"] root
_ENV["CVS_RSH"] ssh
_ENV["LESSOPEN"] |/usr/bin/lesspipe.sh %s
_ENV["G_BROKEN_FILENAMES"] 1
_ENV["_"] /usr/local/httpd/bin/httpd
_ENV["OLDPWD"] /root/Desktop

PHP License

This program is free software; you can redistribute it and/or modify it under the terms of the PHP License as published by the PHP Group and included in the distribution in the file: LICENSE

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

If you did not receive a copy of the PHP license, or have any questions about PHP licensing, please contact license@php.net.


Oracle + MySQL + PostgreSQL 모두 PHP모듈로 연동됨.
다음 포스팅 Java, JSP, Apache-Tomcat 설치및 연동,
2009. 7. 15. 04:29

레드헷 계열 리눅스에서 MySQL설치


리눅스 DB설치 3번째 DB 포스팅으로 MySQL입니다.
MySQL은 그전에도 무들에 관한 포스팅을 써본적이 있고... 너무 많은 사람들이 애용하고 사용하는 DB이기 때문에 포스팅에 남길 글이 뭐 없네요.... 구색을 맞추기 위해..어차피 새 테스터 시스템을 만드는거니깐 그냥 자취만 남기는 포스팅을 합니다... 이렇게 포스팅을 남겨두면 나중에 시스템을 구성할때 너무나 편하답니다.

다운받는곳
 http://www.snowrice.com/?module=file&act=procFileDownload&file_srl=851&sid=d3755b335988fa2bf2f0465b97d6e6be

 [root@akas Desktop]# tar -xvf mysql-5.1.32.tar.gz
생략
mysql-5.1.32/plugin/fulltext/configure.in
mysql-5.1.32/configure.in
mysql-5.1.32/Makefile.in
[root@akas Desktop]# cd mysql-5.1.32

[root@akas mysql-5.1.32]# ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --with-charset=utf8 --with-mysql-user=mysql --sysconfdir=/etc --enable-thread-safe-client
생략
Remember to check the platform specific part of the reference manual for
hints about installing MySQL on your platform. Also have a look at the
files in the Docs directory.

Thank you for choosing MySQL!
[root@akas mysql-5.1.32]#make
생략
make[2]: Leaving directory `/root/Desktop/mysql-5.1.32/server-tools/instance-manager'
make[1]: Leaving directory `/root/Desktop/mysql-5.1.32/server-tools'
Making all in win
make[1]: Entering directory `/root/Desktop/mysql-5.1.32/win'
make[1]: `all'를 위해 할 일이 없습니다
make[1]: Leaving directory `/root/Desktop/mysql-5.1.32/win'
[root@akas mysql-5.1.32]#make install
생략
make[1]: Entering directory `/root/Desktop/mysql-5.1.32/win'
make[2]: Entering directory `/root/Desktop/mysql-5.1.32/win'
make[2]: `install-exec-am'를 위해 할 일이 없습니다
make[2]: `install-data-am'를 위해 할 일이 없습니다
make[2]: Leaving directory `/root/Desktop/mysql-5.1.32/win'
make[1]: Leaving directory `/root/Desktop/mysql-5.1.32/win'


컴파일끝... 세부설정 시작
DB생성..

 [root@akas mysql-5.1.32]# ls /usr/local/
bin  etc  games  include  lib  libexec  mysql  pgsql  sbin  share  src
[root@akas mysql-5.1.32]#  /usr/local/mysql/bin/mysql_install_db
Installing MySQL system tables...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/usr/local/mysql/bin/mysqladmin -u root password 'new-password'
/usr/local/mysql/bin/mysqladmin -u root -h akas.com password 'new-password'

Alternatively you can run:
/usr/local/mysql/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr/local/mysql ; /usr/local/mysql/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd /usr/local/mysql/mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/local/mysql/bin/mysqlbug script!

The latest information about MySQL is available at http://www.mysql.com/
Support MySQL by buying support/licenses from http://shop.mysql.com/


DB생성확인과 계정생성

 [root@akas mysql-5.1.32]# ls /usr/local/mysql/data
mysql  test
[root@akas mysql-5.1.32]# cat >> /etc/ld.so.conf
/usr/local/mysql/lib

[root@akas mysql-5.1.32]# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/local/mysql/lib

[root@akas mysql-5.1.32]# ldconfig
[root@akas mysql-5.1.32]# cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
[root@akas mysql-5.1.32]# groupadd mysql
[root@akas mysql-5.1.32]# adduser -M -c Mysql_server -d /usr/local/mysql -g mysql -s /sbin/nologin mysql
[root@akas mysql-5.1.32]# chown root.mysql -R /usr/local/mysql/
[root@akas mysql-5.1.32]# chown mysql.mysql -R /usr/local/mysql/data
[root@akas mysql-5.1.32]# cd /usr/local/mysql/bin


my.cnf오류처리

 [root@akas bin]# vi /etc/my.cnf
# Disable Federated by default
#skip-federated(주석처리)

데몬 실행 & 관리자 루트 비밀번호 생성
 [root@akas bin]# ./mysqld_safe --user=mysql &
[2] 26772
[root@akas bin]# 090715 04:34:38 mysqld_safe Logging to '/usr/local/mysql/data/akas.com.err'.
090715 04:34:38 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
[root@akas bin]# ./mysqladmin -uroot -p password 1234
Enter password:

설정끝 _ 부팅시 자동 로딩
 [root@akas bin]# vi /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local
/etc/init.d/oracle start
/etc/rc.d/init.d/postgresql start
/etc/local/mysql/bin/mysqld_safe --user=mysql &


노란색부분만 Ctrl+C Ctrl+V 끝남...

2009. 7. 15. 04:02

레드헷계열 리눅스에서 PostgreSQL의 설치


오라클을 설치한 김에 내친김에 PostgreSQL을 설치해보자.
다운받는곳 :
http://www.snowrice.com/freepds/1112
http://wwwmaster.postgresql.org/download/mirrors-ftp/source/v8.4.0/postgresql-8.4.0.tar.gz

PostgreSQL은 MySQL과 같이 오픈 RDBMS로서 안정성이 각광받고 있는 SQL입니다.
레드헷 배포판에서도 설치옵션이 들어있습니다.
안정성은 MySQL보다 뛰어나나 MySQL보다는 약간 느립니다.
그외 MySQL이 갖고 있지 않는 여러 장점의 기능들이 있지요..엔터프라이즈급 SQL에 준하는 쿼리체계와 안정성을 갖고 있는거라 하겠는데요..

그리고 표준SQL이라 할수 있는 ANSI SQL을 준수하려는 노력이 엿보이는 제품입니다.

각설하고 php,tomcat,java를 설치하기전에 Oracle , PostgreSQL , MySQL을 모두 설치해보는 포스팅을 합니다.
오라클에 이어 두번째 DB인 PostgreSQL입니다. 

다운을 받으면 아무 디렉토리에 옮겨서 압축을 풉니다.
[root@akas postgresql-8.4.0]# ./configure --prefix=/usr/local/pgsql --with-ldap --with-libxml --with-openssl --with-gnu-ld
생략
config.status: linking ./src/backend/port/tas/dummy.s to src/backend/port/tas.s
config.status: linking ./src/backend/port/dynloader/linux.c to src/backend/port/dynloader.c
config.status: linking ./src/backend/port/sysv_sema.c to src/backend/port/pg_sema.c
config.status: linking ./src/backend/port/sysv_shmem.c to src/backend/port/pg_shmem.c
config.status: linking ./src/backend/port/dynloader/linux.h to src/include/dynloader.h
config.status: linking ./src/include/port/linux.h to src/include/pg_config_os.h
config.status: linking ./src/makefiles/Makefile.linux to src/Makefile.port
[root@akas postgresql-8.4.0]#make
생략mkdir ./testtablespace
make[2]: Leaving directory `/root/Desktop/postgresql-8.4.0/src/test/regress'
make[1]: Leaving directory `/root/Desktop/postgresql-8.4.0/src'
make -C config all
make[1]: Entering directory `/root/Desktop/postgresql-8.4.0/config'
make[1]: `all'를 위해 할 일이 없습니다
make[1]: Leaving directory `/root/Desktop/postgresql-8.4.0/config'
All of PostgreSQL successfully made. Ready to install.
[root@akas postgresql-8.4.0]# make install
생략make[2]: Leaving directory `/root/Desktop/postgresql-8.4.0/src/test/regress'
make[1]: Leaving directory `/root/Desktop/postgresql-8.4.0/src'
make -C config install
make[1]: Entering directory `/root/Desktop/postgresql-8.4.0/config'
mkdir -p -- /usr/local/pgsql/lib/pgxs/config
/bin/sh ../config/install-sh -c -m 755 ./install-sh '/usr/local/pgsql/lib/pgxs/config/install-sh'
/bin/sh ../config/install-sh -c -m 755 ./mkinstalldirs '/usr/local/pgsql/lib/pgxs/config/mkinstalldirs'
make[1]: Leaving directory `/root/Desktop/postgresql-8.4.0/config'
PostgreSQL installation complete.

[root@akas postgresql-8.4.0]# ls /usr/local/
bin  etc  games  include  lib  libexec  pgsql  sbin  share  src

설치가 말끔히 끝났다.
이제 관리자 설정을 해주고 DB를 구동시켜보죠.

아래와 같이 관리자계정을 만들고 권한을 줍니다. DB관리자라서 .bash_profile옵션이 없기 때문에 프롬프트 정의가 없어집니다.

[root@akas postgresql-8.4.0]# cd /usr/local/pgsql/bin
[root@akas bin]# ls
clusterdb   createuser  dropuser  pg_config       pg_dump       pg_restore  psql
createdb    dropdb      ecpg      pg_controldata  pg_dumpall    postgres    reindexdb
createlang  droplang    initdb    pg_ctl          pg_resetxlog  postmaster  vacuumdb
[root@akas bin]# adduser -d /usr/local/pgsql postgres
adduser: 경고: 홈디렉토리가 이미 존재합니다.
skel 디렉토리에서 파일을 복사하지 않습니다.
[root@akas bin]# ls /home/
bestakas  oracle
[root@akas bin]# mkdir /usr/local/pgsql/data
[root@akas bin]# chown -R postgres.postgres /usr/local/pgsql
[root@akas bin]#

posrgres로 접속합니다.
db를 초기화합니다.
 [root@akas bin]# su postgres
bash-3.2$ ls
clusterdb   createuser  dropuser  pg_config       pg_dump       pg_restore  psql
createdb    dropdb      ecpg      pg_controldata  pg_dumpall    postgres    reindexdb
createlang  droplang    initdb    pg_ctl          pg_resetxlog  postmaster  vacuumdb
bash-3.2$ pwd
/usr/local/pgsql/bin
bash-3.2$ ./initdb /usr/local/pgsql/data
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale ko_KR.UTF-8.
The default database encoding has accordingly been set to UTF8.
initdb: could not find suitable text search configuration for locale ko_KR.UTF-8
The default text search configuration will be set to "simple".

fixing permissions on existing directory /usr/local/pgsql/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 32MB
creating configuration files ... ok
creating template1 database in /usr/local/pgsql/data/base/1 ... ok
initializing pg_authid ... ok
initializing dependencies ... ok
creating system views ... ok
loading system objects' descriptions ... ok
creating conversions ... ok
creating dictionaries ... ok
setting privileges on built-in objects ... ok
creating information schema ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
copying template1 to postgres ... ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the -A option the
next time you run initdb.

Success. You can now start the database server using:

    ./postgres -D /usr/local/pgsql/data
or
    ./pg_ctl -D /usr/local/pgsql/data -l logfile start


PostgreSQL를 구동합니다. MySQL과 비슷한설정입니다.

 bash-3.2$ ./postmaster -D /usr/local/pgsql/data &
[1] 17637
bash-3.2$ LOG:  database system was shut down at 2009-07-15 03:08:57 KST
LOG:  autovacuum launcher started
LOG:  database system is ready to accept connections

SQL데몬이 정상적으로 가동된것을 알수있습니다.

 bash-3.2$ ps ax | grep post
17494 pts/1    S      0:00 su postgres
17637 pts/1    S      0:00 ./postmaster -D /usr/local/pgsql/data
17639 ?        Ss     0:00 postgres: writer process
17640 ?        Ss     0:00 postgres: wal writer process
17641 ?        Rs     0:00 postgres: autovacuum launcher process
17642 ?        Ss     0:00 postgres: stats collector process
17678 pts/1    R+     0:00 grep post

관리자에게 DB password를 줍니다.
 bash-3.2$ ./psql template1
psql (8.4.0)
Type "help" for help.

template1=# alter user postgres with password '1234;
ALTER ROLE
template1=# select * from pg_user;
 usename  | usesysid | usecreatedb | usesuper | usecatupd |  passwd  | valuntil | useconfig
----------+----------+-------------+----------+-----------+----------+----------+-----------
 postgres |       10 | t           | t        | t         | ******** |          |
(1 row)

/usr/local/pgsql/data/pg_hba.conf를 수정합니다. trust된 항목을 아래와 같이 password로 바꾸어줍니다.

 bash-3.2$ vi pg_hba.conf
# "local" is for Unix domain socket connections only
local   all         all                               password
# IPv4 local connections:
host    all         all         127.0.0.1/32          password
# IPv6 local connections:
host    all         all         ::1/128               password

PostgreSQL을 재가동합니다.
bash-3.2$ pwd
/usr/local/pgsql
bash-3.2$ cd bin
bash-3.2$ ./pg_ctl restart -D /usr/local/pgsql/data
LOG:  received smart shutdown request
LOG:  autovacuum launcher shutting down
LOG:  shutting down
waiting for server to shut down....LOG:  database system is shut down
 done
server stopped
server starting
[1]+  Done                    ./postmaster -D /usr/local/pgsql/data
bash-3.2$ LOG:  database system was shut down at 2009-07-15 03:24:38 KST
LOG:  autovacuum launcher started
LOG:  database system is ready to accept connections

관리자로 template1 DB를 접속하니 Password를 물어봅니다.

 bash-3.2$ ./psql template1
Password:
psql (8.4.0)
Type "help" for help.

template1=# \q


모든 설정이 끝났습니다.

이제 부팅시 자동으로 로드되게 하고, 루트계정으로 가동 및 중지, 재가동이 가능한 스크립트를 작성합시다.
다시 루트로 돌아와 아래와 같은 스크립트를 만들어줍니다.

[root@localhost pgsql]# vi /etc/rc.d/init.d/postgresql
#!/bin/sh
 
# PostgreSQL START/STOP Script
 
SERVER=/usr/local/pgsql/bin/postmaster
PGCTL=/usr/local/pgsql/bin/pg_ctl
PGDATA=/usr/local/pgsql/data
OPTIONS=-i
LOGFILE=/usr/local/pgsql/data/postmaster.log
 
case "$1" in
    start)
        echo -n "Starting PostgreSQL..."
        su -l postgres -c "nohup $SERVER $OPTIONS -D $PGDATA >> $LOGFILE 2>&1 &"
        ;; 
    stop)
        echo -n"Stopping PostgreSQL..."
        su -l postgres -c "$PGCTL -D $PGDATA stop"
        ;; 
    *) 
        echo "Usage: $0 {start|stop}"
        exit 1
        ;; 
esac
exit 0

스크립트 실행권한을 만듭니다.

 [root@localhost pgsql]# chmod 755 /etc/rc.d/init.d/postgresql
[root@akas ~]# ls -la /etc/rc.d/init.d/postgresql
-rwxr-xr-x 1 root root 566  7월 15 03:44 /etc/rc.d/init.d/postgresql

스크립트를 이용하여 stop명령과 start명령을 내려봅니다. OK입니다.

[root@akas ~]# /etc/rc.d/init.d/postgresql stop
-nStopping PostgreSQL...
LOG:  received smart shutdown request
LOG:  autovacuum launcher shutting down
LOG:  shutting down
waiting for server to shut down....LOG:  database system is shut down
 done
server stopped
[root@akas ~]# /etc/rc.d/init.d/postgresql start
Starting PostgreSQL...[root@akas ~]#

오라클과 같이 /etc/rc.local에 등록하여, 부팅시 가동되게 만들어주면 됩니다.

[root@akas ~]# vi /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local
/etc/init.d/oracle start
/etc/rc.d/init.d/postgresql start

2009. 7. 15. 02:08

레드헷 리눅스에서의 오라클의 자동 시동


앞전의 포스팅에서 CentOS에서 오라클을 설치해봤다.
그럼 이제는 서버답게 만드는 작업을 해야겠다. 우선 오라클의 시동은 어떻게 해야할까..

login as: oracle
oracle@192.168.10.132's password:
Last login: Tue Jul 14 20:28:38 2009
[oracle@localhost ~]$ lsnrctl start

LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 15-JUL-2009 01:05:16

Copyright (c) 1991, 2007, Oracle.  All rights reserved.

Starting /home/oracle/oracle11/product/11.1.0/db_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 11.1.0.6.0 - Production
System parameter file is /home/oracle/oracle11/product/11.1.0/db_1/network/admin/listener.ora
Log messages written to /home/oracle/oracle11/diag/tnslsnr/localhost/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.1.0.6.0 - Production

Start Date                15-JUL-2009 01:05:18
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /home/oracle/oracle11/product/11.1.0/db_1/network/admin/listener.ora
Listener Log File         /home/oracle/oracle11/diag/tnslsnr/localhost/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1521)))
The listener supports no services
The command completed successfully
[oracle@localhost ~]$


가장 간단히 오라클 계정으로 들어가 lsnrctl start해주면 된다.

하지만 더욱 root계정으로 간단히 제어하고 싶다면..

[root@localhost ~]# vi /etc/init.d/oracle
#!/bin/bash
ORA_HOME="/home/oracle/oracle11/product/11.1.0/db_1"
ORA_OWNER="oracle"

if [ ! -f $ORA_HOME/bin/dbstart -o ! -d $ORA_HOME ]
then
        echo "Oracle Startup: failed"
        exit 1
fi

case "$1" in
start)
        echo -n "Oracle Start: "
        su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start"
        su - $ORA_OWNER -c $ORA_HOME/bin/dbstart
        touch /var/lock/subsys/oracle
        echo "OK"
        ;;
stop)
        echo -n "ORACLE Shutdown: "
        su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop"
        su - $ORA_OWNER -c $ORA_HOME/bin/dbshut
        rm -f /var/lock/subsys/oracle
        echo "OK"
        ;;
restart)
        $0 stop
        $0 start
        ;;
*)
        echo "Usage: $0 start|stop|restart"
        exit 1
esac
exit 0
[root@localhost ~]#



/etc/init.d/oracle start | stop | restart 명령을 쓸수 있겠끔 위와 같이 스크립트 만들어준다.

[root@localhost ~]# vi /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local
/etc/init.d/oracle start
[root@localhost ~]#


시스템 부팅과 함께 다시 오라클이 구동될수 있도록 /etc/rc.local에 위에서 작성한 스크립트 파일을 삽입한다.


[root@localhost ~]# shutdown -r now

Broadcast message from root (pts/1) (Wed Jul 15 01:59:35 2009):

The system is going down for reboot NOW!
[root@localhost ~]#
login as: bestakas
bestakas@192.168.10.132's password:
Last login: Wed Jul 15 01:57:46 2009 from 192.168.10.102
[bestakas@localhost ~]$ su -
암호:
[root@localhost ~]# ps ax | grep LISTENER
 2602 ?        Ssl    0:00 /home/oracle/oracle11/product/11.1.0/db_1/bin/tnslsnr LISTENER -inherit
 3020 pts/1    S+     0:00 grep LISTENER
[root@localhost ~]#


부팅과 함께 자동으로 오라클이 구동되었다.


2009. 7. 14. 02:26

레드헷 계열 리눅스에서 오라클11설치하기

레드헷계열의 리눅스중 대표적인것이 엔터프라이즈와 CentOS, Fedora이다.
이 세개는 모습이나 쓰는방법이 거의 동일하다. 다만 엔터프라이즈는 돈을 내야 yum이라든지 기술적 지원을 받을수 있다. 돈을 내기 싫다면 안정버젼 엔터프라이즈의 클론 버젼인 CentOS를 사용하면 된다.

오라클은 왜 써야하는가? 하는 생각을 많이 해보았다.
우선 오라클을 써보지 않은 DB유져들은 취직이 힘들다는 점이다. 1980년대부터 서버용 DB를 선점해온 Oracle은 MS의 MSSQL의 어떠한 공격에도 임베디드시장에서의 1위자리를 내준적이 없다.

그만큼 많은 DB서버중 기업체에서 가장 널리 쓰인다고 말할수 있다. 이 말은 즉 오라클을 모르면 DB설계자로서 DBMS관리자로서 취직이 어렵다는 이야기가 된다.

우리가 많이 쓰는 MySQL은 접하기도 쉽고, 구성도 어떤 SQL보다 쉽다. 많은 프로젝트들이 MySQL로도 실현 가능하다. 하지만, MySQL을 이용하지 않고, 오라클만을 고집하며 DB를 구성하는 회사들이 많다.

뭔가 있어보이고, 뭔가 틀려보이는 착각때문일까? 아니면 트랜잭션에 롤백시스템..이라면서 거들먹 거리며 알아듣지도 못하는 영어를 써대며 오라클을 칭송하는 기존 관리자들의 자만심때문일까?

어쨋든, DB manager로서 반드시 오라클을 배워 차후의 프로젝트에서는 오라클을 이용한 DB구성을 해보자는 일념하에 이 포스팅을 시작한다.

오라클의 마지막버젼은 11g로서 오라클의 개발은 리눅스 엔터프라이즈 하에서 이루어진다고 한다.
그 소스들을 가지고 유닉스버젼과 윈도우즈버젼으로 재포팅한다고 하니..
아마도 오라클을 사용하기에 가장 좋은 배포본은 레드헷 계열인듯 싶다. 실제로 금융사나 대형 증권사같은 회사들은 Linux For SYSTEM Z하에서 오라클로 DB구성을 한다고 한다. (보진 못했지만)
돈이 왔다갔다 하는 시스템이니 안정성과 기능,보안에서는 오라클이 가장 알맞은 시스템인것만은 틀림없다.

잡소리는 때려치우고...

오라클은 리소스를 굉장히 많이 잡아먹는 DBMS이다. 최소 Require 물리적 메모리가 1기가에 달한다. 또한 스왑파일의 크기도 최소 1기가를 요구하니 실제적으로 실무에 사용하기 위해서는 적어도 오라클용으로 물리적 메모리로 2기가정도 되는 메모리를 활당해야 겠다. 테스트하는 vmware용 레드헷머신에 과감히 1기가의 메모리를 활당하고 테스트 머신이라 할지라도 disk durid에서 스왑파일로 2기가의 용량을 주기로 하였다.

80기가 하드 노트북에 20기가를 테스트용 리눅스머신에 하드디스크를 활당하고 2기가 램 윈도우시스템에 vmware에 1기가램을 활당하면 상당히 버벅거림을 느낄정도가 되겠다.

그래서 이번 포스팅에서는 가급적 스샷을 자제한다. 난 시스템이 느려지면 작업을 안하는 스타일이라..
기획하고 있는 실무서버에는 4기가 램에 2테라의 하드를 붙일 생각이다. DB로 구성한 스토리지 데이타서버를 만들어 네트워크상에서 언제든 불러올수 있어야 하니..

OS환경 : CentOS 5.3
물리적메모리 : 1G
스왑 : 2기가
하드디스크 : 20기가
오라클버젼 : oracle 11g for linux(i386)
오라클 설치에 필요한 용량 : 3.5기가 이상..
download : 오라클홈페이지 ( 상당히 느리다. 알아서 딴곳에서 받자.)


우선 시스템의 용량에 4기가정도 되는 용량이 있어야 한다. df명령으로 확인하여 보자

[root@localhost ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/hda1              18G  4.8G   12G  29% /
tmpfs                 506M     0  506M   0% /dev/shm
[root@localhost ~]#

용량은 충분하다. 오라클사이트에 가서 다운을 받자.
http://www.oracle.com/technology/software/products/database/oracle11g/111060_linuxsoft.html

그런데 여기서 다운받으면 우리나라의 경우 약 14시간정도 걸린다. 아마도 웹브라우져가 도중에 서버릴것이다. 다운로드 속도가 매우 느리다.  무료로 다운받게한 오라클이지만, 아마도 자신들의 웹사이트외의 업로드는 금지시켜놓은듯 하다. 북한이나 이란등의 미국의 적대국가에서 강력하게 사용할수 없다고 전제도 하고 있는것보면 무상이지만, 마음대로 자료실에 올리면 안되는듯 싶다. 알아서 찾자.

*오라클은 무료소프트웨어가 아니다. 다만 개인이 학습용이나 개발용으로 다운받아 사용하는것은 허용된다. 이말은 실무에 있어서는 반드시 오라클 라이센스를 취득해야 한다는 말이다.


<다운받은 오라클 리눅스 i386용> 

이제 의존성을 체크하자. 오라클을 설치하기 위한 의존성 프로그램들은 아래와 같다. 일일히 체크할것 없이 yum으로 한번에 설치하자.

* 의존성 체크
binutils-2.15.92.0.2-10
compat-db-4.1.25-9
control-center-2.8.0-12
gcc-3.4.3-9
gcc-c++-3.4.3-9
glibc-2.3.4-2
glibc-common-2.3.4-2
gnome-libs-1.4.1.2.90-44.1
libstdc++-3.4.3-9
libstdc++-devel-3.4.3-9
make-3.80-5
pdksh-5.2.14-30
sysstat-5.0.5-1
xscreensaver-4.18-5

yum -y install binutils compat-db control-center gcc glibc gcc-c++ glibc-common gnome-libs libstdc++ libstdc++-devel make pdksh sysstat xscreensaver

[root@localhost ~]# yum -y install binutils compat-db control-center gcc glibc gcc-c++ glibc-common gn                                                                                                          ome-libs libstdc++ libstdc++-devel make pdksh sysstat xscreensaver
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * extras: centos.mirror.cdnetworks.com
 * updates: centos.mirror.cdnetworks.com
 * base: centos.mirror.cdnetworks.com
 * addons: centos.mirror.cdnetworks.com
Setting up Install Process
Parsing package install arguments
Package binutils-2.17.50.0.6-9.el5.i386 already installed and latest version
Package 1:control-center-2.16.0-16.el5.i386 already installed and latest version
Package gcc-4.1.2-44.el5.i386 already installed and latest version
Package glibc-2.5-34.i686 already installed and latest version
Package gcc-c++-4.1.2-44.el5.i386 already installed and latest version
Package glibc-common-2.5-34.i386 already installed and latest version
No package gnome-libs available.
Package libstdc++-4.1.2-44.el5.i386 already installed and latest version
Package libstdc++-devel-4.1.2-44.el5.i386 already installed and latest version
Package 1:make-3.81-3.el5.i386 already installed and latest version
No package pdksh available.
Package xscreensaver is obsoleted by gnome-screensaver, trying to install gnome-screensaver-2.16.1-8.el5.i386 instead
Package gnome-screensaver-2.16.1-8.el5.i386 already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package sysstat.i386 0:7.0.2-3.el5 set to be updated
---> Package compat-db.i386 0:4.2.52-5.1 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================================
 Package                  Arch                Version                       Repository           Size
======================================================================================================
Installing:
 compat-db                i386                4.2.52-5.1                    base                1.7 M
 sysstat                  i386                7.0.2-3.el5                   base                169 k

Transaction Summary
======================================================================================================
Install      2 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 1.8 M
Downloading Packages:
(1/2): sysstat-7.0.2-3.el5.i386.rpm                                                                                                                                                      | 169 kB     00:00
(2/2): compat-db-4.2.52-5.1.i386.rpm                                                                                                                                                     | 1.7 MB     00:00
----------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                           2.8 MB/s | 1.8 MB     00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : sysstat                                           [1/2]
  Installing     : compat-db                                         [2/2]

Installed: compat-db.i386 0:4.2.52-5.1 sysstat.i386 0:7.0.2-3.el5
Complete!


배포본을 최신버젼을 설치하였더니, 없는 프로그램의 두개이다.

1. 오라클 설치용 계정만들기

[root@localhost ~]# groupadd -g 5000 dba
[root@localhost ~]# useradd -g dba oracle
[root@localhost ~]# passwd oracle
Changing password for user oracle.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]# mkdir -p /home/oracle/oracle11
[root@localhost ~]# chmod 775 -R /home/oracle/oracle11
[root@localhost ~]# chown oracle:dba /home/oracle/


2. 커널 매개변수를 변경한다.

[root@localhost backup]# sysctl -a | grep kernel.shmall
kernel.shmall = 2097152
[root@localhost backup]# sysctl -a | grep kernel.shmmax
kernel.shmmax = 33554432
[root@localhost backup]# sysctl -a | grep kernel.shmmni
kernel.shmmni = 4096
[root@localhost backup]# sysctl -a | grep kernel.sem
kernel.sem = 250        32000   32      128
[root@localhost backup]# sysctl -a | grep fs.file-max
fs.file-max = 24589
[root@localhost backup]# sysctl -a | grep net.ipv4.ip_local_port_range
net.ipv4.ip_local_port_range = 32768    61000
[root@localhost backup]# sysctl -a | grep kernel.msgmni
kernel.msgmni = 16
[root@localhost backup]# sysctl -a | grep kernel.msgmax
kernel.msgmax = 8192
[root@localhost backup]# sysctl -a | grep kernel.msgmnb
kernel.msgmnb = 16384

 /etc/sysctl.conf

# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
# sysctl.conf(5) for more details.

# Controls IP packet forwarding
net.ipv4.ip_forward = 0

# Controls source route verification
net.ipv4.conf.default.rp_filter = 1

# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0

# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0

# Controls whether core dumps will append the PID to the core filename
# Useful for debugging multi-threaded applications
kernel.core_uses_pid = 1

# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1

# Controls the maximum size of a message, in bytes
kernel.msgmnb = 65536

# Controls the default maxmimum size of a mesage queue
kernel.msgmax = 65536

# Controls the maximum shared segment size, in bytes
kernel.shmmax = 536870912

# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 268435456

#For Installing Oracle Setting
kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 65536

net.ipv4.ip_local_port_range = 1024 65000

net.core.rmem_default=4194304
net.core.wmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_max=262144


커널 매개변수 변경을 위하여 vi /etc/sysctl.conf를 실행하여 위와 같이 편집한다.

변경후 아래와 같이 실행
[root@localhost ~]# /sbin/sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 536870912
kernel.shmall = 268435456
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 4194304
net.core.wmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_max = 262144



3. /etc/security/limits.conf변경

Linux 계정 별로 실행되는 프로세스와 열린 파일 수를 제한해야 한다.. /etc/security/limits.conf 를 열고 아래의 내용과 같이 추가한다.

#<domain>      <type>  <item>         <value>
#
  oracle        soft    nproc          2047
  oracle        hard    nproc          16384
  oracle        soft    nofile         1024
  oracle        hard    nofile         65536

#*               soft    core            0
#*               hard    rss             10000


4. /etc/pam.d/login변경
[root@localhost ~]# vi /etc/pam.d/login
#%PAM-1.0
auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
auth       include      system-auth
account    required     pam_nologin.so
account    include      system-auth
password   include      system-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
session    optional     pam_console.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open
session    required     pam_namespace.so
session    optional     pam_keyinit.so force revoke
session    include      system-auth
session    optional     pam_ck_connector.so

session    required    /lib/security/pam_limits.so
황색 마크 부분을 추가한다.

5. /home/oracle/.bash_profile의 변경
[root@localhost ~]# vi /home/oracle/.bash_profile
export ORACLE_BASE=/home/oracle/oracle11
export ORACLE_SID=ORCL
export ORACLE_HOME=$ORACLE_BASE/product/11.1.0/db_1
export PATH=$PATH:$ORACLE_HOME/bin
export DISPLAY=:0.

파란마크 부분을 추가한다.

6. 압축을 푼다.
루트 계정으로 받은 오라클 db를 오라클 계정으로 이동하여 퍼미션을 오라클로 변경하고 압축을 풀어준다.
[root@localhost ~]# cd /root/Desktop/
[root@localhost Desktop]# ls
gnome-terminal.desktop  hadjaha-009b9e425c.desktop  linux_11gR1_database.zip
[root@localhost Desktop]# mv linux_11gR1_database.zip /home/oracle/
[root@localhost Desktop]# ls -la /home/oracle/
합계 1803100
drwx------ 4 oracle dba        4096  7월 14 20:12 .
drwxr-xr-x 4 root   root       4096  7월 14 19:44 ..
-rw-r--r-- 1 oracle dba          33  7월 14 19:44 .bash_logout
-rw-r--r-- 1 oracle dba         346  7월 14 20:10 .bash_profile
-rw-r--r-- 1 oracle dba         124  7월 14 19:44 .bashrc
drwxr-xr-x 4 oracle dba        4096  7월 14 19:44 .mozilla
-rw-r--r-- 1 root   root 1844533232  7월 14 19:26 linux_11gR1_database.zip
drwxrwxr-x 2 root   root       4096  7월 14 19:45 oracle11
[root@localhost Desktop]# chown oracle.dba /home/oracle/linux_11gR1_database.zip
합계 1803100
drwx------ 4 oracle dba        4096  7월 14 20:12 .
drwxr-xr-x 4 root   root       4096  7월 14 19:44 ..
-rw-r--r-- 1 oracle dba          33  7월 14 19:44 .bash_logout
-rw-r--r-- 1 oracle dba         346  7월 14 20:10 .bash_profile
-rw-r--r-- 1 oracle dba         124  7월 14 19:44 .bashrc
drwxr-xr-x 4 oracle dba        4096  7월 14 19:44 .mozilla
-rw-r--r-- 1 oracle dba  1844533232  7월 14 19:26 linux_11gR1_database.zip
drwxrwxr-x 2 root   root       4096  7월 14 19:45 oracle11
[root@localhost Desktop]#


사용자 변경과 압축풀기
[root@localhost Desktop]# su oracle
[oracle@localhost Desktop]$ cd [oracle@localhost ~]$ ls
linux_11gR1_database.zip  oracle11
[oracle@localhost ~]$ unzip linux_11gR1_database.zip/home/oracle/
[oracle@localhost ~]$ ls
database  linux_11gR1_database.zip  oracle11
[oracle@localhost ~]$ cd database

7. 설치시작
Xwindows
로 oracle계정으로  다시 로그인한다.
설치시에 xWindows가 한글세팅이라면, 오라클은 EUC_KR용 설치화면을 뿌리기 때문에 인코딩이 깨져나오는 현상이 발생할것이다.
이럴경우는 당황하지 말고 영문으로 설치하도록 한다.
콘솔상에서 export LANG=C 를 입력하면 인스턴트 영문모드가 된다.
[oracle@localhost database]$cd /home/oracle/database
[oracle@localhost database]$ export LANG=c
[oracle@localhost database]$ ./runInstaller
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 80 MB.   Actual 9276 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 2047 MB    Passed
Checking monitor: must be configured to display at least 256 colors.    Actual 16777216    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2009-07-14_08-44-33PM. Please wait ...[oracle@localhost database]$
[oracle@localhost database]$


설치화면이 시작된다.


<맨처음 화면 - Gimp에서 편집된 이미지임..김프도 쓸만하군>


Oracle Basic Location : /home/oracle
Oracle Home Location : /home/oracle/prdouct/11.1.0/db_1
UNIX DBA Group : dba
를 입력한다. 입력하지 않아도 기본으로 나올것이다.
여기서 Location에 Oracle의 권한이 없는 디렉토리를 선택하면 아래와 같은 에러메세지가 나오므로, 로케이션은 앞의 .bash_profile에서 설정한대로 해주어야 한다.


Advanced Install버튼을 그리고 넥스트를 선택하자.



Inventory Directory가 /home/oracle/oracle11/oralInventory로 변경하고 Next하자.
만약 퍼미션 에러가 난다면 터미날에서 루트로 접속하여 oracle11디렉토리를 oracle.dba에게 준다.


언어를 추가한다.
Enterprise Edition - product Language

한국어와 쓰일 일본어를 정도를 영어와 함께 추가한다.


Install Location을 변경하는 부분이다. .bash_profile에서 설정해준것이 나올것이다. Next!

check mode- 시스템이 사양이 올바른가에 대한 체크를 한다. 설치에서 Warning 1개와 Not Excute부분이 1개 나왔다.  사설ip를 쓰는것이 문제가 되었다. 이것은 /etc/hosts부분에 사설ip domain명 별칭 등을 넣어서 해결할수 있다.

Create Database항목을 체크한후 Next

Select General Purpose


데이타베이스 이름과 SID값을 위와 같이 입력

메모리와 인코딩과 샘플 스키마등에 대해서 설정하여 준다.
메모리는 테스트 서버이니 디폴트인 403MB으로 잡았다.
인코딩은 UTF-8로 잡아줬다.
나머지는 디폴트로 NEXT

Management Option 별다른 체크없이 Next

file System  - /home/oracle/oracle11/oradata

Do not Enable Automated backups 자동백업 하지 않는다에 체크..

패스워드는 실무에서는 별도로 각기 관리 비번을 준다.
구찮으므로 모두 통일된 패스워드 발급

디폴트된 값으로 Next
이후 오라클에 사용등록하라는 메세지가 나오는데 등록안할것이므로 Next
설치 환경에 대한 설정을 보여준다. Summary- Next Installing



이제 설치모드 돌입.. 꽤 시간이 흘러야 다음 장면을 볼수 있다.

설치가 다 끝나면 다음과 같은 메세지가 출력된다.
터미널을 열어 루트로 로그인하여 위의 sh파일들을 실행하자. 실행후 OK버튼


설치가 끝이 났다. 이제 오라클이 제대로 제대로 설치되어 움직이는지 확인하여 보자.

[oracle@localhost bin]$ ./lsnrctl start

LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 15-JUL-2009 00:08:15

Copyright (c) 1991, 2007, Oracle.  All rights reserved.

TNS-01106: Listener using listener name LISTENER has already been started
[oracle@localhost bin]$ ./lsnrctl status

LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 15-JUL-2009 00:08:58

Copyright (c) 1991, 2007, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.1.0.6.0 - Production
Start Date                14-JUL-2009 22:09:41
Uptime                    0 days 1 hr. 59 min. 46 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /home/oracle/oracle11/product/11.1.0/db_1/network/admin/listener.ora
Listener Log File         /home/oracle/oracle11/diag/tnslsnr/localhost/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1521)))
Services Summary...
Service "ORACLE11" has 1 instance(s).
  Instance "ORCL", status READY, has 1 handler(s) for this service...
Service "ORACLE11_XPT" has 1 instance(s).
  Instance "ORCL", status READY, has 1 handler(s) for this service...
Service "ORCLXDB" has 1 instance(s).
  Instance "ORCL", status READY, has 1 handler(s) for this service...
The command completed successfully

[oracle@localhost bin]$ sqlplus /nolog

SQL*Plus: Release 11.1.0.6.0 - Production on Wed Jul 15 00:13:47 2009

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

SQL> connect orcl as sysdba
Enter password:
Connected.

설치 성공 이제 php에서 오라클을 쓸수있게 하는 포스팅과 연동법에 대해 알아보고, jsp에서도 오라클을 다뤄봐야 겠다.

2009. 6. 18. 13:57

페도라코어에서 putty 한글 사용법


리눅스를 서버로 사용하고, 윈도우즈를 클라이언트로 사용하다 보면 많은 이들이 한글 사용에 대한 불만이 많을 것이다. 웹호스팅을 받는 사람들도, vi를 사용하면 서버의 파일들을 바로 즉시 해결하여, 서버로부터의 결과물을 얻어볼수 있는데, 한글이 정확히 구현되지 않은 서버와 윈도우즈 putty간의 통신에서 한글을 포기하고, 클라이언트에서 한글파일을 작성한후 FTP를 통해, 전송후 결과물을 얻어보는 의도하지 않는 행위를 하는 분들도 있을것이다.

이를 해결하는 가장 쉬운점은, 서버의 한글인코딩과 putty의 한글인코딩을 맞춰서 사용하는것면 바로 해결된다.

리눅스를 한글사용으로 설치하면 시스템 인코딩이 기본으로 UTF8 코드를 사용하므로, putty에서도 UTF8로 세팅하면, 해결되지만, 많은 웹호스팅업체들이 기존의 고객들과의 호환성을 위하여 아직, EUC_KR로 서비스 하는 업체들이 많다.

EUC_KR를 사용하는 웹호스팅은 putty기본 세팅으로 사용하면 되며, 자신이 만든 웹서버를 운영하는 사람은 이와 같이 시스템을 설정하자.

우선 루트로 접속한후...

Last login: Thu Jun 18 13:11:49 2009 from 121.171.252.4
[daon@localhost ~]$ su -
Password:
[root@localhost ~]# cd /etc/sysconfig
[root@localhost sysconfig]# vi i18n
LANG="ko_KR.UTF-8"
SUPPORTED="ko_KR.UTF-8:ko_KR:Ko:en_US.UTF-8:en_US:en"
SYSFONT="latarcyheb-sun16"
SYSFONTACM="8859-15"


위의 사항을 /etc/sysconfig/i18n에 저장한다.(물론 다른 언어셋 설정은 주석처리하거나 삭제한다...)

그후 사용자들의 각각 계정의 .bash_profile에 언어셋을 지정해주면 된다.(/etc/skel/.bash_profile)에 저장하면 새로운 계정을 생성할때마다, 동일하게 세팅되므로, 한가지 팁이 된다.)
[daon@localhost ~]$ vi .bash_profile
export LANG="ko_KR.UTF-8"
export LC_ALL="ko_KR.UTF-8"

위의 내용들을 첨가하거나 수정하자...

그런후에 putty의 세팅법




putty의 설정에서 문자코드를 UTF8로 설정후 아래와 같이 저장해서 항상 같은 설정의 세션을 열어주면 편리하게 사용할수 있다.


이제, putty로 문서작성을 해보자. 사용기능은 매우 막강하나 한글코드때문에 에러점이 많았던 리눅스 대표 유틸 mc로서 문서작성을 해본 그림이다.


이제 서버에서 직접 작업하고 바로 바로, 결과물을 볼수 있다. 서버와 클라이언트간의 작업환경의 Gap을 없애자!!
2009. 5. 31. 05:17

Linux lastlog


[root@localhost transmission-1.61]# lastlog
Username         Port     From             Latest
root             pts/1                   Mon May 18 12:45:08 +0900 2009
bin                                        **Never logged in**
daemon                                     **Never logged in**
adm                                        **Never logged in**
lp                                         **Never logged in**
sync                                       **Never logged in**
shutdown                                   **Never logged in**
halt                                       **Never logged in**
mail                                       **Never logged in**
news                                       **Never logged in**
uucp                                       **Never logged in**
operator                                   **Never logged in**
games                                      **Never logged in**
gopher                                     **Never logged in**
ftp                                        **Never logged in**
nobody                                     **Never logged in**
rpm                                        **Never logged in**
dbus                                       **Never logged in**
avahi                                      **Never logged in**
rpc                                        **Never logged in**
mailnull                                   **Never logged in**
smmsp                                      **Never logged in**
nscd                                       **Never logged in**
vcsa                                       **Never logged in**
haldaemon                                  **Never logged in**
rpcuser                                    **Never logged in**
sshd                                       **Never logged in**
netdump                                    **Never logged in**
pcap                                       **Never logged in**
xfs                                        **Never logged in**
beaglidx                                   **Never logged in**
named                                      **Never logged in**
ntp                                        **Never logged in**
apache                                     **Never logged in**
gdm                                        **Never logged in**
tomcat                                     **Never logged in**
bestakas         pts/3                  Sun May 31 03:48:04 +0900 2009
mysql                                      **Never logged in**
blog                                       **Never logged in**
moodle                                     **Never logged in**
moo                                        **Never logged in**
echangjun                                  **Never logged in**
communityart     pts/2                 Sun May 24 15:39:46 +0900 2009
moo                                          **Never logged in**
css              pts/2    85.186.129.154   Sun May 31 03:21:12 +0900 2009
saeumart         pts/3                    Wed May 27 06:25:23 +0900 2009
danpungsori                                Wed May 27 08:41:44 +0900 2009
colsu              pts/2                     Sun May 24 15:39:46 +0900 2009
fridayman       pts/2                     Sun May 24 11:10:13 +0900 2009

내가 지인들끼리만 쓰는 웹서버중 하나가 갑자기 속도가 현저히 떨어진다는 연락을 받았다. 연락받은 시각이 2009년 5월 31일 새벽 3시 30분이었다. lastllog 명령으로 최근 사용자들이 로그인한 계정들을 보았다.

CSS를 테스트하느라 임시로 만들어놓은 CSS계정으로 알수없는 IP로 약 9분전에 들어왔음을 알수있었다. 85.186.129.154 어디로부터의 IP인가?

지인들끼리 쓰는 서버라, 그다지 보안을 염두해두지 않았다. 어디로부터 온 IP인가 슬슬 재밌는 작업이 시작되기 시작했다.

[root@localhost transmission-1.61]# whois 85.186.129.154
[Querying whois.ripe.net]
[whois.ripe.net]
% This is the RIPE Whois query server #3.
% The objects are in RPSL format.
%
% The RIPE Database is subject to Terms and Conditions.
% See
http://www.ripe.net/db/support/db-terms-conditions.pdf

% Note: This output has been filtered.
%       To receive output for a database update, use the "-B" flag.

% Information related to '85.186.129.0 - 85.186.129.255'

inetnum:        85.186.129.0 - 85.186.129.255
netname:        ASTRAL-PH-DOCSIS-6
descr:          ASTRAL Ploiesti Docsis 6
country:        RO
admin-c:        AH1598-RIPE
tech-c:         CN3389-RIPE
tech-c:         AM15077-RIPE
tech-c:         TRI1-RIPE
tech-c:         CM8934-RIPE
remarks:        INFRA-AW
status:         ASSIGNED PA
mnt-by:         ASTRALTELECOM-MNT
mnt-lower:      ASTRALTELECOM-MNT
mnt-routes:     ASTRALTELECOM-MNT
source:         RIPE # Filtered

person:         Astral Telecom Hostmaster
address:        UPC Romania Srl
address:        ROMANIA
phone:          +40 264 414688
fax-no:         +40 264 414687
e-mail:        
lir@astral.ro
nic-hdl:        AH1598-RIPE
remarks:        ***************************************
remarks:        *  for abuse please use
abuse@upc.ro  *
remarks:        ***************************************
mnt-by:         ASTRALTELECOM-MNT
source:         RIPE # Filtered

person:       Teodor Remus IACOB
address:      Astral Telecom SA
address:      Bd. Mihai Bravu nr. 223
address:      Complex Optidol, sector 3
address:      Bucharest - Romania
phone:        +40-1-3266196
fax-no:       +40-1-3266197
e-mail:      
theo@kappa.ro
nic-hdl:      TRI1-RIPE
mnt-by:       KAPPA-MNT
source:       RIPE # Filtered

person:       Alin Moldovan
address:      CODEC Electronic Products
address:      37, Decebal
address:      3400 Cluj-Napoca
address:      Romania
phone:        +40-264-432450
fax-no:       +40-264-418205
e-mail:      
alinux@codec.ro
nic-hdl:      AM15077-RIPE
mnt-by:       AS3233-MNT
source:       RIPE # Filtered

person:         Catalin Muresan
address:        UPC Romania
address:        str. Nordului, 62D
address:        Bucuresti, 104014
address:        Romania
phone:          +40-31-1018100
fax-no:         +40-31-1018101
e-mail:        
catalin.muresan@astral.ro
nic-hdl:        CM8934-RIPE
mnt-by:         ASTRALTELECOM-MNT
source:         RIPE # Filtered

person:         Camelia Nastase
address:        MediaSat S.A.
address:        Bld. Ferdinand, Nr. 99, Sector 2, Bucuresti
address:        Romania
mnt-by:         MEDIASAT-MNT
phone:          +40-31-8240635
e-mail:        
camelia.nastase@mediasat.ro
nic-hdl:        CN3389-RIPE
source:         RIPE # Filtered

% Information related to '85.186.0.0/16AS6746'

route:          85.186.0.0/16
descr:          UPC Romania Srl
origin:         AS6746
mnt-by:         ASTRALTELECOM-MNT
source:         RIPE # Filtered


멀리 동유럽 루마니아로부터의 접속이다. ^ ^ 헉... 저멀리 루마니아에서 어찌 공개되지도 않은 내서버에 접속될수 있는가...

우선 최근에 설치된 데몬과 프로그램을 알아보고  해당지역의 IP의 차단, 각포트들의 보안설정부터 들어가야 겠다.
이제부터 보안에 관한 포스팅을 해야겠다.


 

2009. 5. 30. 16:10

Webalizer의 설치


웹사이트를 운영하다보면, 누가 사이트에 왔다갔는지, 아니면 어느시간에 가장 많이 오는지, 몇명이나 왔다갔는지 , 어떤 정보를 찾아 여기 까지 왔는지 분석할 필요성이 있다.
 
또한 날이 갈수록 심해지는 웹사이트에 대한  공격 IP로부터 사이트를 보호하는것도 사이트 운영자들이 할일이다.

그럼, 이런한 웹사이트 방문자에 대한 분석은 어디서 하느냐....?

Apache는  방문자와 방문자가 지나간 흔적을 고스란히 기록하는 훌륭한 史官의 기능을 가지고 있다.

바로 apache 디렉토리에 존재하는 logs 디렉토리 아래에 있는 access_log가 방문자와 방문자의 기록을 남긴 파일이다. 하지만 이 log파일을 보고 분석하기란 매우 힘들다. 방문자가 두어 페이지를 방문하고 갔다고 하더라도, 콘솔상에 3~4페이지에 달하는 기록을 남기기 때문에 빈번히 일어나는 웹사이트의 방문자에 대한 기록을 이 로그파일로 정보를 얻기란 매우 힘들기 때문이다. 그러므로 , 이 로그파일들을 분석해서 사이트 운영자에게 보고하여 주는 프로그램이 필요한데 그것이 바로 오늘 포스팅의 주제 Webalizer이다.

Webalizer는 아래의 사이트에서 얻을수 있다.

http://www.snowrice.com/freepds/925 (본인이 운영하는 프리웨어 자료실이다.)

http://www.webalizer.org/download.html



의존성 :
zlib-devel
libpng-devel
gd-devel

*/배포본(FC9) 설치후 바로 APM을 소스 컴파일설치한후, yum으로 확인한 결과 gd-level만 설치되지 않았다.  

Package zlib-devel-1.2.3-18.fc9.i386 already installed and latest version
Package 2:libpng-devel-1.2.24-1.fc9.i386 already installed and latest version

Installed: gd-devel.i386 0:2.0.35-5.fc9
Dependency Installed: fontconfig-devel.i386 0:2.5.0-2.fc9 freetype-devel.i386 0:2.3.5-4.fc9 gd.i386 0:2.0.35-5.fc9 libX11-devel.i386 0:1.1.4-1.fc9 libXau-devel.i386 0:1.0.3-5.fc9 libXdmcp-devel.i386 0:1.0.2-5.fc9 libXpm-devel.i386 0:3.5.7-4.fc9 libjpeg-devel.i386 0:6b-41.fc9 libxcb-devel.i386 0:1.1-4.fc9 mesa-libGL-devel.i386 0:7.1-0.29.fc9 xorg-x11-proto-devel.noarch 0:7.3-12.fc9
Complete! */

우선 , yum이나 apt-get명령으로 위의 의존성 문제를 해결하자. (yum이나 apt로 수월하게 설치된다. yum이 불가능하다면 아래의 yum포스팅을 참조) 

 
[root@localhost download]# wget ftp://ftp.mrunix.net/pub/webalizer/webalizer-2.21-02-src.tgz
==> PASV ... done.    ==> RETR webalizer-2.21-02-src.tgz ... done.
Length: 536461 (524K)

100%[=====================================================================>] 536,461      104K/s   in 6.2s

2009-05-28 10:20:46 (85.1 KB/s) - `webalizer-2.21-02-src.tgz' saved [536461]

FINISHED --2009-05-28 10:20:46--
Downloaded: 2 files, 534K in 6.2s (86.4 KB/s)
[root@localhost download]# ls
index.html  webalizer-2.21-02-src.tgz

[root@localhost download]# tar -xvf webalizer-2.21-02-src.tgz
webalizer-2.21-02/
webalizer-2.21-02/CHANGES
.
.
webalizer-2.21-02/lang/webalizer_lang.turkish
webalizer-2.21-02/lang/webalizer_lang.ukrainian
webalizer-2.21-02/webalizer_lang.h
[root@localhost download]#
[root@localhost download]# cd webalizer-2.21-02
[root@localhost webalizer-2.01-10]# ./configure --with-language-korean
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether ln -s works... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... 64
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking whether char is unsigned... no
checking for u_int64_t... yes
checking whether altzone is declared... no
checking for main in -l44bsd... no
checking getopt.h usability... yes
checking getopt.h presence... yes
checking for getopt.h... yes
checking for main in -lm... yes
checking math.h usability... yes
checking math.h presence... yes
checking for math.h... yes
checking for main in -lz... yes
checking for gzrewind in -lz... yes
checking zlib.h usability... yes
checking zlib.h presence... yes
checking for zlib.h... yes
checking for main in -lpng... yes
checking for main in -lgd... yes
checking for gdImagePng in -lgd... yes
checking gd.h usability... yes
checking gd.h presence... yes
checking for gd.h... yes
checking for main in -ldb... no
configure: WARNING: libdb not found.. DNS/GeoDB code disabled!
checking for language file... yes - english
configure: creating ./config.status
config.status: creating Makefile
config.status: linking ./lang/webalizer_lang.english to webalizer_lang.h
configure: Done.  Type 'make' to continue with build.
[root@localhost webalizer-2.21-02]# make
gcc -Wall -O2  -DETCDIR=\"/usr/local/etc\" -DGEODB_LOC=\"/usr/share/GeoDB\" -DPACKAGE_NAME
.
.
H=1 -DHAVE_MATH_H=1  -c wcmgr.c
gcc  -o wcmgr wcmgr.o
[root@localhost webalizer-2.21-02]# make install
mkdir -p /usr/local/bin
mkdir -p /usr/local/share/man/man1
mkdir -p /usr/local/etc
/usr/bin/install -c webalizer /usr/local/bin/webalizer
/usr/bin/install -c wcmgr /usr/local/bin/wcmgr
rm -f /usr/local/bin/webazolver
ln -s webalizer /usr/local/bin/webazolver
/usr/bin/install -c -m 644 webalizer.1 /usr/local/share/man/man1/webalizer.1
/usr/bin/install -c -m 644 wcmgr.1 /usr/local/share/man/man1/wcmgr.1
rm -f /usr/local/share/man/man1/webazolver.1
ln -s webalizer.1 /usr/local/share/man/man1/webazolver.1
/usr/bin/install -c -m 644 sample.conf /usr/local/etc/webalizer.conf.sample <- 설치완료
[root@localhost webalizer-2.21-02]#

설치가 끝나면.. 이제 자신이 운영하는 사이트들에 대하여 각기 세팅을 해주어야 한다.
webalizer는 자체로 웹의 방문정보를 수집하지 않는다. 아파치의 로그파일을 토대로 분석을 해주므로, 각 사이트들마다 로그파일을 만드는것도 아파치 설정에서 해주어야 한다.

httpd-virtualhost.conf의 내용을 수정하자.
설정은 간단하다. 각 버추얼호스트에서 정의해준 사이트들에 로그파일을 생성할 정보를 만들어 주면 그만이다.
버추얼호스트를 운영하지 않는 단독 도메인 사이트라면, 별다른 설정없이 /usr/local/httpd/logs/access_log 파일(아파치설치 디렉토리의 logs)을 이용해서 webalizer설정을 하면 된다.

버추얼호스팅을 위한 로그파일들은 access_log파일이 존재하는 디렉토리에 생성하여 주면 된다. 웹사이트를 방문하는 관리자는 사이트의 로그파일을 볼 필요가 없다. root계정으로 webalizer가 로그파일을 참조해서 관리자가 볼수있는 그래프그림파일과 html파일을 만들어준다.

 <VirtualHost *:80>
    DocumentRoot /home/bestakas/public_html
    ErrorLog logs/bestakas.com_error_log
    CustomLog logs/bestakas.com_access_log common
    ServerName bestakas.com
    ServerAlias *.bestakas.com
</VirtualHost>


CustomLog logs/bestakas.com_access_log common
만약 /usr/local/httpd가 아파치 설치 디렉토리라면, bestakas.com_access_log파일은 /usr/local/httpd/logs 디렉토리에 생성하게 된다. (apache가 재기동되면 bestakas.com_access_log파일을 생성하며 기동된다.) 

파일명은 자신이 식별할수 있는 파일명으로 설정해주면 좋으나, 많은 도메인을 관리하는 서버의 경우, 후에 식별하기 어려우니 도메인_access_log로 해주는것이 좋을듯 하다.

apache를 재기동하자.

 [root@localhost logs]# /usr/local/httpd/bin/httpd -k restart
[root@localhost logs]# ls /usr/local/httpd/logs/
access_log                     bestakas.com_error_log           bestakas.com_access_log
apachestart.log                dummy-host.example.com-access_log   dummy-host.example.com-error_log    cgisock.18090  cgisock.3017     dummy-host2.example.com-access_log   error_log             httpd.pid                           ssl_request_log
[root@localhost logs]#
웹사이트의 로그파일들이 생성되었음을 알수있다.

이제 webalizer용 사이트별 설정파일을 만들어주어야 한다. 
 [root@localhost local]# cd /usr/local/bin
[root@localhost bin]# ls
cjpeg  djpeg  jpegtran  rdjpgcom  wcmgr  webalizer  webazolver  wrjpgcom
[root@localhost bin]#

실행파일은 ./configure --with-language-korean로 컴파일했을경우 /usr/local/bin에 위치한다.

[root@localhost local]# cd /usr/local/etc
[root@localhost etc]# ls
webalizer.conf.sample
[root@localhost etc]#

설정파일은 /usr/local/etc은 위치하게 된다. cp명령으로 sample용 설정파일을 bestakas.com.conf로 복사하자. (임의로 설정하여도 된다.)
 [root@localhost etc]# cp /usr/local/etc/webalizer.conf.sample /usr/local/etc/bestakas.com.conf
[root@localhost etc]# ls /usr/local/etc
bestakas.com.conf  webalizer.conf.sample
[root@localhost etc]#


bestakas.com.conf를 열어 아래와 같이 설정파일을 바꾸어 주자.
 LogFile        /usr/local/httpd/logs/bestakas.com_access_log <버추얼호스팅 설정에서 만든 로그파일의 전체경로를 입력한다>
OutputDir      /home/bestakas/public_html/weblog < 클라이언트 브라우져에서 읽을수 있도록 html과 그림파일들이 생성될 디렉토리를 입력한다. 보통 사이트가 위치한 사이트 루트디렉토리 아래에 만들어준다. >
ReportTitle    BESTAKAS.COM <webalizer화면에서 타이틀로 표시될 이름이다. 보고서 이름에 적당한걸 입력한다..
HistoryName     bestakas.com <webalizer는 로그파일로 부터 읽은 정보를 여기서 설정한 파일로 기록한다.> 
HostName       www.snowrice.com <사이트의 도메인을 입력하면 된다.>

OutputDir은 먼저 디렉토리를 먼저 생성해주어야 한다. 
< #mkdir /home/bestakas/public_html/weblob
   #chmod 707  /home/bestakas/public_html/weblob
   #chown 사용자계정.사용자그룹 /home/bestakas/public_html/weblob 

 */etc/skel 디렉토리에 계정생성과 동시에 함께 생성될수 있도록 하는것도 좋은 팁이다.>

설정파일을 만들어주었으면, 셀스크립트를 작성하여 주어야 한다.

만약 서버에서  www.bestakas.com과 www.test.com을 운영한다고 가정하여 본다면,
루트가 접속하면 실행하기 좋은 디렉토리를 선택하여 셀스크립트를 작성하자. (예: /root/)

 [root@localhost bin]# vi webalizer.sh
#!/bin/bash

/usr/local/bin/webalizer -c /usr/local/etc/bestakas.com.conf > /home/bestakas/public_html/weblog/bestakas.com
/usr/local/bin/webalizer -c /usr/local/etc/test.com.conf > /home/test/public_html/weblog/test.com

/wealizer실행파일경로/webalizer -c /사이트 webalizer설정파일전체경로 > /OutputDir/historyName

의 방식으로 bestakas.com과 test.com에 대한 webalizer 셀스크립트 파일을 작성하였다.

이제 자신의 만든 셀스크립트 파일을 실행하면 Outdir에 bestakas.com파일을 생성하게 된다. 주의할점은 webalizer는 실행하면 그당시에만 실행된다는 점이다. 데몬처럼 백그라운드에서 계속 실행되지 않는다. 아마 데몬형식으로 실시간으로 실행되면 웹서버의 속도는 현저히 떨어지게 되므로 실행할경우에만 webalizer가 로그분석 보고서를 만들게 된다.

데몬이 아닌 이유로 정기적으로 webalizer를 실행시켜주어야 할 필요가 있다. 크론명령으로 정기적으로 webalizer가 기동될수 있도록 설정하며, 시스템이 재기동 할때 webalizer가 실행될수 있도록 하자.

[root@localhost]#crontab -e
00   05  * * *  su - root -c /root/webalizer.sh

(/root/는 webalizer.sh가 존재하는 디렉토리 경로이다.)

[root@localhost]#vi /etc/rc.local
/root/webalizer.sh

이렇게 설정하면 매일 새벽 5시에 웹로그 분석을 위한 보고서를 만든다. 보통 새벽에 많이 실행하는 이유로는 웹사이트를 많이 공급하는 웹서버는 webalizer자체로 시스템 부하가 생길수 있으므로 사용자들이 가장 적게 활동하는 새벽 5시경이 좋기 때문이다.

확인은 새벽 5시에 해보기로 하고...
 [root@localhost]#/root/webalizer.sh


셀스크립트를 실행하면
OutputDir에 HistoryName파일이 생겼는지 확인하여 보자
 [root@localhost ~]# ls /home/bestakas/public_html/weblog/
bestakas.com

HistoryName이 생성되었다.
[root@localhost ~]#vi /home/bestakas/public_html/weblog/bestakas.com
Webalizer V2.01-10 (Linux 2.6.18-1.2798.fc6) English
Using logfile /opt/lampp/logs/snowrice.com_access_log (clf)
Creating output in /home/bestakas/public_html/weblog
Hostname for reports is 'www.snowrice.com'
Reading history file... snowrice.com
Generating report for May 2009
Generating summary report
Saving history information...
xxxxx records in 0.24 seconds

이런식으로 bestakas.com이 생긴다면 일단 webalizer의 설치는 성공하였다.
실험을 위하여 클라이언트 브라우져서 설정한  웹사이트를 방문하여 보자. 방문하여 게시판에 test를 하여보고..다운로드등..확인을 위하여 여러가지 작업을 하여보자. 새로 로그파일을 생성하였기 때문에, 아직 방문기록이 없으므로 로그파일 작성을 위해 여러가지 수작을 해보는것이다.

어느정도 되었다면 다시 셀스크립트를 실행하여 준다.
[root@localhost]# /root/webalizer.sh
[root@localhost ~]# ls /home/bestakas/public_html/weblog/
ctry_usage_200905.png   hourly_usage_200905.png  bestakas.com  usage_200905.html
daily_usage_200905.png  index.html               usage.png

위와같이 png파일들이 생겼다면, 설치는 성공한것이다.
웹브라우져에서 http://도메인/OutputDir/index.html을 실행한다.
(위의 설정이라면 http://www.bestakas.com/weblog/index.html이 되겠다.)

'manabu &amp; Linux' 카테고리의 다른 글

페도라코어에서 putty 한글 사용법  (2) 2009.06.18
Linux lastlog  (0) 2009.05.31
제로보드XE 통째로 서버이전하기  (2) 2009.05.29
Yum이 갑자기 안될때...  (0) 2009.05.28
Proftp의 설치  (0) 2009.05.28
2009. 5. 29. 03:55

제로보드XE 통째로 서버이전하기

원본환경 : Fedora Core 6 X86 i386

lampp를 이용한 APM

목적지환경  Linux server4-166 2.6.18-164.11.1.el5 

Source Compile을 통한 APM

이 포스팅은 리눅스에서 리눅스로 서버이전한 것을 전제로 쓰여집니다.

XE의 서버이전이라 함은, 별로 대수롭지 않게 생각하였다. 하지만, 그리 녹녹한 작업은 아님을 밝혀둔다. 우선 테스트 환경이 원본은 자체도메인이 있는 상황이고, 타겟은 자체도메인이 없는 IP/~사용자계정 환경이었다.

도메인이 없는 환경에서는 단순한 사용자계정만 가지고 서버이전을 한다면, CSS가 적용되지 않으며, 게시글간의 이동이 불가능하다. 꼭 도메인이 적용된 Document Root에서 작업하거나 그런 여건이 되지 않는다면, Apache의 httpd.conf를 열어 Document Root를 계정디렉토리로 인식시키기 바란다.

웹호스팅 시스템 하에서는 도메인구입이 같이 이루어지니, 별탈없이 진행할수 있겠다.

1. 원본으로부터의 백업.

우선 mysqldump명령어가 실행되는지 확인하여 보자.

[root@localhost htdocs]# whereis mysqldump
mysqldump: /usr/local/mysql/bin/mysqldump
[root@localhost htdocs]# /usr/local/mysql/bin/mysqldump -uDB계정 -pDB비번 > 데이타베이스명.sql

데이타베이스가 백업되면 그다음으로 자신이 xe폴더의 바로앞 상위폴더로 이동하자.

#tar –cvvf  xe_backup.tar public_html/

이런식으로 다운받아 sql과 tar두 화일을 클라이언트에 내려받는다.

클라이언트에서 내려받는것이 구찮으면 tar와 sql파일을 httpd가 서비스될수 있는 디렉토리에 옮긴다음 타겟 콘솔에서 wget명령으로 내려받으면 ftp를 이용하지 않아도 무관하다.

이제 타겟 서버에서의 도메인의 root document의 상위 디렉토리에 두개의 파일을 업로드하여, tar화일의 압축을 풀어 도메인시작지점에 index.php가 오게한다.

두번째작업으로 타겟 서버의 db에서 원본서버와 같은 이름,같은 비번,같은 문자셋,같은 사용자로 DB를 만든다.

(SQL db명이 틀릴경우 xe폴더아래 file/config/db.config.php파일의 

$db_info->db_userid = '새로운디비유져';

$db_info->db_password = '새로운디비패스워드';

$db_info->db_database = '새로운디비명';

를 변경한다. )


mysql>create database 디비이름 default character set utf8 collate utf8_unicode_ci;

mysql>grant all on 디비이름.* to 사용자이름@localhost by identified by ‘디비비번’;

Mysql을 재가동시켜준후, 백업받은 sql파일을 생성된 DB에 이식시킨다. 

#mysql -u디비사용자 -p디비비번 디비명 < 데이타베이스명.sql

자 이제 DB의 백업은 끝났다.

도메인의 변경이 있는 시스템은 mysql에서 직접 도메인을 변경시켜주어야 한다.

mysql>select * from 식별자_sites;

mysql>update 식별자_sites set domain=”새로 쓰일 도메인이나 IP” where regdate=xxxxxxx;

식별자_sites는 전 서버의 설치시 다른이름으로 지정하지 않은 시스템은 보통 xe_sites가 되며, 지정을 aa로 하였다면 aa_sites가 된다.

select문으로 regdate를 확인하후 조건으로서 regdate문의 데이타를 이용하여 식별자_sites의 domain을 바꾼다.

/* 같은 도메인을 쓰는경우에는 이런 작업을 할필요가 없다.

 

xe디렉토리/files/config/로 이동하여

db.config.php을 vi나 gedit를 이용하여 편집한다.

[root@localhost config]# vi db.config.php
<?php if(!defined("__ZBXE__")) exit();
$db_info->db_type = 'mysql';
$db_info->db_port = '3306';
$db_info->db_hostname = 'localhost';
$db_info->db_userid = '디비계정';
$db_info->db_password = '디비비번';
$db_info->db_database = '디비이름';
$db_info->db_table_prefix = ‘테이블식별자';
$db_info->time_zone = '+0900';
$db_info->use_rewrite = 'N';
$db_info->default_url = 'http://해당domain이나 IP/';
$db_info->use_optimizer = 'Y';
$db_info->qmail_compatibility = 'N';
$db_info->use_ssl = 'none';
$db_info->use_db_session = 'Y';

위와같이 바꾸고 저장..

브라우져에서 http://해당domain이나 IP를 입력하여보자.

page에 CSS가 적용되지 않음을 알수있다!

브라우져에서 Admin모드로 입장한다. 메뉴와 레이아웃 페이지 세팅등을 체크한다.

아마도 레이아웃이 변형되어있을것이다. 상단메뉴,하단메뉴,로고,홈페이지url등을 고쳐주고 여러 설정중에 캐쉬화일 업그레이드를 실행한다.

다시 putty같은 터미널로 돌아와서 압축을 푼 해당디렉토리로 이동하여..

#chown –R nobody.nobody files

#chmod –R 777 files를 실행한다.

다시 클라이언트 브라우져로 돌아와서 F5 새로고침을 하면 자잘한 세팅외에 모두 제대로 이식했음을 알수있다.

<원본사이트>

<이식된 사이트>

아직 레이아웃의 설정이 덜되어 사이트안에서 로고와 색지정이 안되어 있다. 나머지는 모두 동일..

'manabu &amp; Linux' 카테고리의 다른 글

Linux lastlog  (0) 2009.05.31
Webalizer의 설치  (0) 2009.05.30
Yum이 갑자기 안될때...  (0) 2009.05.28
Proftp의 설치  (0) 2009.05.28
스트리밍 서버 구축 - 2003 Windows Media Server VOD 주문형  (0) 2009.05.25
2009. 5. 28. 16:49

Yum이 갑자기 안될때...


FC6의 Yum이 갑자기 움직이지 않는다. baseurl의 repodata를 읽을수 없다는 에러 메세지와 함께...
FC6이 언제의 배포본인지 정확히 기억이 안나지만, 약 5년정도는 된거로 알고있다.

리눅스의 단점중 가장 큰것이 바로 프로그램들간의 의존성에 관한 문제인데, 의존성의 어려움때문에 프로그램의 설치와 제거가 어렵다는 점에서, 다른 OS에 비해 상당히 어려운것으로 이해되고 있는 실정이다.

그런문제를 해결해준것이 yum이나 우분투의 apt-get이다.
우선 해결문서를 찾아 yum의 설정화일을 업데이트 하였다.

그리고 libc-client-devel을 설치해보았다.. 성공.. 하지만 너무느리다..
그러나 어찌하겠는가.. 느려도 써야하는걸...

[root@localhost yum.repos.d]# yum -y install libc-client-devel
Failed to set locale, defaulting to C
Loading "installonlyn" plugin
Setting up Install Process
Setting up repositories
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for libc-client-devel to pack into transaction set.
libc-client-devel-2004g-2 100% |=========================|  15 kB    00:00
---> Package libc-client-devel.i386 0:2004g-2.2.1 set to be updated
--> Running transaction check
--> Processing Dependency: libc-client = 2004g-2.2.1 for package: libc-client-devel
--> Processing Dependency: libc-client.so.1 for package: libc-client-devel
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for libc-client to pack into transaction set.
libc-client-2004g-2.2.1.i 100% |=========================| 6.8 kB    00:00
---> Package libc-client.i386 0:2004g-2.2.1 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 libc-client-devel       i386       2004g-2.2.1      core              697 k
Installing for dependencies:
 libc-client             i386       2004g-2.2.1      core              518 k

Transaction Summary
=============================================================================
Install      2 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 1.2 M
Downloading Packages:
(1/2): libc-client-devel- 100% |=========================| 697 kB    00:02
(2/2): libc-client-2004g- 100% |=========================| 518 kB    00:01
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: libc-client                  ######################### [1/2]
  Installing: libc-client-devel            ######################### [2/2]

Installed: libc-client-devel.i386 0:2004g-2.2.1
Dependency Installed: libc-client.i386 0:2004g-2.2.1
Complete!
[root@localhost yum.repos.d]#


해당 파일의 baseurl의 주석을 풀고 아래의 주소를 입력한다. 페도라 1~6까지의 배포판은 숫자만 바꾸면 가능할듯 하다.

[root@localhost yum.repos.d]# vi fedora-core.repo
baseurl=http://archives.fedoraproject.org/pub/archive/fedora/linux/core/6/i386/os/
[root@localhost yum.repos.d]# vi fedora-extras.repo
baseurl=http://archives.fedoraproject.org/pub/archive/fedora/linux/extras/6/i386/
[root@localhost yum.repos.d]# vi fedora-development.repo
baseurl=http://archives.fedoraproject.org/pub/archive/fedora/linux/core/development/
[root@localhost yum.repos.d]# vi fedora-updates.repo
baseurl=http://archives.fedoraproject.org/pub/archive/fedora/linux/core/updates/6/i386/
 

2009. 5. 28. 04:22

Proftp의 설치


Vsftp의 업로드가 일정지역에서 끊김현상이 계속 발생된다. 어떤 버그인지 모르겠지만, 검색을 해봐도, 충분한 답을 얻을수 없었다.

문제는 내가 운영하는 자체 서버에서 가상호스트를 받는 지인들의 호소로서, 난 돈도 안생기지만 ftp의 서버프로그램을 변경해주어야 했다. 우선 Proftp로 바꿔본다.

개인적으로는 proftp보다 vsftp를 선호한다. 속도면에서 훨 월등한 차이를 보였기에

 wget ftp://proftpd.get7.biz/proftpd/distrib/source/proftpd-1.3.0a.tar.bz2

Proftp의 일본 서버이다. 그래도 한국에서 제일 가깝다. 다운을 받고 압축을 푼후 해당 디렉토리에 가서 소스컴파일 설치를 한다.

#./configure --prefix=/usr/local/proftpd --enable-autoshadow
#make && make install

기존의 vsftp데몬을 중지시키고

[root@localhost proftpd-1.3.0a]# service vsftpd stop
vsftpd瑜?醫낅즺?섍퀬 ?덉뒿?덈떎:                       [  OK  ]

proftp의 설정을 해주자.

[root@localhost proftpd-1.3.0a]# cd /usr/local/proftpd/etc
[root@localhost etc]# pwd
/usr/local/proftpd/etc
[root@localhost etc]# vi proftpd.conf


ServerType                      standalone

# Set the user and group under which the server will run.
User                            ftp
Group                           ftp

MaxClient - 자신이 원하는 동시 접속자수를 정해서 입력한다.

저장하고 나와서

#/usr/local/sbin/proftpd
#

ftp데몬을 실행시켜준다.


접속이 잘된것을 알수있다. 그러나 Vsftp보다는 접속시에 약간 느리다. vsftpd보다 보안이 강화된 이유도 있을듯 하다.








2009. 5. 25. 05:14

스트리밍 서버 구축 - 2003 Windows Media Server VOD 주문형


결국은 스트리밍 VOD서버를 리눅스에서 구축한다는 일련의 꿈은 사라지고, 이틀만에 NT군으로 돌아왔죠

2003으로 스트리밍 서버를 구축하는것은 너무나도 쉬운것이니, 그냥 발자취만 남기고 갑니다.


NT서버의 IP를 확인합니다.

사용자서버 관리의 역활 추가버튼을 선택합니다.

구성마법사가 시작합니다. 무시하고 다음으로 넘어갑니다.
다음 단계로 어떤 서버가 설치되어있는지 NT가 확인합니다.

사용자구성 선택하여 Windows Media 서비스 서버를 선택합니다.
서버의 설치를 진행합니다.
설치후에 서버관리 초기화면에서 스트리밍 미디어 서버관리를 선택합니다.
좌측상단 Windows Media 서비스 아래 컴퓨터에서 게시시점 추가(고급)를 선택하면 위와 같은 박스가 나옵니다.
주문형으로 서비스하므로 주문형을 선택하고 이름을 지정해줍니다. 예로 soccer로 하였네요. 그리고 서비스할 화일을 선택합니다. C:\wmpub\WMRoot에 카피한 파일이나, 아니면 샘플을 선택합니다. 마지막으로 확인면 자동으로 서비스가 시작됩니다.

클라이언트 컴퓨터로 와서 실행하여 세팅이 잘되었는지 확인해봅니다.

실행이 잘됨을 알수 있습니다.


홈페이지 HTML화일에서 볼수있게 해볼까요?

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
</HEAD>

 <BODY>

<object
CLASSID="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" width="491" height="416" ID="Player">
<PARAM name="autoStart" value="True">
<PARAM name="stretchToFit" value="True">
<PARAM name="URL" value="mms://192.168.241.132/soccer">
<PARAM name="enableContextMenu" value="False">
<PARAM name="uiMode" value="Full">
<param name="volume" value="70">
 </BODY>
  </HTML>


클라이언트웹서버(xampp)와 WMS서버 서버를 가지고 클라이언트에서 실행한것입니다. 잘나오는군요..



아 이처럼 쉽게 구성된 윈도우즈 2003스트리밍 서버...너무쉬우면 서버같지가 않아..
리눅스와 비교할수 있게 리눅스로 분류해야 겠군..



2009. 5. 25. 00:02

주문형 스트리밍 서버 구성기 - Darwin Streaming Server 2


리눅스에서 DSS를 이용하여 VOD스트리밍 서버를 구성하고자 하는 나의 바램은 결국 좌절되었다. APPLE사의 DSS포럼에서 알아낸 결과, HTML에선 DSS의 rtsp포코토콜을 임포트하지 못한다는 사실을 알고 결국 포기하였다.

물론 QuickTime을 이용하여 방송도 가능하며 VOD형식의 주문형 방송도 가능하다. 하지만 그것은, 어디까지나 QuickTime안에서 가능한것이며, 따로 DSS서버의 방송들을 http형의 프로토콜로 가지고 오는것이 불가능하다는것을 알게되었다.

포럼의 내용을 보자.
 I'd like to be able to *force* the QuickTime player (embedded within the client's browser web page) to stream using RTSP/RTP-over-HTTP. How can I do this?

클라이언트 웹페이지에서 출력되는 RTSP/RTP-HTTP연계 퀵타임 플레이어를 쓰고 싶습니다. 어떻게 하면 되지요?

The selection between HTTP and UDP streaming transports can only be set from the client-side. It is best though if you configure your streaming server (and any firewall between the server and clients) to permit both UDP (ports 6970-6999) and HTTP (TCP port 80) since you never know what streaming transport a client may be pre-configured to use when connecting to your server.

HTTP와 스트림 UTP전송은 클라이언트쪽에서 세팅해야 합니다. 클라이언트와 서버간에 어떠한 방화벽도 형성되지 않은 상태에서 알수없는 스트리밍 클라이언트 유져가 당신의 서버에 접속하기 전에 UDP포트 6970~6999와 TCP포트80의 연계를 허가해야 합니다. 

Sorry, but you can't do this from the QTSS/Darwin Streaming Server.
미안합니다. QTSS/다윈 스트리밍서버로부터는 당신이 하려고 하는것을 할수없습니다.


<ㅜ.ㅜ 6시간이 넘는 사투끝에 구성한 DSS서버를 써보지도 못하고 닫아야 하는 아찔한 기분이 드는 순간>

I cannot get the WIndows version of Quicktime (latest version) to connect to my QTSS (ie DSS) server via RTSP OR HTTP (via sdp file).

Tested it on Mac AND PC, both in Safari (and IE on win).

Used basic "embed" tag pointing to "rtsp://bla bla bla/clv.mp4"

It worked on the Mac Safari just fine, but the PC Safari just sits there with the QT logo. I tested it on three different PC's and none worked, and three different Macs and they all worked - all on the same local network with the server.

Windows Firewall is off...

I've looked and looked and can't find anywhere how to fix this... Any ideas? Anyone? Help would be GREATLY appreciated!!

-Christopher Kemsley

나는 퀵타임 윈도우즈버젼과 DSS의 RTSP 또는 HTTP의 연계를 할수없었다.
맥의 사파리와 윈도우의 IE에서 테스트해보았다.

"rtsp://bla bla bla/clv.mp4"를 기본적인 "embed" 코드를 써보았는데.

맥사파리에서는 정상적으로 작동한다. 그러나 PC사파리에서는 퀵타임 로고만 나온다. 나는 세개의 서로 다른 PC에서 테스트해보았는데, PC것들은 전혀 작동하지 않았다. 그리고 세개의 다른 맥은 이것들은 모두 로컬네트워크상에서  다 잘 작동했다. 

윈도우의 방화벽을 죽이고 해보았으나, 이것을 할수있는 있는 방법을 전혀 찾지를 못했다. 누구 아이디어 없느냐? 도움을 준다면 매우 고마울것이다. -Christopher Kemsley

I should also note that when I open the same URL in the QuickTime application itself, it works just fine... Only doesn't work in HTML. I also tried using a QuickTime OBJECT tag in the HTML.. no difference.

나는 퀵타임에서 웹상 주소를 붙여놓기 하여 사용한다. 그러면 잘 작동한다. 다만 HTML상에서 안되는것..나도 HTML의 OBJECT태그를 이용하여 Quicktime을 사용하려 했다.. 결과는 없었다.


I have DSS running on a Mac Mini. I put one H.264 128Kbps stream on it, and put "<embed src="rtsp://192.168.0.140/clv.mp4">" on the page. This same page from the same server works on my iMac (and other macs) but not any of my PCs, all on the same LAN... but it only doesn't work in the PC browser

나는 맥미니에서 DSS서버를 운영한다. <embed src="rtsp://192.168.0.140/clv.mp4">코드로 H.264 128Kbps의 스트리밍을 HTML에 넣었다. iMac에서는 서버와 같이 페이지가 나온다. 그러나 어떤 PC에서도 (같은 랜선에서) 작동하지 않았다. PC브라우져에서는 작동하지 않는다. 

MS의 IE정책을 참고하라.  
-Quicktimekirk


I've tried that.. it didn't work...

And also, I'm not using IE. I have tested it on IE and it didn't work.. but, the same embed statement that works with the latest QT in Safari 3 on the Mac does not work with the latest QT in Safari 3 on the PC.

That little fact is very important: I am using QT 7.2 and Safari 3 Beta on BOTH Mac and PC.

나도 시도해봤다. 그러나 되지 않았다. IE에서도 해보고 딴것에서도 해봤지만 안된다. 그러나 PC사파리에서 작동하지 않은 같은 embed태그로 맥 사파리 최근버젼에서 했는데 작동한다. 


이쯤되면 그냥 하지 말자는 거지요.. QuickTime방송하자고 서버 돌릴수는 없으니.. 사람들이 동영상은 윈도우즈 서버라고 하는 말이 틀린말이 아니네요.. 나중에 백업받아, 다른사람에게도 인수인계하기 쉽고...

후기로, QuickTime 세부설정이나 올리겠습니다. 힘이 쭉 빠지네..VLC서버에서 rtsp서버 작동법이 있다고 하니 함 알아봐야지요..

설치시에 저장한 계정과 비밀번호를 입력하면 다시 MP3보안에 대한 페이지가 나옵니다.

기호에 맞는 계정과 비밀번호를 설정해주세요
OPENSSL이 설치되어 있는 경우에는 보안을 이용한 SSL송신이 가능합니다. 없으면 그냥 NEXT
콘텐츠가 위치할 디렉토리를 설정합니다. 디폴트가 편합니다.

출력포트를 80번으로 할것인지 물어봅니다. 그냥 넥스트

서버에 대한 상세한 내용을 나옵니다.

Playlist를 선택하고 이름을 만들어주고 아무파일이나 선택한후 세이브한후, stop표시를 눌러 play로 활성화 해줍니다. 그리고 Quicktime에서 rtsp://서버ip/파일명(디렉토리 안에 있는 MP4나 MOV파일)을 주소창에 입력하면 동영상이 클라이언트에서 재생됩니다.

리눅스로 만드는 스트리밍 서버구성이었습니다.
 
2009. 5. 24. 10:22

리눅스(fedora) 주문형 스트리밍 서버 구성기 - Darwin Streaming Server


VLC서버를 이리저리 2시간 동안 둘러보고 구글링 검색을 해봐도... 주문형 VOD서버를 구성할수 없었다. 여기서 접고, 애플의 Darwin Streaming Server라는 걸죽한 프로그램을 한번 설치해보기로 했다.

 

Welcome to Darwin Streaming Server, the open source version of Apple's QuickTime Streaming Server technology that allows you to send streaming media to clients across the Internet using the industry standard RTP and RTSP protocols. Based on the same code base as QuickTime Streaming Server, Darwin Streaming Server provides a high level of customizability and runs on a variety of platforms allowing you to manipulate the code to fit your needs.

Who should use Darwin Streaming Server?

While sharing the same code base as QuickTime Streaming Server, Darwin Streaming Server is an open source project intended for developers who need to stream QuickTime and MPEG-4 media on alternative platforms such as Windows, Linux, and Solaris, or those developers who need to extend and/or modify the existing streaming server code to fit their needs. Darwin Streaming Server is only supported by the open source community and is not eligible for technical support from Apple. Apple hosts a number of email discussion lists for Darwin Streaming Server users and developers to share ideas and discuss deployment scenarios.

QuickTime Streaming Server (QTSS) is Apple's commercial streaming server delivered as part of Mac OS X Server. QTSS provides users with enhanced administration and media management tools as a result of the tight integration with Mac OS X Server; these tools are not available as part of the open source project. Technical support is available for QTSS as part of the AppleCare support plans provided for Mac OS X Server and Xserve.

Both DSS and QTSS are built on a core server that provides state of the art quality of service features with Skip protection and Instant-On, and support for the latest digital media standards, MPEG-4 and 3GPP.

Darwin Streaming Server is available as a free download under the Apple Public Source License.

DSS on Mac OS forge

Darwin Streaming Server has been moved to Mac OS forge.org. Please visit this site for the latest information on DSS including source code downloads and documentation.


문제는 클라이언트 컴퓨터에서 Windows Media player가 아니라 QuickTime 을 써야 한다는것이다. 솔직히 QuickTime이 WMP과 비교하여 질적으로 떨어진다는것은 아니다. 하지만, IE에서의 접근성과 ActiveX의 지원등을 면밀히 지켜봐야 한다. 어찌해야 할까..아무래도 MS의 지배하에 있는 현 PC시장에서 QuickTime을 선택한다는것은 좌충수가 될수 있다. 어쨋건 함 설치해보고, 논해보기로 한다.

Apple DSS 메인 페이지 : http://dss.macosforge.org/

#wget http://dss.macosforge.org/downloads/DarwinStreamingSrvr6.0.3-Source.tar
#tar -xvf DarwinStreamingSrvr6.0.3-Source.tar
#./Buildit Install
컴파일을 해야한다. 하지만 컴파일이 안된다. g++등 DSS가 요구하는 모든 개발툴들을 다시설치하고 업데이트 하였다.

[root@japasop DarwinStreamingSrvr6.0.3-Source]# ls
APICommonCode         dss_license_tool.pl        PrefsSourceLib            sample_300kbit.mov
APIModules            DSS_MakeProxyRoot          pubPackageMetaData        sample_300kbit.mp4
APIStubLib            DSS_MakeRoot               qtaccess                  sample_50kbit.3gp
APPLE_LICENSE         dssPackageMetaData         QTFileLib                 sample_h264_100kbit.mp4
AtomicLib             gdbdar                     QTFileTools               sample_h264_1mbit.mp4
broadcasterctl        gdbmp3                     qtgroups                  sample_h264_300kbit.mp4
Buildit               gdbplay                    qtpasswd.tproj            sample.mp3
BuildOSXInstallerPkg  gdb_script                 qtssPackageMetaData       Server.tproj
buildproxytarballx    gdbserver                  qtusers                   StreamingLoadTool
buildtarball          HTTPUtilitiesLib           RegistrySystemPathEditor  StreamingProxy.tproj
clean                 Install                    relayconfig.xml-Sample    StreamingServer.xcodeproj
clean_dss_osx         Jamfile                    ReleaseNotes.txt          streamingserver.xml
CommonUtilitiesLib    jamplay                    revision.h                streamingserver.xml-POSIX
defaultPaths.h        Makefile.POSIX             RTCPUtilitiesLib          uninstalldss4
deleteCVSdirs         MP3Broadcaster             RTPMetaInfoLib            uninstallqtss4
deleteSVNdirs         OSMemoryLib                RTSPClientLib             UpdateDSSInstallerDocs
deleteWinBuildDirs    parseServerOut.py          SafeStdLib                WebAdmin
dobuildit             PlatformHeader.h           sample_100kbit.mov        WinNTSupport
Documentation         PlaylistBroadcaster.tproj  sample_100kbit.mp4

[root@japasop DarwinStreamingSrvr6.0.3-Source]# ./Install (대문자 I임을 주의)

Installing Darwin Streaming Server

Checking for and Killing currently running Darwin Streaming Server
Removing previous versions of Darwin Streaming Server

Backing up previous config files

Inserting path to perl into scripts..
Can't open perl script "perlpath.pl": No such file or directory

Creating unprivileged user to run the server = "qtss".
copying DarwinStreamingServer to /usr/local/sbin/DarwinStreamingServer
cp: cannot stat `DarwinStreamingServer': No such file or directory
copying PlaylistBroadcaster to /usr/local/bin/PlaylistBroadcaster
cp: cannot stat `PlaylistBroadcaster': No such file or directory
copying MP3Broadcaster to /usr/local/bin/MP3Broadcaster
cp: omitting directory `MP3Broadcaster'
copying qtpasswd to /usr/local/bin/qtpasswd
cp: cannot stat `qtpasswd': No such file or directory
creating /usr/local/sbin/StreamingServerModules directory
cp: cannot stat `StreamingServerModules/*': No such file or directory
creating /etc/streaming directory
./Install: line 243: /usr/local/sbin/DarwinStreamingServer: No such file or directory
chmod: cannot access `/etc/streaming/streamingserver.xml': No such file or directory
chown: invalid user: `qtss'

copying relayconfig.xml-Sample to /etc/streaming/relayconfig.xml-Sample

copying qtusers to /etc/streaming/qtusers
chown: invalid user: `qtss'

copying qtgroups to /etc/streaming/qtgroups
chown: invalid user: `qtss'
creating /var/streaming directory
copying readme.txt to /var/streaming/readme.txt
cp: cannot stat `readme.txt': No such file or directory
copying 3rdPartyAcknowledgements.rtf to /var/streaming/3rdPartyAcknowledgements.rtf
cp: cannot stat `3rdPartyAcknowledgements.rtf': No such file or directory
creating /var/streaming/logs directory
creating /usr/local/movies directory
creating /var/streaming/playlists directory
copying sample_100kbit.mov into /usr/local/movies/sample_100kbit.mov
copying sample_300kbit.mov into /usr/local/movies/sample_300kbit.mov
copying sample_100kbit.mp4 into /usr/local/movies/sample_100kbit.mp4
copying sample_300kbit.mp4 into /usr/local/movies/sample_300kbit.mp4
copying sample.mp3 into /usr/local/movies/sample.mp3
copying sample_50kbit.3gp into /usr/local/movies/sample_50kbit.3gp
copying sample_h264_100kbit.mp4 into /usr/local/movies/sample_h264_100kbit.mp4
copying sample_h264_300kbit.mp4 into /usr/local/movies/sample_h264_300kbit.mp4
copying sample_h264_1mbit.mp4 into /usr/local/movies/sample_h264_1mbit.mp4
copying StreamingLoadTool to /usr/local/bin/StreamingLoadTool
cp: omitting directory `StreamingLoadTool'
copying streamingloadtool.conf to /etc/streaming/streamingloadtool.conf
cp: cannot stat `streamingloadtool.conf': No such file or directory
copying streamingadminserver.pl into /usr/local/sbin/streamingadminserver.pl
cp: cannot stat `streamingadminserver.pl': No such file or directory
copying Admin HTML to /var/streaming/AdminHtml directory
cp: cannot stat `AdminHtml': No such file or directory
chown: invalid user: `qtss'
chown: invalid user: `qtss'
chown: invalid user: `qtss'

Launching streamingadminserver.pl
./Install: line 355: /usr/local/sbin/streamingadminserver.pl: No such file or directory

Installation Complete

Darwin Streaming Server Setup

In order to administer the Darwin Streaming Server you must create an administrator user [Note: The administrator user name cannot contain spaces, or single or double quote characters, and cannot be more than 255 characters long].
Please enter a new administrator user name: bestakas


You must also enter a password for the administrator user [Note: The administrator password cannot contain spaces, or quotes, either single or double, and cannot be more than 80 characters long].
Please enter a new administrator Password:
Re-enter the new administrator password:

./Install: line 408: /usr/local/bin/qtpasswd: No such file or directory
./Install: line 416: /usr/local/bin/qtpasswd: No such file or directory
chown: invalid user: `qtss'
Setup Complete!
[root@japasop DarwinStreamingSrvr6.0.3-Source]#


관리자용 계정과 비밀번호를 물어본다.
chown: invalid user: `qtss'
이 부분이 좀 걸려서, 구글링을 해봤더니 설치 실패.. 설치시에 이런 경우가 매우 다분히 많이 일어나는듯 Apple DSS포럼에는 이 문제에 대해서 많은 글들이 올라와있었다. FC10,FC9,FC6,FC2모두 동일한 에러메세지가 나왔다. 커널과 라이브러리에 문제인것은 아닌것 같은데...(적색부분이 모두 에러메세지)

첫번째 에러메세지인 Can't open perl script "perlpath.pl": No such file or directory 부터 해결을 해보기로 했다.
<이쯤 되면 지친다.. 이넘의 스트리밍 서버... >

아무리 알아봐도 도대체 해결법이 안나온다...각종 라이브러리들과 개발용 툴.. 그리고 애플사의 답변들대로 다 해봤지만.. 매번  같은 메세지일뿐 단순히 ./buildit Install 하고 ./Install 하라.. 슬며시 짜증이 나기 시작했다.. 세계의 DSS를 쓰고자 이와같은 이유로 포럼에 온 사람들도 절망적이라는 단어를 써대고 있었다..
 
결국은 Ubuntu로 시스템을 변경하고 설치해봤다.

 root@kubuntu:~# sudo apt-get install libc6-dev linux-libc-dev gcc-3.3 g++-3.3
袁몃윭誘?紐⑸줉???쎈뒗 以묒엯?덈떎... ?꾨즺
?섏〈???몃━瑜?留뚮뱶??以묒엯?덈떎
?곹깭 ?뺣낫瑜??쎈뒗 以묒엯?덈떎... ?꾨즺
?ㅼ쓬 袁몃윭誘몃? ???ㅼ튂??寃껋엯?덈떎:
  cpp-3.3 gcc-3.3-base libc6 libc6-i686 libstdc++5 libstdc++5-3.3-dev
?쒖븞?섎뒗 袁몃윭誘?
  gcc-3.3-doc glibc-doc manpages-dev libstdc++5-3.3-doc
?ㅼ쓬 ??袁몃윭誘몃? ?ㅼ튂??寃껋엯?덈떎:
  cpp-3.3 g++-3.3 gcc-3.3 gcc-3.3-base libc6-dev libstdc++5 libstdc++5-3.3-dev linux-libc-dev
?ㅼ쓬 袁몃윭誘몃? ?낃렇?덉씠?쒗븷 寃껋엯?덈떎:
  libc6 libc6-i686
2媛??낃렇?덉씠?? 8媛??덈줈 ?ㅼ튂, 0媛?吏€?곌린 諛?330媛??낃렇?덉씠??????
15.5M諛붿씠???꾩뭅?대툕瑜?諛쏆븘???⑸땲??
After this operation, 34.4MB of additional disk space will be used.
怨꾩냽 ?섏떆寃좎뒿?덇퉴 [Y/n]? y
諛쏄린:1
http://kr.archive.ubuntu.com hardy-updates/main libc6 2.7-10ubuntu4 [4307kB]
諛쏄린:2
http://kr.archive.ubuntu.com hardy-updates/main libc6-i686 2.7-10ubuntu4 [1243kB]
諛쏄린:3
http://kr.archive.ubuntu.com hardy-updates/universe gcc-3.3-base 1:3.3.6-15ubuntu6 [151kB]
諛쏄린:4
http://kr.archive.ubuntu.com hardy-updates/universe cpp-3.3 1:3.3.6-15ubuntu6 [1385kB]
諛쏄린:5
http://kr.archive.ubuntu.com hardy-updates/universe gcc-3.3 1:3.3.6-15ubuntu6 [1554kB]
諛쏄린:6
http://kr.archive.ubuntu.com hardy-updates/main linux-libc-dev 2.6.24-24.53 [705kB]
諛쏄린:7
http://kr.archive.ubuntu.com hardy-updates/main libc6-dev 2.7-10ubuntu4 [3344kB]
諛쏄린:8
http://kr.archive.ubuntu.com hardy-updates/universe libstdc++5 1:3.3.6-15ubuntu6 [296kB]
諛쏄린:9
http://kr.archive.ubuntu.com hardy-updates/universe libstdc++5-3.3-dev 1:3.3.6-15ubuntu6 [775kB]
諛쏄린:10
http://kr.archive.ubuntu.com hardy-updates/universe g++-3.3 1:3.3.6-15ubuntu6 [1771kB]
?대젮諛쏄린 15.5M諛붿씠?? ?뚯슂?쒓컙 21s (735k諛붿씠??珥?
袁몃윭誘몃뱾??誘몃━ ?ㅼ젙?섎뒗 以묒엯?덈떎...
(?곗씠?곕쿋?댁뒪 ?쎈뒗以?...?꾩옱 91210媛쒖쓽 ?뚯씪怨??붾젆?좊━媛€ ?ㅼ튂?섏뼱 ?덉뒿?덈떎.)
libc6 2.7-10ubuntu3 袁몃윭誘몃? ?€泥댄븷 以€鍮꾪븯??以묒엯?덈떎 (.../libc6_2.7-10ubuntu4_i386.deb ?ъ슜) ...
?€泥대릺??libc6 袁몃윭誘몃? ?몃뒗 以묒엯?덈떎 ...
libc6 (2.7-10ubuntu4) ?ㅼ젙?섎뒗 以묒엯?덈떎 ...

Processing triggers for libc6 ...
ldconfig deferred processing now taking place
(?곗씠?곕쿋?댁뒪 ?쎈뒗以?...?꾩옱 91210媛쒖쓽 ?뚯씪怨??붾젆?좊━媛€ ?ㅼ튂?섏뼱 ?덉뒿?덈떎.)
libc6-i686 2.7-10ubuntu3 袁몃윭誘몃? ?€泥댄븷 以€鍮꾪븯??以묒엯?덈떎 (.../libc6-i686_2.7-10ubuntu4_i386.deb ?ъ슜) ...
?€泥대릺??libc6-i686 袁몃윭誘몃? ?몃뒗 以묒엯?덈떎 ...
?꾩뿉 ?좏깮?섏? ?딆? gcc-3.3-base 袁몃윭誘몃? ?좏깮?⑸땲??
gcc-3.3-base 袁몃윭誘몃? ?몃뒗 以묒엯?덈떎 (.../gcc-3.3-base_1%3a3.3.6-15ubuntu6_i386.deb?먯꽌) ...
?꾩뿉 ?좏깮?섏? ?딆? cpp-3.3 袁몃윭誘몃? ?좏깮?⑸땲??
cpp-3.3 袁몃윭誘몃? ?몃뒗 以묒엯?덈떎 (.../cpp-3.3_1%3a3.3.6-15ubuntu6_i386.deb?먯꽌) ...
?꾩뿉 ?좏깮?섏? ?딆? gcc-3.3 袁몃윭誘몃? ?좏깮?⑸땲??
gcc-3.3 袁몃윭誘몃? ?몃뒗 以묒엯?덈떎 (.../gcc-3.3_1%3a3.3.6-15ubuntu6_i386.deb?먯꽌) ...
?꾩뿉 ?좏깮?섏? ?딆? linux-libc-dev 袁몃윭誘몃? ?좏깮?⑸땲??
linux-libc-dev 袁몃윭誘몃? ?몃뒗 以묒엯?덈떎 (.../linux-libc-dev_2.6.24-24.53_i386.deb?먯꽌) ...
?꾩뿉 ?좏깮?섏? ?딆? libc6-dev 袁몃윭誘몃? ?좏깮?⑸땲??
libc6-dev 袁몃윭誘몃? ?몃뒗 以묒엯?덈떎 (.../libc6-dev_2.7-10ubuntu4_i386.deb?먯꽌) ...
?꾩뿉 ?좏깮?섏? ?딆? libstdc++5 袁몃윭誘몃? ?좏깮?⑸땲??
libstdc++5 袁몃윭誘몃? ?몃뒗 以묒엯?덈떎 (.../libstdc++5_1%3a3.3.6-15ubuntu6_i386.deb?먯꽌) ...
?꾩뿉 ?좏깮?섏? ?딆? libstdc++5-3.3-dev 袁몃윭誘몃? ?좏깮?⑸땲??
libstdc++5-3.3-dev 袁몃윭誘몃? ?몃뒗 以묒엯?덈떎 (.../libstdc++5-3.3-dev_1%3a3.3.6-15ubuntu6_i386.deb?먯꽌) ...
?꾩뿉 ?좏깮?섏? ?딆? g++-3.3 袁몃윭誘몃? ?좏깮?⑸땲??
g++-3.3 袁몃윭誘몃? ?몃뒗 以묒엯?덈떎 (.../g++-3.3_1%3a3.3.6-15ubuntu6_i386.deb?먯꽌) ...
libc6-i686 (2.7-10ubuntu4) ?ㅼ젙?섎뒗 以묒엯?덈떎 ...

gcc-3.3-base (1:3.3.6-15ubuntu6) ?ㅼ젙?섎뒗 以묒엯?덈떎 ...
cpp-3.3 (1:3.3.6-15ubuntu6) ?ㅼ젙?섎뒗 以묒엯?덈떎 ...
gcc-3.3 (1:3.3.6-15ubuntu6) ?ㅼ젙?섎뒗 以묒엯?덈떎 ...
linux-libc-dev (2.6.24-24.53) ?ㅼ젙?섎뒗 以묒엯?덈떎 ...
libc6-dev (2.7-10ubuntu4) ?ㅼ젙?섎뒗 以묒엯?덈떎 ...
libstdc++5 (1:3.3.6-15ubuntu6) ?ㅼ젙?섎뒗 以묒엯?덈떎 ...

libstdc++5-3.3-dev (1:3.3.6-15ubuntu6) ?ㅼ젙?섎뒗 以묒엯?덈떎 ...
g++-3.3 (1:3.3.6-15ubuntu6) ?ㅼ젙?섎뒗 以묒엯?덈떎 ...
Processing triggers for libc6 ...
ldconfig deferred processing now taking place
root@kubuntu:~# ldconfig


<한글 우분투이기 때문에 putty에서 별다른 설정없이 쓸때는 문자가 깨져나온다.>

           => `DarwinStreamingSrvr5.5.5-Source.tar.gz'
Resolving dss.macosforge.org... 17.254.17.248
?묒냽 dss.macosforge.org|17.254.17.248|:80... ?묒냽??
HTTP request sent, awaiting response... 302 Found
           => `DarwinStreamingSrvr5.5.5-Source.tar.gz'
Resolving static.macosforge.org... 17.254.17.246
?묒냽 static.macosforge.org|17.254.17.246|:80... ?묒냽??
HTTP request sent, awaiting response... 200 OK
Length: 21,468,268 (20M) [application/x-gzip]

100%[==============================================================================>] 21,468,268   376.54K/s    ETA 00:00

18:38:02 (355.73 KB/s) - `DarwinStreamingSrvr5.5.5-Source.tar.gz' saved [21468268/21468268]

root@kubuntu:~# tar xzf DarwinStreamingSrvr5.5.5-Source.tar.gz DarwinStreamingSrvr5.5.5-Source
root@kubuntu:~# cd DarwinStreamingSrvr5.5.5-Source/
root@kubuntu:~/DarwinStreamingSrvr5.5.5-Source# sudo adduser -system -no-create-home -ingroup qtss qtss
Adding system user `qtss' (UID 111) ...
Adding new user `qtss' (UID 111) with group `qtss' ...
Not creating home directory `/home/qtss'. 

 

root@kubuntu:~/DarwinStreamingSrvr5.5.5-Source# sudo apt-get install g++
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  cpp cpp-4.2 g++-4.2 gcc gcc-4.2 gcc-4.2-base libffi4 libgcc1 libgomp1 libstdc++6 libstdc++6-4.2-dev
Suggested packages:
  cpp-doc gcc-4.2-locales g++-multilib g++-4.2-multilib gcc-4.2-doc libstdc++6-4.2-dbg autoconf automake1.9 bison flex
  gcc-doc gcc-multilib libtool manpages-dev gcc-4.2-multilib libgcc1-dbg libgomp1-dbg libmudflap0-4.2-dev
  libmudflap0-dbg libstdc++6-4.2-doc
The following NEW packages will be installed:
  g++ g++-4.2 libstdc++6-4.2-dev
The following packages will be upgraded:
  cpp cpp-4.2 gcc gcc-4.2 gcc-4.2-base libffi4 libgcc1 libgomp1 libstdc++6
9 upgraded, 3 newly installed, 0 to remove and 321 not upgraded.
Need to get 7575kB of archives.
After this operation, 15.0MB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 http://kr.archive.ubuntu.com hardy-updates/main gcc-4.2-base 4.2.4-1ubuntu3 [100kB]
Get:2 http://kr.archive.ubuntu.com hardy-updates/main libstdc++6 4.2.4-1ubuntu3 [332kB]
Get:3 http://kr.archive.ubuntu.com hardy-updates/main libgomp1 4.2.4-1ubuntu3 [12.0kB]
Get:4 http://kr.archive.ubuntu.com hardy-updates/main libffi4 4.2.4-1ubuntu3 [13.0kB]
Get:5 http://kr.archive.ubuntu.com hardy-updates/main cpp-4.2 4.2.4-1ubuntu3 [2486kB]
Get:6 http://kr.archive.ubuntu.com hardy-updates/main gcc-4.2 4.2.4-1ubuntu3 [596kB]
Get:7 http://kr.archive.ubuntu.com hardy-updates/main libgcc1 1:4.2.4-1ubuntu3 [23.3kB]
Get:8 http://kr.archive.ubuntu.com hardy-updates/main cpp 4:4.2.3-1ubuntu6 [34.6kB]
Get:9 http://kr.archive.ubuntu.com hardy-updates/main libstdc++6-4.2-dev 4.2.4-1ubuntu3 [1187kB]
Get:10 http://kr.archive.ubuntu.com hardy-updates/main g++-4.2 4.2.4-1ubuntu3 [2784kB]
Get:11 http://kr.archive.ubuntu.com hardy-updates/main gcc 4:4.2.3-1ubuntu6 [5096B]
Get:12 http://kr.archive.ubuntu.com hardy-updates/main g++ 4:4.2.3-1ubuntu6 [1440B]
Fetched 7575kB in 10s (747kB/s)
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "c"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
(Reading database ... 92578 files and directories currently installed.)
Preparing to replace gcc-4.2-base 4.2.3-2ubuntu7 (using .../gcc-4.2-base_4.2.4-1ubuntu3_i386.deb) ...
Unpacking replacement gcc-4.2-base ...
Setting up gcc-4.2-base (4.2.4-1ubuntu3) ...

(Reading database ... 92578 files and directories currently installed.)
Preparing to replace libstdc++6 4.2.3-2ubuntu7 (using .../libstdc++6_4.2.4-1ubuntu3_i386.deb) ...
Unpacking replacement libstdc++6 ...
Setting up libstdc++6 (4.2.4-1ubuntu3) ...

Processing triggers for libc6 ...
ldconfig deferred processing now taking place
(Reading database ... 92578 files and directories currently installed.)
Preparing to replace libgomp1 4.2.3-2ubuntu7 (using .../libgomp1_4.2.4-1ubuntu3_i386.deb) ...
Unpacking replacement libgomp1 ...
Preparing to replace libffi4 4.2.3-2ubuntu7 (using .../libffi4_4.2.4-1ubuntu3_i386.deb) ...
Unpacking replacement libffi4 ...
Preparing to replace cpp-4.2 4.2.3-2ubuntu7 (using .../cpp-4.2_4.2.4-1ubuntu3_i386.deb) ...
Unpacking replacement cpp-4.2 ...
Preparing to replace gcc-4.2 4.2.3-2ubuntu7 (using .../gcc-4.2_4.2.4-1ubuntu3_i386.deb) ...
Unpacking replacement gcc-4.2 ...
Preparing to replace libgcc1 1:4.2.3-2ubuntu7 (using .../libgcc1_1%3a4.2.4-1ubuntu3_i386.deb) ...
Unpacking replacement libgcc1 ...
Setting up libgcc1 (1:4.2.4-1ubuntu3) ...

Processing triggers for libc6 ...
ldconfig deferred processing now taking place
(Reading database ... 92577 files and directories currently installed.)
Preparing to replace cpp 4:4.2.3-1ubuntu3 (using .../cpp_4%3a4.2.3-1ubuntu6_i386.deb) ...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "c"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Unpacking replacement cpp ...
Selecting previously deselected package libstdc++6-4.2-dev.
Unpacking libstdc++6-4.2-dev (from .../libstdc++6-4.2-dev_4.2.4-1ubuntu3_i386.deb) ...
Selecting previously deselected package g++-4.2.
Unpacking g++-4.2 (from .../g++-4.2_4.2.4-1ubuntu3_i386.deb) ...
Preparing to replace gcc 4:4.2.3-1ubuntu3 (using .../gcc_4%3a4.2.3-1ubuntu6_i386.deb) ...
Removing old gcc doc directory.
Unpacking replacement gcc ...
Selecting previously deselected package g++.
Unpacking g++ (from .../g++_4%3a4.2.3-1ubuntu6_i386.deb) ...
Setting up libgomp1 (4.2.4-1ubuntu3) ...

Setting up libffi4 (4.2.4-1ubuntu3) ...

Setting up cpp-4.2 (4.2.4-1ubuntu3) ...
Setting up gcc-4.2 (4.2.4-1ubuntu3) ...
Setting up cpp (4:4.2.3-1ubuntu6) ...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "c"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

Setting up gcc (4:4.2.3-1ubuntu6) ...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "c"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "c"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "c"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

Setting up libstdc++6-4.2-dev (4.2.4-1ubuntu3) ...
Setting up g++-4.2 (4.2.4-1ubuntu3) ...
Setting up g++ (4:4.2.3-1ubuntu6) ...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "c"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "c"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "c"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

Processing triggers for libc6 ...
ldconfig deferred processing now taking place
root@kubuntu:~/DarwinStreamingSrvr5.5.5-Source#

Buildit명령으로 컴파일을 시도했지만 g++ 컴파일부분에서 컴파일을 찾을수 없다하여 g++를 다시 설치
root@kubuntu:~/DarwinStreamingSrvr5.5.5-Source#./Buildit install

Installing source build of Darwin Streaming Proxy
creating directory StreamingProxy-5.5.5-Linux
copying StreamingProxy to StreamingProxy-5.5.5-Linux/StreamingProxy
copying streamingproxy.conf to StreamingProxy-5.5.5-Linux/streamingproxy.conf
copying StreamingProxy.html to StreamingProxy-5.5.5-Linux/StreamingProxy.html

Done.
StreamingProxy-5.5.5-Linux/
StreamingProxy-5.5.5-Linux/streamingproxy.conf
StreamingProxy-5.5.5-Linux/StreamingProxy
StreamingProxy-5.5.5-Linux/StreamingProxy.html
Success!
root@kubuntu:~/DarwinStreamingSrvr5.5.5-Source#

드디어 컴파일 성공 메세지..

그전에 해야할일이 있다. perl이 언어상 문제때문에 에러가 생기는 점을 해결해야 한다.
#vi /etc/profile을 열고 중간어디쯤에...
LC_ALL=C;export LC_ALL 
을 추가한다.


root@kubuntu:~/DarwinStreamingSrvr5.5.5-Source# cd DarwinStreamingSrvr5.5.5-Linux/
root@kubuntu:~/DarwinStreamingSrvr5.5.5-Source/DarwinStreamingSrvr5.5.5-Linux# sudo ./Install

Installing Darwin Streaming Server

Checking for and Killing currently running Darwin Streaming Server
Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
Removing previous versions of Darwin Streaming Server
removing /usr/local/sbin/DarwinStreamingServer

Backing up previous config files
backing up /etc/streaming/streamingserver.xml to /etc/streaming/streamingserver.xml.backup
backing up /etc/streaming/qtusers to /etc/streaming/qtusers.backup
backing up /etc/streaming/qtgroups to /etc/streaming/qtgroups.backup

Inserting path to perl into scripts..

Creating unprivileged user to run the server = "qtss".
copying DarwinStreamingServer to /usr/local/sbin/DarwinStreamingServer
copying PlaylistBroadcaster to /usr/local/bin/PlaylistBroadcaster
copying MP3Broadcaster to /usr/local/bin/MP3Broadcaster
copying qtpasswd to /usr/local/bin/qtpasswd
copying createuserstreamingdir to /usr/local/bin/createuserstreamingdir
Generating a new prefs file at /etc/streaming/streamingserver.xml
INFO: Module Loaded...QTSSHomeDirectoryModule [dynamic]
INFO: Module Loaded...QTSSRefMovieModule [dynamic]
INFO: Module Loaded...QTSSFileModule [static]
INFO: Module Loaded...QTSSReflectorModule [static]
INFO: Module Loaded...QTSSRelayModule [static]
INFO: Module Loaded...QTSSAccessLogModule [static]
INFO: Module Loaded...QTSSFlowControlModule [static]
INFO: Module Loaded...QTSSPosixFileSysModule [static]
INFO: Module Loaded...QTSSAdminModule [static]
INFO: Module Loaded...QTSSMP3StreamingModule [static]
INFO: Module Loaded...QTSSAccessModule [static]
WARNING: No users file found at /etc/streaming/qtusers.
WARNING: No groups file found at /etc/streaming/qtgroups.

copying relayconfig.xml-Sample to /etc/streaming/relayconfig.xml-Sample

copying qtusers to /etc/streaming/qtusers

copying qtgroups to /etc/streaming/qtgroups
copying readme.txt to /var/streaming/readme.txt
copying 3rdPartyAcknowledgements.rtf to /var/streaming/3rdPartyAcknowledgements.rtf
copying sample_100kbit.mov into /usr/local/movies/sample_100kbit.mov
copying sample_300kbit.mov into /usr/local/movies/sample_300kbit.mov
copying sample_100kbit.mp4 into /usr/local/movies/sample_100kbit.mp4
copying sample_300kbit.mp4 into /usr/local/movies/sample_300kbit.mp4
copying sample.mp3 into /usr/local/movies/sample.mp3
copying sample_50kbit.3gp into /usr/local/movies/sample_50kbit.3gp
copying sample_h264_100kbit.mp4 into /usr/local/movies/sample_h264_100kbit.mp4
copying sample_h264_300kbit.mp4 into /usr/local/movies/sample_h264_300kbit.mp4
copying sample_h264_1mbit.mp4 into /usr/local/movies/sample_h264_1mbit.mp4
copying streamingadminserver.pl into /usr/local/sbin/streamingadminserver.pl
copying Admin HTML to /var/streaming/AdminHtml directory

Launching streamingadminserver.pl

Installation Complete

Darwin Streaming Server Setup

In order to administer the Darwin Streaming Server you must create an administrator user [Note: The administrator user name cannot contain spaces, or single or double quote characters, and cannot be more than 255 characters long].
Please enter a new administrator user name: bestakas


You must also enter a password for the administrator user [Note: The administrator password cannot contain spaces, or quotes, either single or double, and cannot be more than 80 characters long].
Please enter a new administrator Password:
Re-enter the new administrator password:
Adding userName bestakas
Setup Complete!
root@kubuntu:~/DarwinStreamingSrvr5.5.5-Source/DarwinStreamingSrvr5.5.5-Linux#

에러없이 끝났다. 중간에 새로히 컴파일한 디렉토리가 생긴다는걸 모르고 30분간 또 좌절모드..

드디어 클라이언트 웹상에서 http://서버IP:1220을 입력...

아~! 성공했다.
fedora core10 에서 같은 방법으로 다시 한번 해봐야 겠다.


다음 포스팅은 DSS서버의 셋팅에 대해서 포스팅한다.
2009. 5. 24. 09:02

페도라코어 VLC 스트리밍 서버 - 브로드캐스팅형 방송 구현


페도라10을 설치하자 마자, vlc Media를 설치하였으면,
 
#setenforce 0
#system-config-firewall

로 방화벽과 보안을 풀어준다.(나중에 다시 보안설정을 하면 된다.)

#service vsftpd restart로 ftp서버를 기동시킨후, 샘플용 화일들을 윈도우 클라이언트로 부터 업로드한다.

개인 계정으로 #/usr/bin/vlc 로 vlc 미디어 플레이어를 연다.


스크립트 메세지를 보여주며 vlc 미디어  플레이어 화면이 열린다.

 
스트리밍 방송을 하고자 하는 화일을 선택한다.

Output옵션이 열리면 MMSH를 체크하고 ADDRESS에는 자신의 IP나 도메인을 기재하고 알맞은 포트를 선택한다.
프로파일로는 wmf화일이기 때문에 ASF/WMV 에 체크..

테스트로 윈도우즈 클라이언트에서 mms://서버IP:포트번호를 입력하고 실행하자, MS미디어 플레이어가 열리면서 방송을 볼수 있었다.


<Divx급의 파일도 깨끗히 잘 방송된다. divx의 보안성으로 윈도우캡쳐가 불가능했다. 하지만 제대로 방영되고 있는 모습>


* 하지만 이것은 내가 의도한 바가 아니다. 의도한바는 브로드캐스트형의 방송이 아니라 주문형 방송이다. 동영상 파일을 서버에 저장한 후, 고객이 원하면 아무때나 꺼내볼수 있는 주문형의 방송을 원한다. VLC가 지원하는지 한번 다시 한번 체크해봐야 겠다.
2009. 5. 24. 00:48

fedora core VLC스트리밍서버 설치


NT서버인 2003에서는 아주 쉽게 구성된 스트리밍 서버가 , 리눅스에서는 아주 곤욕을 치르고 있다. 스트리밍 서버를 납품해야 하는데, NT서버로 납품하면 먹을게 작아지거든..

fedora core9에서 소스컴파일, yum,rpm으로 다 설치해봐도..역시.. 실패다
의존성문제에서 libass.so.3부분에서 꼭 걸리고 만다. 구글링을 해봐도 역시 실패담만 영어로....

그래서 결국엔 ubuntu나 fedora core 10으로 옮기기로 했다.
우분투에서는 apt-get install vlc하니깐 너무 잘설치된다. 그러나 우분투는 명령어가 너무 생소해서 우선 패스.. 페도라 계열에서 설치안되면 마지막으로 가기로 하고...

fedora10을 설치하고..
vlc사이트로 이동..

http://www.videolan.org/vlc/download-fedora.html


 

Fedora 9 and Fedora 10

Use RPM Fusion for F9 and F10 (available for x86, x86_64, ppc and ppc64)
Install rpmfusion-free-release-stable.noarch.rpm for F9 and f10

    $> su -
#> rpm -ivh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm

#> yum install vlc
#> yum install mozilla-vlc (optionnal)

[root@japasop ~]# rpm -ivh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm
Retrieving http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm
warning: /var/tmp/rpm-tmp.zhJC84: Header V3 DSA signature: NOKEY, key ID 49c8885a
Preparing...                ########################################### [100%]
   1:rpmfusion-free-release ########################################### [100%]

역시 두번째 부분 yum install vlc에서 에러가 난다.

UnicodeDecodeError: 'ascii' codec can't decode byte 0xed in position 0: ordinal not in range(128)

에러의 원인은 이것...

find명령으로 site.py를 찾아 파일안의 encoding="ascii"를 encoding="UTF-8"로 바꾸어준다.
그리고 나서 다시 재설치

 Dependencies Resolved

==================================================================================================================
 Package                         Arch         Version                          Repository                    Size
==================================================================================================================
Installing:
 vlc                             i386         0.9.9-2.fc10                     rpmfusion-free-updates       1.9 M
Installing for dependencies:
 SDL_image                       i386         1.2.6-6.fc9                      fedora                        44 k
 a52dec                          i386         0.7.4-13.fc10                    rpmfusion-free                48 k
 aalib-libs                      i386         1.4.0-0.16.rc5.fc10              fedora                        66 k
 enca                            i386         1.9-4.fc9                        fedora                       120 k
 faac                            i386         1.28-1.fc10                      rpmfusion-free-updates        85 k
 faad2-libs                      i386         1:2.6.1-6.fc10                   rpmfusion-free               166 k
 ffmpeg-libs                     i386         0.4.9-0.55.20080908.fc10         rpmfusion-free-updates       4.7 M
 fluidsynth-libs                 i386         1.0.8-2.fc10                     fedora                       490 k
 freeglut                        i386         2.4.0-14.fc9                     fedora                       146 k
 giflib                          i386         4.1.3-9                          fedora                        39 k
 gpac-libs                       i386         0.4.5-3.fc10                     rpmfusion-free-updates       1.6 M
 gpm                             i386         1.20.5-2.fc10                    updates                      226 k
 gsm                             i386         1.0.12-6.fc9                     fedora                        27 k
 imlib2                          i386         1.4.2-2.fc10                     updates                      574 k
 jack-audio-connection-kit       i386         0.116.1-3.fc10                   updates                      203 k
 lame-libs                       i386         3.98.2-2.fc10                    rpmfusion-free               264 k
 lash                            i386         0.5.4-2.fc9                      fedora                       158 k
 libXvMC                         i386         1.0.4-5.fc10                     fedora                        22 k
 libass                          i386         0.9.6-2.fc10                     updates                       51 k
 libcaca                         i386         0.99-0.7.beta16.fc10             updates                      208 k
 libcddb                         i386         1.3.0-4.fc9                      fedora                        71 k
 libdc1394                       i386         2.0.2-1.fc10                     fedora                       116 k
 libdca                          i386         0.0.5-3.fc10                     rpmfusion-free               109 k
 libdvbpsi                       i386         0.1.6-3.fc10                     rpmfusion-free                40 k
 libdvdnav                       i386         4.1.3-1.fc10                     fedora                        86 k
 libdvdread                      i386         4.1.3-1.fc10                     fedora                        55 k
 libebml                         i386         0.7.8-1.fc9                      fedora                        73 k
 libfreebob                      i386         1.0.11-3.fc10                    fedora                       160 k
 libid3tag                       i386         0.15.1b-7.fc10                   fedora                        45 k
 libmad                          i386         0.15.1b-10.fc10                  rpmfusion-free-updates        84 k
 libmatroska                     i386         0.8.1-3.fc9                      fedora                       201 k
 libmodplug                      i386         1:0.8.7-1.fc10                   updates                      171 k
 libmp4v2                        i386         1.5.0.1-6.fc10                   fedora                       259 k
 libmpcdec                       i386         1.2.6-4.fc9                      fedora                        27 k
 libmpeg2                        i386         0.5.1-3.fc10                     rpmfusion-free                72 k
 libsysfs                        i386         2.1.0-4.fc10                     fedora                        47 k
 libtar                          i386         1.2.11-11.fc10                   fedora                        30 k
 libupnp                         i386         1.6.6-1.fc10                     fedora                       102 k
 lirc-libs                       i386         0.8.4a-2.fc10                    updates                       21 k
 live555                         i386         0-0.20.2008.07.25.fc10           rpmfusion-free               315 k
 opencv                          i386         1.0.0-10.fc10                    updates                      2.5 M
 openjpeg-libs                   i386         1.3-2.fc9                        fedora                        66 k
 phonon                          i386         4.3.1-4.fc10                     updates                      152 k
 phonon-backend-xine             i386         4.3.1-4.fc10                     updates                      162 k
 portaudio                       i386         19-6.fc10                        updates                       88 k
 qt                              i386         1:4.5.0-14.fc10                  updates                      3.8 M
 qt-x11                          i386         1:4.5.0-14.fc10                  updates                       16 M
 schroedinger                    i386         1.0.5-3.fc10                     fedora                       215 k
 twolame-libs                    i386         0.3.12-3.fc10                    rpmfusion-free                53 k
 vlc-core                        i386         0.9.9-2.fc10                     rpmfusion-free-updates       7.7 M
 x264-libs                       i386         0.0.0-0.20.20080905.fc10         rpmfusion-free-updates       409 k
 xine-lib                        i386         1.1.16.3-2.fc10                  updates                      2.7 M
 xorg-x11-fonts-misc             noarch       7.2-6.fc9                        fedora                       5.9 M
 xosd                            i386         2.2.14-11.fc9                    fedora                        48 k
 xvidcore                        i386         1.2.1-1.fc10                     rpmfusion-free-updates       254 k
 zvbi                            i386         0.2.30-1.fc9                     fedora                       460 k

Transaction Summary
==================================================================================================================
Install     57 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 54 M
Downloading Packages:
(1/57): lirc-libs-0.8.4a-2.fc10.i386.rpm                                                   |  21 kB     00:01
(2/57): libXvMC-1.0.4-5.fc10.i386.rpm                                                      |  22 kB     00:00
(3/57): libmpcdec-1.2.6-4.fc9.i386.rpm                                                     |  27 kB     00:00
(4/57): gsm-1.0.12-6.fc9.i386.rpm                                                          |  27 kB     00:00
(5/57): libtar-1.2.11-11.fc10.i386.rpm                                                     |  30 kB     00:00
(6/57): giflib-4.1.3-9.i386.rpm                                                            |  39 kB     00:00
(7/57): libdvbpsi-0.1.6-3.fc10.i386.rpm                                                    |  40 kB     00:02
(8/57): SDL_image-1.2.6-6.fc9.i386.rpm                                                     |  44 kB     00:01
(9/57): libid3tag-0.15.1b-7.fc10.i386.rpm                                                  |  45 kB     00:00
(10/57): libsysfs-2.1.0-4.fc10.i386.rpm                                                    |  47 kB     00:00
(11/57): xosd-2.2.14-11.fc9.i386.rpm                                                       |  48 kB     00:00
(12/57): a52dec-0.7.4-13.fc10.i386.rpm                                                     |  48 kB     00:02
(13/57): libass-0.9.6-2.fc10.i386.rpm                                                      |  51 kB     00:01
(14/57): twolame-libs-0.3.12-3.fc10.i386.rpm                                               |  53 kB     00:03
(15/57): libdvdread-4.1.3-1.fc10.i386.rpm                                                  |  55 kB     00:01
(16/57): openjpeg-libs-1.3-2.fc9.i386.rpm                                                  |  66 kB     00:01
(17/57): aalib-libs-1.4.0-0.16.rc5.fc10.i386.rpm                                           |  66 kB     00:02
(18/57): libcddb-1.3.0-4.fc9.i386.rpm                                                      |  71 kB     00:02
(19/57): libmpeg2-0.5.1-3.fc10.i386.rpm                                                    |  72 kB     00:03
(20/57): libebml-0.7.8-1.fc9.i386.rpm                                                      |  73 kB     00:02
(21/57): libmad-0.15.1b-10.fc10.i386.rpm                                                   |  84 kB     00:02
(22/57): faac-1.28-1.fc10.i386.rpm                                                         |  85 kB     00:00
(23/57): libdvdnav-4.1.3-1.fc10.i386.rpm                                                   |  86 kB     00:02
(24/57): portaudio-19-6.fc10.i386.rpm                                                      |  88 kB     00:02
(25/57): libupnp-1.6.6-1.fc10.i386.rpm                                                     | 102 kB     00:02
(26/57): libdca-0.0.5-3.fc10.i386.rpm                                                      | 109 kB     00:03
(27/57): libdc1394-2.0.2-1.fc10.i386.rpm                                                   | 116 kB     00:02
(28/57): enca-1.9-4.fc9.i386.rpm                                                           | 120 kB     00:02
(29/57): freeglut-2.4.0-14.fc9.i386.rpm                                                    | 146 kB     00:02
(30/57): phonon-4.3.1-4.fc10.i386.rpm                                                      | 152 kB     00:02
(31/57): lash-0.5.4-2.fc9.i386.rpm                                                         | 158 kB     00:02
(32/57): libfreebob-1.0.11-3.fc10.i386.rpm                                                 | 160 kB     00:02
(33/57): phonon-backend-xine-4.3.1-4.fc10.i386.rpm                                         | 162 kB     00:02
(34/57): faad2-libs-2.6.1-6.fc10.i386.rpm                                                  | 166 kB     00:04
(35/57): libmodplug-0.8.7-1.fc10.i386.rpm                                                  | 171 kB     00:03
(36/57): libmatroska-0.8.1-3.fc9.i386.rpm                                                  | 201 kB     00:03
(37/57): jack-audio-connection-kit-0.116.1-3.fc10.i386.rpm                                 | 203 kB     00:02
(38/57): libcaca-0.99-0.7.beta16.fc10.i386.rpm                                             | 208 kB     00:02
(39/57): schroedinger-1.0.5-3.fc10.i386.rpm                                                | 215 kB     00:02
(40/57): gpm-1.20.5-2.fc10.i386.rpm                                                        | 226 kB     00:03
(41/57): xvidcore-1.2.1-1.fc10.i386.rpm                                                    | 254 kB     00:05
(42/57): libmp4v2-1.5.0.1-6.fc10.i386.rpm                                                  | 259 kB     00:03
(43/57): lame-libs-3.98.2-2.fc10.i386.rpm                                                  | 264 kB     00:05
(44/57): live555-0-0.20.2008.07.25.fc10.i386.rpm                                           | 315 kB     00:02
(45/57): x264-libs-0.0.0-0.20.20080905.fc10.i386.rpm                                       | 409 kB     00:03
(46/57): zvbi-0.2.30-1.fc9.i386.rpm                                                        | 460 kB     00:04
(47/57): fluidsynth-libs-1.0.8-2.fc10.i386.rpm                                             | 490 kB     00:02
(48/57): imlib2-1.4.2-2.fc10.i386.rpm                                                      | 574 kB     00:05
(49/57): gpac-libs-0.4.5-3.fc10.i386.rpm                                                   | 1.6 MB     00:16
(50/57): vlc-0.9.9-2.fc10.i386.rpm                                                         | 1.9 MB     00:16
(51/57): opencv-1.0.0-10.fc10.i386.rpm                                                     | 2.5 MB     00:16
(52/57): xine-lib-1.1.16.3-2.fc10.i386.rpm                                                 | 2.7 MB     00:17
(53/57): qt-4.5.0-14.fc10.i386.rpm                                                         | 3.8 MB     00:23
(54/57): ffmpeg-libs-0.4.9-0.55.20080908.fc10.i386.rpm                                     | 4.7 MB     01:08
(55/57): xorg-x11-fonts-misc-7.2-6.fc9.noarch.rpm                                          | 5.9 MB     00:33
(56/57): vlc-core-0.9.9-2.fc10.i386.rpm                                                    | 7.7 MB     02:32
(57/57): qt-x11-4.5.0-14.fc10.i386.rpm                                                     |  16 MB     01:33
------------------------------------------------------------------------------------------------------------------
Total                                                                              90 kB/s |  54 MB     10:07
warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 49c8885a
rpmfusion-free-updates/gpgkey                                                              | 1.7 kB     00:00
Importing GPG key 0x49C8885A "RPM Fusion repository (Fedora - free) <rpmfusion-buildsys@lists.rpmfusion.org>" from /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-fedora
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : qt                                                                                        1/57
  Installing     : faad2-libs                                                                                2/57
  Installing     : freeglut                                                                                  3/57
  Installing     : libmodplug                                                                                4/57
  Installing     : libmpcdec                                                                                 5/57
  Installing     : a52dec                                                                                    6/57
  Installing     : schroedinger                                                                              7/57
  Installing     : libmad                                                                                    8/57
  Installing     : libebml                                                                                   9/57
  Installing     : libXvMC                                                                                  10/57
  Installing     : libdvdread                                                                               11/57
  Installing     : xvidcore                                                                                 12/57
  Installing     : libdvdnav                                                                                13/57
  Installing     : xine-lib                                                                                 14/57
  Installing     : libmatroska                                                                              15/57
  Installing     : libcaca                                                                                  16/57
  Installing     : lirc-libs                                                                                17/57
  Installing     : openjpeg-libs                                                                            18/57
  Installing     : gpac-libs                                                                                19/57
  Installing     : x264-libs                                                                                20/57
  Installing     : lame-libs                                                                                21/57
  Installing     : twolame-libs                                                                             22/57
  Installing     : libmpeg2                                                                                 23/57
  Installing     : giflib                                                                                   24/57
  Installing     : imlib2                                                                                   25/57
  Installing     : libdc1394                                                                                26/57
  Installing     : libid3tag                                                                                27/57
  Installing     : libsysfs                                                                                 28/57
  Installing     : zvbi                                                                                     29/57
  Installing     : libfreebob                                                                               30/57
  Installing     : jack-audio-connection-kit                                                                31/57
  Installing     : lash                                                                                     32/57
  Installing     : fluidsynth-libs                                                                          33/57
  Installing     : portaudio                                                                                34/57
  Installing     : live555                                                                                  35/57
  Installing     : libupnp                                                                                  36/57
  Installing     : libdca                                                                                   37/57
  Installing     : libdvbpsi                                                                                38/57
  Installing     : gpm                                                                                      39/57
  Installing     : aalib-libs                                                                               40/57
  Installing     : gsm                                                                                      41/57
  Installing     : libtar                                                                                   42/57
  Installing     : opencv                                                                                   43/57
  Installing     : SDL_image                                                                                44/57
  Installing     : libmp4v2                                                                                 45/57
  Installing     : faac                                                                                     46/57
  Installing     : ffmpeg-libs                                                                              47/57
  Installing     : enca                                                                                     48/57
  Installing     : libass                                                                                   49/57
  Installing     : libcddb                                                                                  50/57
  Installing     : xorg-x11-fonts-misc                                                                      51/57
  Installing     : xosd                                                                                     52/57
  Installing     : vlc-core                                                                                 53/57
  Installing     : qt-x11                                                                                   54/57
  Installing     : phonon                                                                                   55/57
  Installing     : phonon-backend-xine                                                                      56/57
  Installing     : vlc                                                                                      57/57

Installed:
  vlc.i386 0:0.9.9-2.fc10

Dependency Installed:
  SDL_image.i386 0:1.2.6-6.fc9                                a52dec.i386 0:0.7.4-13.fc10
  aalib-libs.i386 0:1.4.0-0.16.rc5.fc10                       enca.i386 0:1.9-4.fc9
  faac.i386 0:1.28-1.fc10                                     faad2-libs.i386 1:2.6.1-6.fc10
  ffmpeg-libs.i386 0:0.4.9-0.55.20080908.fc10                 fluidsynth-libs.i386 0:1.0.8-2.fc10
  freeglut.i386 0:2.4.0-14.fc9                                giflib.i386 0:4.1.3-9
  gpac-libs.i386 0:0.4.5-3.fc10                               gpm.i386 0:1.20.5-2.fc10
  gsm.i386 0:1.0.12-6.fc9                                     imlib2.i386 0:1.4.2-2.fc10
  jack-audio-connection-kit.i386 0:0.116.1-3.fc10             lame-libs.i386 0:3.98.2-2.fc10
  lash.i386 0:0.5.4-2.fc9                                     libXvMC.i386 0:1.0.4-5.fc10
  libass.i386 0:0.9.6-2.fc10                                  libcaca.i386 0:0.99-0.7.beta16.fc10
  libcddb.i386 0:1.3.0-4.fc9                                  libdc1394.i386 0:2.0.2-1.fc10
  libdca.i386 0:0.0.5-3.fc10                                  libdvbpsi.i386 0:0.1.6-3.fc10
  libdvdnav.i386 0:4.1.3-1.fc10                               libdvdread.i386 0:4.1.3-1.fc10
  libebml.i386 0:0.7.8-1.fc9                                  libfreebob.i386 0:1.0.11-3.fc10
  libid3tag.i386 0:0.15.1b-7.fc10                             libmad.i386 0:0.15.1b-10.fc10
  libmatroska.i386 0:0.8.1-3.fc9                              libmodplug.i386 1:0.8.7-1.fc10
  libmp4v2.i386 0:1.5.0.1-6.fc10                              libmpcdec.i386 0:1.2.6-4.fc9
  libmpeg2.i386 0:0.5.1-3.fc10                                libsysfs.i386 0:2.1.0-4.fc10
  libtar.i386 0:1.2.11-11.fc10                                libupnp.i386 0:1.6.6-1.fc10
  lirc-libs.i386 0:0.8.4a-2.fc10                              live555.i386 0:0-0.20.2008.07.25.fc10
  opencv.i386 0:1.0.0-10.fc10                                 openjpeg-libs.i386 0:1.3-2.fc9
  phonon.i386 0:4.3.1-4.fc10                                  phonon-backend-xine.i386 0:4.3.1-4.fc10
  portaudio.i386 0:19-6.fc10                                  qt.i386 1:4.5.0-14.fc10
  qt-x11.i386 1:4.5.0-14.fc10                                 schroedinger.i386 0:1.0.5-3.fc10
  twolame-libs.i386 0:0.3.12-3.fc10                           vlc-core.i386 0:0.9.9-2.fc10
  x264-libs.i386 0:0.0.0-0.20.20080905.fc10                   xine-lib.i386 0:1.1.16.3-2.fc10
  xorg-x11-fonts-misc.noarch 0:7.2-6.fc9                      xosd.i386 0:2.2.14-11.fc9
  xvidcore.i386 0:1.2.1-1.fc10                                zvbi.i386 0:0.2.30-1.fc9

Complete!
[root@localhost ~]#


의존성 프로그램들도 많기도 하다... 어쨋든 몇일만에 성공했다.(libass.2.9.0버젼을 페도라9에서 컴파일 설치했으나, libass.so.3를 읽을수 없다는 에러로 매번 실패했다.)

진작 9에서 10으로 탈걸...옵션으로 있는 mozilla-vlc까지 설치

 [root@localhost ~]# yum install mozilla-vlc
Failed to set locale, defaulting to C
Loaded plugins: refresh-packagekit
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package mozilla-vlc.i386 0:0.9.9-2.fc10 set to be updated
rpmfusion-free/filelists_db                                                                | 269 kB     00:05
rpmfusion-free-updates/filelists_db                                                        | 152 kB     00:02
--> Finished Dependency Resolution

Dependencies Resolved

==================================================================================================================
 Package                  Arch              Version                     Repository                           Size
==================================================================================================================
Installing:
 mozilla-vlc              i386              0.9.9-2.fc10                rpmfusion-free-updates               60 k

Transaction Summary
==================================================================================================================
Install      1 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 60 k
Is this ok [y/N]: y
Is this ok [y/N]: yes
Downloading Packages:
mozilla-vlc-0.9.9-2.fc10.i386.rpm                                                          |  60 kB     00:02
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : mozilla-vlc                                                                                1/1

Installed:
  mozilla-vlc.i386 0:0.9.9-2.fc10

Complete!
[root@localhost ~]#



옵션 mozilla-vlc도 설치완료... 이제 한번 돌려보고.. 실제서버에서의 설치만 남았다. 다음 포스팅은 리눅스 vlc서버스트리밍 서버 운영법을 남길까 한다.




2009. 5. 15. 20:24

제로보드 Xe Rewrite Mod설정하기

제로보드를 쓰다보면 상당히 신경을 많이 썼다고 하는부분이 일반 가입형 블로그에서 볼수 있는 rewrite mod이다.

기존의 제로보드4에서는 domain/zeroboard.php?=xxxx.xxx이런식으로 표현되었으나, rewrite모드로 인해, domain/숫자 , domain/게시판명으로 쉽게 이동할수 있다.

그러나 도메인이 없는 ~userid를 이용하는 사람들에게는 약간의 설정이 필요하다.

login as: communityart
communityart@121.162.110.124's password:
Last login: Thu May 14 12:01:47 2009 from 218.55.189.179
[communityart@localhost ~]$ ls
blue_bar.png  public_html  tc  textcube-1.7.8-core.tar.gz  xe  xe.1.2.2.zip
[communityart@localhost ~]$ cd public_html/
[communityart@localhost public_html]$ ls -la
total 12100
drwxrwxrwx 13 communityart communityart    4096 May 15 05:16 .
drwx---r-x  6 communityart communityart    4096 May 14 11:44 ..
-rw-r--r--  1 communityart communityart    3772 May 15 05:16 .htaccess
-rw-r--r--  1 communityart communityart   40053 Oct  1  2007 LICENSE
drwxr-xr-x 15 communityart communityart    4096 May 15 02:18 addons
drwxr-xr-x 18 communityart communityart    4096 Apr 30 17:04 classes
drwxr-xr-x  6 communityart communityart    4096 May 15 02:18 common
drwxr-xr-x  2 communityart communityart    4096 Apr 30 17:04 config
drwxr-xr-x  7 nobody       nobody          4096 May 15 02:25 files
-rw-r--r--  1 communityart communityart    3045 Apr  8 19:10 index.php
drwxr-xr-x  6 communityart communityart    4096 May 15 09:01 layouts
drwxr-xr-x  4 communityart communityart    4096 Apr 30 17:04 libs
drwxr-xr-x 32 communityart communityart    4096 May 15 02:18 modules
drwxr-xr-x 29 communityart communityart    4096 May 15 06:30 widgets
drwxr-xr-x 13 communityart communityart    4096 Apr 30 17:04 widgetstyles
drwxr-xr-x  2 communityart communityart    4096 May 15 02:18 xe
-rwx---rwx  1 communityart communityart 6920641 May 14 12:44 xe.1.2.2.zip
-rwx---r-x  1 communityart communityart 5337218 Apr  8 12:50 xe_full.1.2.0.tgz
[communityart@localhost public_html]$

communityart라는 유져를 등록하고, xe설치후 빨간색의 .htaccess 화일을 수정해야한다.숨김화일이기 때문에 ls -la명령으로 봐야한다.

vi .htacess 으로 수정하자.
화일의 앞부분...

RewriteEngine On
RewriteBase /~communityart/

# static files
RewriteRule ^(.+)/files/member_extra_info/(.*) ./files/member_extra_info/$2 [L]
RewriteRule ^(.+)/files/attach/(.*) ./files/attach/$2 [L]


Rewrite /~userid/ 부분을 추가하자...
그리고 저장...

설정완료..이제부터 rewrite모드를 사용할수 있다.


정상적으로 rewrite mod가 적용되었음을 알수있다.