반응형

우분투 저장소 변경하기

$ sudo vi /etc/apt/sources.list

:%s/kr.archive.ubuntu.com/ftp.daum.net/g

:%s/security.ubuntu.com/ftp.daum.net/g

$ sudo apt-get update && sudo apt-get upgrade


WOL  설정하기

1. 공유기 설정(WOL 설정 가능기종)

2. ubuntu 서버 설정하기

ethtool이 설치 되어 있는지 확인

$ whereis ethtool

경로가 나오면 설치되어 있는것이고 아무 경로도 나오지 않는다면 아래 명령어로 설치

$ sudo apt-get install ethtool

wol 스크립트 생성 경로로 이동

$ cd /etc/init.d/

vi 편집기를 이용해 파일 생성

$ sudo vi wakeonlanconfig

ethtool -s eth0 wol g

exit

작성된 설정 스크립트 실행 권한 부여

$ sudo chmod a+x wakeonlanconfig

정상완료시 아무런 메시지도 출력되지 않음

부팅시마다 해당 스크립트가 자동실행되도록 설정

$ sudo update-rc.d -f wakeonlanconfig defaults

마지막으로 최초 한번 스크립트 실행

$ sudo /etc/init.d/wakeonlanconfig


torrent 프로그램 Transmission-daemon 설치 및 설정

Transmission-daemon 설치

$ sudo apt-get install transmission-daemon

설정파일 수정하기 전에 서비스를 중지시킨다

$ sudo service transmission-daemon stop

설정파일 수정(!!주석부분은 빼고 저장한다)

$ sudo vi /etc/transmission-daemon/settings.json

{

    "alt-speed-down": 50,

    "alt-speed-enabled": false,

    "alt-speed-time-begin": 540,

    "alt-speed-time-day": 127,

    "alt-speed-time-enabled": false,

    "alt-speed-time-end": 1020,

    "alt-speed-up": 50,

    "bind-address-ipv4": "0.0.0.0",

    "bind-address-ipv6": "::",

    "blocklist-enabled": false,

    "blocklist-url": "http://www.example.com/blocklist",

    "cache-size-mb": 4,

    "dht-enabled": true,

    "download-dir": "/home/guda/Downloads",    //다운로드 완료 파일 경로

    "download-limit": 100,

    "download-limit-enabled": 0,

    "download-queue-enabled": true,

    "download-queue-size": 5,

    "encryption": 1,

    "idle-seeding-limit": 30,

    "idle-seeding-limit-enabled": false,

    "incomplete-dir": "/home/guda/temp",                        // 다운로드 임시 파일 경로

    "incomplete-dir-enabled": true,                                  // 다운로드 임시 파일 경로 사용여부

    "lpd-enabled": false,

    "max-peers-global": 200,

    "message-level": 2,

    "peer-congestion-algorithm": "",

    "peer-limit-global": 240,

    "peer-limit-per-torrent": 60,

    "peer-port": 51413,

    "peer-port-random-high": 65535,

    "peer-port-random-low": 49152,

    "peer-port-random-on-start": false,

    "peer-socket-tos": "default",

    "pex-enabled": true,

    "port-forwarding-enabled": false,

    "preallocation": 1,

    "prefetch-enabled": 1,

    "queue-stalled-enabled": true,

    "queue-stalled-minutes": 30,

    "ratio-limit": 2,

    "ratio-limit-enabled": false,

    "rename-partial-files": true,

    "rpc-authentication-required": true,

    "rpc-bind-address": "0.0.0.0",

    "rpc-authentication-required": true,

    "rpc-bind-address": "0.0.0.0",

    "rpc-enabled": true,

    "rpc-password": "{daad7d2d8asdf342hiike4541c7e8b55234dfsd9d6aad0nyBkOaGE",  //패스워드(자동암호화됨)

    "rpc-port": 9091,                                        //포트번호

    "rpc-url": "/transmission/",

    "rpc-username": "guda",                            //아이디

    "rpc-whitelist": "127.0.0.1",                        //접속가능 IP주소 리스트(화이트 리스트)

    "rpc-whitelist-enabled": false,                    //접속가능 IP주소 리스트(화이트 리스트) 사용여부

    "scrape-paused-torrents-enabled": true,

    "script-torrent-done-enabled": false,

    "script-torrent-done-filename": "",

    "seed-queue-enabled": false,

    "seed-queue-size": 10,

    "speed-limit-down": 100,

    "speed-limit-down-enabled": false,

    "speed-limit-up": 100,

    "speed-limit-up-enabled": false,

    "start-added-torrents": true,

    "trash-original-torrent-files": false,         //토렌트 파일 삭제 여부

    "umask": 18,

    "upload-limit": 100,

    "upload-limit-enabled": 0,

    "upload-slots-per-torrent": 14,

    "utp-enabled": true,

    "watch-dir": "/home/guda/torrent",        //토렌트 자동추가 폴더

    "watch-dir-enabled": true                    //토렌트 자동추가 시행 여부

}


설정한 폴더 권한 설정

$ sudo chmod 770 다운로드 폴더

$ sudo chgrp -R debian-transmission  다운로드 폴더  

$ sudo chmod 770 watch-dir 폴더

$ sudo chgrp -R debian-transmission  watch-dir 폴더  

$ sudo chmod 770 다운로드중인 폴더

$ sudo chgrp -R debian-transmission  다운로드중인 폴더  


서비스 재시작

$ sudo service transmission-daemon start

 

기본 계정인 debian-transmission 이 아닌 별도의 계정으로 구동 및 저장하고 싶을 때 아래와 같이 수정

$ sudo vi /etc/init/transmission-daemon.conf

         #setuid debian-transmission

         setuid guda


$ sudo chown guda.guda -R /var/lib/transmission-daemon

$ sudo chown guda.guda -R /etc/transmission-daemon

$ sudo chown guda.guda /usr/bin/transmission-daemon


재부팅 후 설정이 초기화 되었다면 아래 방식으로 변경

$ sudo update-rc.d -f transmission-daemon remove

$ sudo vi /etc/rc.local 

transmission-daemon 추가 


samba 설치

$ sudo apt-get install samba smbfs


 samba  접속시 사용할 비밀번호 설정

아이디는 서버접속에 사용하는 아이디로 하되 비번은 독립적으로 설정된다

$ sudo smbpasswd -a 현재접속중인 아이디(ubuntu 계정이 생성되어 있는경우 )


접속하는 사용자의 Home 디렉토리 공유를 위해 설정파일 편집

Share Definitions 부분만 설정 변경

$ sudo vi /etc/samba/smb.conf

#======================= Share Definitions =======================


# Un-comment the following (and tweak the other settings below to suit)

# to enable the default home directory shares. This will share each 

# user's home director as \\server\username

[homes]

   comment = Home Directories

   browseable = no


# By default, the home directories are exported read-only. Change the

# next parameter to 'no' if you want to be able to write to them.

   read only = no


# File creation mask is set to 0700 for security reasons. If you want to

# create files with group=rw permissions, set next parameter to 0775.

   create mask = 0700


# Directory creation mask is set to 0700 for security reasons. If you want to

# create dirs. with group=rw permissions, set next parameter to 0775.

   directory mask = 0700


# By default, \\server\username shares can be connected to by anyone

# with access to the samba server. Un-comment the following parameter

# to make sure that only "username" can connect to \\server\username

# The following parameter makes sure that only "username" can connect

#

# This might need tweaking when using external authentication schemes

   valid users = %S


설정 변경이 완료 되었으면 samba를 재시작해준다.

$ sudo service smbd restart


마지막으로 서버가 재부팅될때마다 samba가 자동으로 실행되도록 설정

$ sudo update-rc.d smbd defaults


MediaTomb 설치하기(UPnP, DLNA)

서버가 있는 같은 네트워크 대역대에서만 된다.

$ sudo apt-get install mediatomb


web ui 사용할수 있도록 설정 , 한글도 나오도록 설정

$ sudo vi /etc/mediatomb/config.xml

<ui enabled="yes" show-tooltips="yes">


 <transcoding enabled="yes">


<import hidden-files="no">

<filesystem-charset>UTF-8</filesystem-charset>

<metadata-charset>UTF-8</metadata-charset>

<scripting script-charset="UTF-8">


mediatomb 재시작

$sudo /etc/init.d/mediatomb restart


접속확인해보자

http://아이피:49152/


아이튠즈 서버 설치

$ sudo apt-get install forked-daapd

라이브러리 디렉토리를 수정

$ sudo vi /etc/forked-dappd.conf

directories = { "경로 설정" }

재시작

$ sudo /etc/init.d/forked-daapd restart


Air video 설치

저장소 및 폰트 추가

$ sudo apt-get install python-software-properties


$ sudo add-apt-repository ppa:rubiojr/airvideo


$ sudo add-apt-repository "deb http://dev.naver.com/repos deb/"


$ sudo apt-get install ttf-nanum ttf-nanum-coding


$ sudo apt-get install openjdk-6-jdk


$ sudo apt-get install airvideo-server


$ sudo vi /opt/airvideo-server/AirVideoServerLinux.properties


$ sudo vi /etc/init.d/airvideo-server

#!/bin/bash

case "$1" in

    start)

        echo "Starting AirVideo"

           start-stop-daemon --start --quiet -b -m -p /var/run/airvideo-server.pid --chuid guda --exec /usr/bin/j

ava -- -jar /opt/airvideo-server/AirVideoServerLinux.jar /opt/airvideo-server/AirVideoServerLinux.properties

;;

    stop)

        echo "Stopping AirVideo"

           start-stop-daemon --stop --quiet --pidfile /var/run/airvideo-server.pid

           rm -f /var/run/airvideo-server

;;

    *)

        echo "Usage: /etc/init.d/airvideo-server {start|stop}"

        exit 1

;;

esac

exit 0


$ sudo chmod +x /etc/init.d/airvideo-server

$ sudo update-rc.d airvideo-server defaults


$ sudo service airvideo-server start

반응형
$ ls -li        //파일의 inode 번호를 확인 하는 명령어다
 1976 -rwxrwxr--    1 guda  guda          738  4월 29일 2005  洹??띻꼍?뺤껌援ъ옄猷?TXT
   53 -rw-rw-r--    1 guda  guda            0  1월 25일 2010  20100122

$ find ./ -inum 1976 -ls   //삭제하고자 하는 파일이 맞는지 확인해본다
 1976    1 -rwxrwxr--  1 guda   guda         738 Apr 29  2005 洹??띻꼍?뺤껌援ъ옄猷?TXT

$ find ./ -inum 1976 -ls -exec rm {} \;     //해당 파일을 삭제하는 명령어
 1976    1 -rwxrwxr--  1 guda   guda         738 Apr 29  2005 洹??띻꼍?뺤껌援ъ옄猷?TXT

$ ls   //정상적으로 삭제 되었는지 확인해보자..

이런식으로 파일명이 깨졌다든지 삭제가 안되는 파일을 inode 번호를 이용하여 삭제하면 된다. 
반응형

우분투에 서버를 셋팅해 놓고 한동안 사용하지 않았다.

기껏해야 FTP서버만 가끔 사용했는데.. 다시금 AJAX 관련 공부를 하면서 서버를 사용하게 됬다.

기타 서버는 모두 셋팅된 상태기에 ㅎㅎ 파일을 올리고 테스트를 하는데 이거 머같은게.. ㅋㅋ

웹 페이지가 제대로 뜨지 않네. ㅡㅡ;;; 아악! ssh로 들가서 권한을 보니 흐미 ... 답답하다.

이거 권한을 다시 설정해야 하나 하다가.. 언제까지 그렇게 수정해.. 귀찮아!!! 설정파일 어딨지??

소스설치를 한게 아니라서 설정 파일을 찾아서 umask 를 설정해 주었다.

$ sudo vi /etc/vsftpd.conf

딱히 따로 설정해줄것은 없고

#local_umask=022    <== 요거 주석 제거해주고  아랫부분에
file_open_mode=0644   <==  이거 넣어준다 파일 업로드시에 권한을 설정하는 부분이란다.

위와 같이 설정했으면 vsftp 재시작 해주자..

$ /etc/init.d/vsftpd restart   

이렇게 하면 파일 업로드 하면 권한 설정이 잘 된다. 페이지도 잘뜨고.. ㅋㅋ

울트라 에디터로 FTP 연동해서 작업하니 참 편하다.. ^^

반응형
우분투에 버전관리 서버를 설치하도록 하자.

cvs 와 svn 중에서 고민하다 cvs는 계속 사용해 왔기에 svn을 설치하기로 했다.

설치와 사용 방법에는 여러가지 케이스가 있지만 svn+ssh 프로토콜을 사용하기로 한다.

1. 서브버전 설치  
# apt-get install subversion

2. 사용자 그룹 설정
# groupadd subversion

3. 그룹에 사용자 추가(guda,twelo 계정을 그룹에 추가했다.)
# vi /etc/group
subversion:x:1005:guda,twelo

4. 서브버전에서 사용할 저장소 생성
# mkdir /home/project

저장소를 버클리 디비 방식으로 만들건지 파일 방식으로 만들건지 선택하자.
난 그냥 버클리 디비 방식으로 생성하기로 했다. 그리고 그룹이 접근할수 있도록 권한 설정

# cd /home/project
# svnadmin create --fs-type bdb Gsource
# chgrp -R subversion Gsource
# chmod -R g+w Gsource

이게 끝이다.. 이제 서브버전에 접속 하면된다.
svn+ssh://guda@ip-address/home/project/Gsource  

부족한 부분이나 다른 상세한 방법에 대해 알고 싶다면 아래 링크를 참조
http://wiki.kldp.org/wiki.php/Subversion-HOWTO


반응형

우분투 서버 부팅시에 실행시킬 스크립트를 등록 하는 두가지 방법
1, /etc/rc.Boot  에 실행권한을 준 스크립트를 생성
2. /etc/init.d 에 실행권한을 준 스크립트를 생성하고 update-rc.d 로 등록

런레벨
 0  시스템정지
 1  단일 사용자 모드
 2~5  다중 사용자 모드
 6  시스템 재가동

기본 런레벨은 '2'를 기본으로 시작된다.

새로 등록 (ex. 99는 부팅 시 올라오는 순서, 90은 꺼질 때)
update-rc.d test_server defaults 99 90

이전에 등록됐던 데몬을 지운다.
update-rc.d -f  test_server remove

update-rc.d명령은 /etc/init.d/와 rcN.d 디렉토리의 파일 사이에 연결을 만들어 준다.
그 연결 파일의 명칭은 'S','K'로 시작되고 그 뒤로 두자리 숫자와 등록된 스크립트 파일명으로 구성.
각 rcN.d 는 N에 해당하는 런레벨으로 실행될때 'S'로 시작되는 스크립트들이 실행되고
'K'는 해당 런레벨 N을 빠져나올때 실행되게 된다. 'S','K' 뒤에 숫자는 실행 순서를 나타내게 된다.

반응형

웹호스팅 환경을 구축하기 위해서는 DNS 서버를 구축해야 하나
사용자 계정을 이용한 JSP서버까지만 구축할 생각이다.
http://ip/~account 식의 도메인이 될것이다.

1. user 생성과 아파치 설정 변경
-- /etc/skel 은 유저 생성시 유저홈에 기본적으로 생성되는 뼈대 디렉토리와 파일 생성..
# cd /etc/skel
# mkdir public_html
# mkdir public_html/WEB-INF
# vi public_html/index.jsp
<HTML>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>GUDA'S SERVER</title>
</head>

 <BODY>
  <h1><h1><% out.print("Welcom GUDA'S SERVER"); %></h1><br /></h1>
  <h1> http://www.pmguda.com <br /></h1>
  <h1> ganziguda@gmail.com<br /></h1>

 </BODY>
</HTML>
2. 사용자 계정 생성 및 비번 설정
# useradd guda
# passwd guda
Changing password for user guda.
New UNIX password:
BAD PASSWORD: it is too short
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
# chmod -R 755 /home/guda
# cd /home/guda/public_html/
# cp index.jsp index.html
# vi index.php
<?='this is test'?>

3. 아파치에서 사용자계정을 사용해서 사용자 디렉토리에 접근할수 있도록 설정
--Include문앞에 주석을 제거한다.

# vi /usr/local/apache2/conf/httpd.conf

Include conf/extra/httpd-userdir.conf


4. 아파치 서버를 재시작한다.
# /usr/local/apache2/bin/httpd -k restart

각 파일들을 웹브라우져로 요청해 보면 php 파일은 정상적으로 출력되는데


jsp, html 파일은 찾지 못하는 것을 볼수가 있다.

PHP 소스를 읽는 것은 httpd.conf 에서
#JkMount /* loadbalancer  이렇게 주석처리 해줫기 때문이다.

5. jsp와 html을 정상적으로 읽도록 하기 위해서는 /usr/local/tomcat/conf/server.xml 을 수정
# vi /usr/local/tomcat/conf/server.xml

 <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false"> 
     
<Context path="/~guda" docBase="/home/guda/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>


6. 서버를 재시작 하고 확인
# /usr/local/apache2/bin/httpd -k restart
# /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
# /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

--jsp 파일은 정상 출력되지만 html코드내의 <% %> jsp 코드는 먹히지 않는다.



위에 페이지는 정상적으로 잘 뜨나 한글이 깨니는 것을 볼수 있다.
일단 JSP에서 한글이 깨져 나오는 것은 인코딩 문제이다. 파일 상단에 이렇게 넣어주자.
<%@ page contentType="text/html;charset=utf-8" pageEncoding="utf-8" %>
리눅스 서버 자체가 utf-8로 저장을 하니 utf-8로 불러와서 utf-8로 뿌려주게 하면 된다.

이제 오라클 연동 테스트를 하다보면 DB에서 값을 불러오는데 한글이 깨진다.
Character Set이 맞지 않아서 생긴 문제이다.
일단 오라클에 접속해 다음과 같이 변경해 주고 오라클을 재시작 하도록 하자.

update props$ set VALUE$='KO16KSC5601' where name='NLS_CHARACTERSET';

그리고 앞서 아파치 오라클 연동시 설정해줬던 밑 부분에
# vi /usr/local/apache2/bin/envvars

export ORACLE_HOME=/oracle/11g
export ORACLE_SID=oracle
LD_LIBRARY_PATH="/usr/local/httpd/lib:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH
--이 아랫부분에 추가해 주도록 하자.
export NLS_LANG=KOREAN_KOREA.KO16KSC5601

이로써 글자가 깨지는 문제는 해결이 될것이다.

그리고 여기까지만 서버 셋팅을 하도록 하겠다. 도메인을 주고 사용자 계정에 도메인을 붙이는
작업도 있지만 DNS 서버를 구축할 예정이 없기 때문에 여기서 완료하도록 하겠다.
글을 작성하면서 수정해야 할 부분이 있거나 안되거나 추가할 부분이 있으면 댓글을 달아주는 센스!!
블로그에 글 하나 작성하는데 너무나 많은 시간이 걸리는것 같다. ㅠㅠ


  1. Favicon of http://1.226.82.158 BlogIcon 으헹헹 2011.04.16 15:56

    따라하다가 한가지 난관에 부딪혔습니다;;
    apt-get install로 설치해서 일단 /usr경로는 맞지 않아요;;
    그래서 /etc/apache2로 들어갔지만 httpd.conf는 비어있고, apache2.conf에선 저 주석놈을 찾아볼 수 없습니다;;
    좀.. 도와주실 수 있나요?;;

    • Favicon of https://www.pmguda.com BlogIcon Ishaya seon 2011.04.18 11:31 신고

      제가 쓴 포스팅에는 아파치를 소스 컴파일로 하였는데
      apt-get install로 설치하셨나 보네요.
      아마도 파일 경로나 기타 부분이 제 포스팅과 상이하게 될텐데요.
      그리고 주석 부분이라고 하신 부분은 UserDir 부분 인가요? 그렇다면
      http://httpd.apache.org/docs/2.3/en/mod/mod_userdir.html <== 참조
      /ect/apache2/mods-available/userdir.* 파일을 복사하여
      /etc/apache2/mods-enabled/ 에 붙여 넣으신 후 아파치 재시작 하시면 됩니다.
      그리고 유저를 추가하신후 /home/생성유저/public/index.html
      파일을 생성하여 확인해 보세요.^^

반응형

앞서 우분투에 Apache + PHP + Oracle 연동설치까지 하였다. 
JSP 연동을 위해 Tomcat 설치 후 연동 과정에 대해서 정리하도록 하겠다.

우선 Tomcat을 구동하기 위해서는 JDK가 설치가 되어 있어야 한다.
우분투 10.04에는 아마도 OpenJDK가 설치 되어 있을것이다. 이를 사용해도 무방하나
본인은 Sun JDK를 오랫동안 사용해 왔으므로 Sun JDK를 설치하도록 하겠다.

우분투 10.04에서는 # apt-get install sun-java6-jdk 하면 설치가 되지 않는다.
source list 에 Sun JDK 1.6 이 포함 되어 있지 않는것 같다.

Sun JDK 1.6 설치

1. Source List에 추가
# add-apt-repository "deb http://archive.canonical.com/ lucid partner"

2. Source List 업데이트
# apt-get update

3. Sun JDK 1.6 설치 
# apt-get install sun-java6-jdk

4. 설치 완료 확인
# 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
....  이런 식으로 출력되면 정상설치 된것이다.

TOMCAT 설치
tomcat 7.0.0 을 다운 받도록 하자.
http://apache.tt.co.kr/tomcat/tomcat-7/v7.0.0-beta/bin/apache-tomcat-7.0.0.tar.gz

이전 설치 과정을 잘 따라왔다면 이후 설치과정중 명령어들이 무슨 명령어인지 알것이다.
# cd /usr/local/src
# wget http://apache.tt.co.kr/tomcat/tomcat-7/v7.0.0-beta/bin/apache-tomcat-7.0.0.tar.gz
# tar xvzf apache-tomcat-7.0.0.tar.gz
# mv apache-tomcat-7.0.0 /usr/local/tomcat
# cd /usr/local

톰캣 관련 환경변수를 셋팅해 준다. /etc/profile 파일 마지막에 추가
# vi /etc/profile
export CATALINA_HOME=/usr/local/tomcat
export PATH=$PATH:$CATALINA_HOME/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://localhost:8080 으로 접속해보자.


위와 같은 화면이 뜨면 정상설치가 된것이다. 여기서 뒤에 8080은 톰캣포트이다.
여기서 더 나아가 아파치와 톰캣의 연동 부분까지 진행해 나가도록 하겠다.

APACHE-TOMCAT CONNECTOR
1. 다운로드
# cd /usr/local/src
# wget http://apache.mirror.cdnetworks.com/tomcat/tomcat-connectors/jk/source/jk-1.2.30/tomcat-connectors-1.2.30-src.tar.gz 
2. 압축 해제
# tar xvzf tomcat-connectors-1.2.30-src.tar.gz
# cd tomcat-connectors-1.2.30-src
# cd native/
3. 컴파일 및 설치
# ./configure --with-apxs=/usr/local/apache2/bin/apxs
# make && make install
4. 설치 확인
# ls /usr/local/apache2/modules/mod_jk.so
/usr/local/apache2/modules/mod_jk.so  <== 파일이 존재하면 정상 설치 완료.

5. 아파치와 톰캣 연동 설정을 위하여 httpd.conf 와 workers.properties 파일을 수정 생성한다.
# vi /usr/local/apache2/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 맨뒤에 위와같이 추가한다.

6. workers.properties파일을 새로 생성한다.
# vi /usr/local/apache2/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

7. 아파치와 톰캣을 재시동하고 8080포트를 빼고 접속한다.
-- 아파치와 톰캣 재시동..
# /usr/local/apache2/bin/apachectl restart
# /usr/local/tomcat/bin/catalina.sh stop  
# /usr/local/tomcat/bin/catalina.sh start 

http://localhost  로 접속


아파치와 톰캣의 연동이 정상적으로 완료되었다.
이제 톰캣이 자동 실행 되도록 셋팅하도록 하자.
/etc/init.d 에서   tomcat 파일을 생성

# vi /etc/init.d/tomcat


위와 같이 작성하고 실행 권한을 주도록 하자

내용작성후 실행권한을 부여하고 시작프로세스에 등록한다.  재시작하면 자동 실행 된다.

하지만 이전에 설치한 PHP는 인식하지 못하고 해당 페이지를 다운로드 받게 된다.
이 부분에 대한 셋팅에 방법에 대해서 기술 하도록 하겠다.

앞서 추가한 httpd.conf 에 추가한 부분에서
#JkMount /* loadbalancer
이 부분을 주석처리(앞에 #) 하거나 삭제하고 재가동 하면 JkMount부분에서 지정하지 않은 확장자는
모두 본래의 아파치 디렉토리에서 정상적으로 읽게 된다.
이정도에서 더 나아가 웹호스팅 처럼 웹서버를 활용하고자 한다면 더 추가해야 할 부분이 있다.
그냥 단일 웹서버로 사용하고자 한다면 여기까지 설정하고 사용하길 바란다.

서버에서 각 계정들에게 도메인을 개인 도메인을 할당하고 사용할수 있게 해보자.
이부분에 대한 포스팅도 다음으로 넘어가도록 하겠다 글이 너무 길어지기 때문에.





  1. 송호연 2010.08.25 06:23

    우와 감사합니다 ㅠㅠㅠㅠㅠ

    이거 때문에 제가 몇일을 고생했는지 몰라요 ;;;;;

    감사해요 !!! :)

    드디어 ㅋㅋㅋㅋ

    • Favicon of https://www.pmguda.com BlogIcon Ishaya seon 2010.08.31 18:12 신고

      ㅎㅎ 첫 댓글이시네요..
      저도 서버 셋팅하면서 엄청 고생하면서 자료찾고
      깔고 지우고 반복에 ㅠㅠ
      포스팅 하면서 대박~ 을 예상했으나...
      댓글이 없어서 상심하고 있었습니다.
      도움이 되셨다니 너무 기쁘네요..^^

  2. 정병열 2011.06.20 17:32

    덕분에 서버 세팅 잘 했습니다 ^^:; 좋은 자료 감사합니다!

반응형
아파치 설치
공식 사이트:  http://httpd.apache.org

1. 아파치 최신 버전을 내려받도록 한다.
      본인은  httpd-2.2.15.tar.gz 를 대상으로 설치

2. 컴파일 및 설치 (root권한으로)

/usr/local/src 에 다운 받아 놓은 파일의 압축을 해제한다.

# tar xvzf httpd-2.2.15.tar.gz
# cd httpd-2.2.15

--컴파일 실행 및 설치 과정
# ./configure --prefix=/usr/local/apache2 --enable-modules=so --enable-so
# make && make install

3. 아파치의 설치 과정이 끝났다.  아파치가 자동 시작 되도록 설정하자.
-- 서비스 등록
# cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd
# chkconfig -add httpd

-- 서비스 확인
# chkconfig --list|grep httpd
-- httpd                     0:off  1:off  2:on   3:on   4:on   5:on   6:off
 
PHP 설치
공식사이트 : http://www.php.net

-- 아래 두 패키지를 먼저 설치하자.
# apt-get install libxml2-dev libxslt-dev libjpeg62-dev libpng12-dev  libcurl4-openssl-dev

1. /usr/local/src 에 php-5.2.13.tar.gz 를 다운 받도록 하자.

2. 컴파일 및 설치 (root권한으로) 
# tar xvzf php-5.2.13.tar.gz
# cd php-5.2.13

#  ./configure --prefix=/usr/local/php \
--with-apxs2=/usr/local/apache2/bin/apxs  \
--with-config-file-path=/usr/local/apache2/conf   \
--with-zlib-dir=/usr/local/  \
--with-gd=shared \
--with-xmlrpc \
--with-gd \
--enable-gd-native-ttf \
--with-openssl \
--with-curl=/usr/lib \
--with-zlib \
--with-jpeg-dir=/usr/lib \
--with-png-dir=/usr/lib \
--enable-mbstring \
--with-libxml-dir=/usr/local/ \
--with-xsl=/usr/local/ \
--with-iconv \
--enable-sockets \
--enable-pdo \
--with-pdo-oci=$ORACLE_HOME  \
--with-oci8=$ORACLE_HOME  \
--enable-sigchild \
--with-openssl  \
--with-mysql=/usr/local/mysql

# make && make install

3. php.ini  파일을 복사해서 넣자.
# cp php.ini-dist /usr/local/apache2/conf/php.ini

4. httpd.conf 파일에 다음 내용을 삽입한다.

# vi /usr/local/apache2/conf/httpd.conf

-- 아래 빨간 부분이 추가할 부분들이다.

ServerName localhost

306  AddType application/x-compress .Z
307  AddType application/x-gzip .gz .tgz
-- 아래 부분에  추가하도록 하자.--

AddType application/x-httpd-php .php
AddType application/x-httpd-php .phtml
AddType application/x-httpd-php-source .phps 


-- 그리고 맨 하단 php.ini 파일 경로를 삽입
PHPIniDir "/usr/local/apache2/conf/"

LoadModule php5_module modules/libphp5.so   <<= httpd.conf에 잘 들어가있는지 확인

5. 아파치에서 오라클 연동시에 사용하는 환경 변수 값을 셋팅해 준다.
(오라클 설치시 셋팅했던것과 동일하게 설정해주도록 한다.)

# vi /usr/local/apache2/bin/envvars

export ORACLE_BASE=/oracle
export ORACLE_HOME=/oracle/11g
export ORACLE_SID=oracle

--이 윗부분에 추가해 주도록 하자.
LD_LIBRARY_PATH="/usr/local/httpd/lib:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH

6. 웹서비스 루트 경로에 phpinfo 파일을 만들어 확인하자.
# vi /usr/local/apache2/htdocs/test.php

 <? phpinfo(); ?>

아래와 같이 OCI 연동 부분을 확인 할 수 있다.


오라클과의 연동확인 코드는 testOra.php 파일을 작성해 확인해 보자.

# vi testOra.php

<?

    $conn = oci_connect("scott", "tiger", "127.0.0.1/oracle");

    $stid = oci_parse($conn, "SELECT * FROM EMP");
    oci_execute($stid);

    $nrows = oci_fetch_all($stid, $results);

    echo "<html><head><title>Oracle PHP Test</title></head><body>";
    echo "<center><h2>Oracle PHP Test</h2><br>";
    echo "<table border=1 cellspacing='0' width='50%'>\n<tr>\n";
    echo "<td><b>Name</b></td>\n<td><b>Salary</b></td>\n</tr>\n";

    for ($i = 0; $i < $nrows; $i++ ) {
      echo "<tr>\n";
      echo "<td>".$results["EMPNO"][$i]."</td>";
      echo "<td>".$results["ENAME"][$i]."</td>";
      echo "</tr>\n";
    }

    echo "<tr><td colspan='2'> Number of Rows: $nrows</td></tr></table>";
    echo "<br><em>If you see data, then it works!</em><br></center></body></html>\n";

?>



ZendOptimizer 설치
공식사이트 :  http://www.zend.com

ZendOptimizer는 PHP의 속도를 향상시켜준다.

1. ZendOptimizer을 내려받도록 한다.
      본인은  ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz 를 대상으로 설치

2. 압축해제 및 설치 (root권한으로)

/usr/local/src 에 다운 받아 놓은 파일의 압축을 해제한다.

# tar xvzf ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz
# cd ZendOptimizer-3.3.9-linux-glibc23-i386

3. 프로그램 설치
3.3.3 이전 버전은 install명령어를 제공하여 설치 되었지만 3.3.9 버전부터는 제공되지 않는다.
(참고: 3.3.9 버전은 php 5.3.0 이상은 제공하지 않는다.)

3-1 일단 설치된 php 버전을 확인하자
# /usr/local/php/bin/php -v
PHP 5.2.13 (cli) (built: Jun 30 2010 18:49:52)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies

3-2 php 버전에 따른 Zend 모듈을 복사 하도록 하자.
# cd data
# cp 5_2_x_comp/ZendOptimizer.so  /usr/local/php/lib/

3-3 php.ini 파일에 Zend 관련 설정
# vi /usr/local/apache2/conf/php.ini

[Zend]
 zend_optimizer.version=3.3.9
 zend_extension=/usr/local/php/lib/ZendOptimizer.so

4. 설치 확인
# /usr/local/php/bin/php -v

PHP 5.2.13 (cli) (built: Jun 30 2010 18:49:52)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies
    with Zend Optimizer v3.3.9, Copyright (c) 1998-2009, by Zend Technologies   <== 정상설치 확인.

이로써 Ubuntu 10.04 + APACHE + PHP + ORACLE 연동에 대한 포스팅이 완료 되었다.
우분투에 오라클과 PHP 연동 관련 자료가 없어서 삽질해가며 설치 하였다.
고생한 만큼 자료를 정리하면 다음에도 수월하게 작업할수 있기에 시간은 좀 걸렸지만 나름 만족한다.
이후 포스팅에서는 여기에 JSP용 언어 서버를 구성하도록 하겠다.
반응형
Oracle 11g 설치

1. 오라클 11g를 설치하기 이전에 필요한 패키지들을 설치 하도록 하자.
   (아래 작업들은 root계정으로 실행하도록 하자.)

# apt-get install gcc binutils libaio1 lesstif2 lesstif2-dev make rpm libc6 build-essential gawk alien ksh libmotif3

2. 패키지의 설치가 끝났으면 오라클 설치를 위한 사용자 그룹과 유저를 만들도록 한다.

# addgroup oinstall
# addgroup dba
addgroup nobody
# useradd -m oracle -g oinstall -G dba /bin/bash
# usermod -g nobody nobody
# passwd oracle  (oracle 비밀번호 설정)

3. 오라클에서 필요한 메모리와 CPU 리소스를 위해 커널 파라미터를 수정한다.
    파일의 가장 아래쪽에 다음의 내용을 삽입한다.

# vi /etc/sysctl.conf

fs.file-max = 65535
= 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 32000 100 128
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 1048576
= 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 262144

4. /etc/sysctl.conf 파일은 우분투 시스템이 부팅시 처음  읽어오는 정보이다.
   이를 적용하기 위해 sysctl.conf 설정을 읽어들이는 명령어를 실행한다.

# sysctl -p

5. /etc/security/limits.conf 파일에 다음 내용을 삽입한다.

# /etc/security/limits.conf

oracle soft nproc 2047
oracle hard nproc 16383
soft nofile 1023
oracle hard nofile 65535

6. /etc/pam.d/login 파일에 다음 라인을 추가한다.

# vi /etc/pam.d/login

session required /lib/security/pam_limits.so
session required pam_limits.so

7. 오라클 기동에 관련한 환경변수를 설정한다.

# ln -s /usr/bin/awk /bin/awk
# ln -s /usr/bin/rpm /bin/rpm
# ln -s /lib/libgcc_s.so.1 /lib/libgcc_s.so
# ln -s /usr/bin/basename /bin/basename /bin/basename

8. 오라클 11g가 설치될 폴더 생성하기

# mkdir /oracle
# mkdir /oracle/11g
# chown -R oracle:oinstall /oracle
# chmod -R 775 /oracle

9. 환경변수 설정을 위해 /etc/profile 의 파일 가장 마지막에 삽입한다.

# vi /etc/profile

export ORACLE_BASE=/oracle
export ORACLE_HOME=/oracle/11g
export ORACLE_SID=oracle
export PATH=$PATH:$ORACLE_HOME/bin

10. 환경변수가 제대로 등록되었는지 확인해보도록 한다.

# su - oracle
password:
# echo $ORACLE_BASE
/oracle
# echo $ORACLE_HOME
/oracle/11g
# echo $ORACLE_SID
oracle

제대로 출력되는 것을 확인 하면 이상무..

11. 오라클11g 압축 풀기.(오라클을 오라클 계정에 다운받도록 한다.)
# su - oracle
$ unzip linux_11gR1b5_database.zip - 파일명은 버전에 따라 달라질달라질 수 있습니다.
$ chown -R oracle:oinstall database

이제 오라클 설치의 기본적인 것은 완료 되었다. GUI 환경에서 설치를 진행하면 된다.
서버의 화면에서 설치를 진행해도 되고 본인같은 경우는 XDMCP 환경에서 설치를 진행하였다.
XDMCP 설정관련은 본인의 블로그에 작성되어 있다. 필요하면 참고 하도록 하자.
http://www.pmguda.com/726    <== XDMCP 설정관련 자료

12. 오라클 설치는 오라클 계정으로 하도록 하자.
# su - oracle
$ export LANC=C  //한글로 설치하면 글자가 깨짐으로 영어로 설치를 진행한다.
$ cd /home/oracle/database
$ ./runInstaller

아래 그림에서 보시는 것처럼
Oracle Base Location: /oracle
Oracle Home Location: /oracle/11g
Global DataBase Name: oracle
(다른 값을 넣을 경우에는 위에서 설정한 "export ORACLE_SID=oracle" 와 동일하게 설정을 맞춰주도록 하자. )

아래 창이 뜨기 전에 경고창이 하나 떳을 것이다 Inventory directory 가 잘못되있다는 경고창이니
무시하고 설정을 변경해 주도록 하자.
Inventory directory 는 /oracle/oraInventory로 설정
System group name 은 dba로 설정

나머지 과정은 Next로 설치를 진행하면 된다. 아래 Product-Specific Prerequisite Cheks 에서 오류항목은
User Verified로 체크하여 처리를 하자.

참고로 자신의 glibc 버전확인은 # getconf GNU_LIBC_VERSION   으로 하면 확인가능.
(glibc 관련 오류는 우분투 10.04의 버전이 더 높으나 비교에서 문제가 발생하는것이다.
최소 요구버전은 2.4.?? 이라면 우분투(10.04)의 버전은 2.11.1 인데 비교시에 4와 11을
4와 1로 비교하여 발생하는 버그이니 그냥 무시하도록 하는것이다. 오라클 개발자 신경좀 쓰자잉~)

오라클 관리담당자 등록부분이다 그냥 Next로 넘어가자


계속 Next로 설치를 진행하고 나면 다음 창이 나온다.
Scripts to be executed: 에 있는 2가지 스크립트 파일을 반드시 root 계정으로 실행하도록 한다.


설치가 완료되었다. 이제 마지막 설치 후 셋팅 부분이 남았다.

13. /etc/oratab 파일 을 수정하도록 한다.(오라클 계정으로 빨간색 Y부분이 원래 N으로 되어있다.)

$ vi /etc/oratab

oracle:/oracle/11g:Y

14. /oracle/11g/bin/dbstart 파일의 오라클 리스너의 절대 패스를 수정한다.
ORACLE_HOME_LISTNER= 부분을 ORACLE_HOME_LISTNER=/oracle/11gORACLE_HOME_LISTNER=/oracle/11g 로 설정

$ vi /oracle/11g/bin/dbstart

15. 절대 패스까지 설정했다면 이제 설치는 완료 됬다. 확인 및 오라클 자동 실행을 위한 셋팅을 알아보자.

oracle 계정으로 전환해서 정상 작동 테스트를 해보자.
$sqlplus /nolog
SQL> connect /as sysdba
SQL> startup
SQL> SELECT LTRIM('AAATEST','A') FROM DUAL;
SQL> TEST
SQL> shutdown

정상작동이 확인된 후에 자동실행 되도록 셋팅하도록 하자.(모든 작업은 root 권한으로)

/etc/init.d 에서   startoracle.sh 파일을 생성

# vi /etc/init.d/startoracle.sh
 


위와 같이 작성하고 실행 권한을 주도록 하자

내용작성후 실행권한을 부여하고 시작프로세스에 등록한다.  재시작하면 자동 실행 된다.



오라클 자동 실행까지 완료후 Apache, PHP 연동 관련 글은 다음 포스팅으로 넘기도록 하겠다.
글이 너무 길어진 관계로 오라클만 사용하려면 여기까지만 하면 된다.

  1. Favicon of http://suritam9.pe.kr BlogIcon 박영식 2011.02.15 14:26

    ./runInstaller 했는데, display 설정이 안되었다고 나오고 no protocol specified 란 메시지가 나오면, $ xclock 을 실행시켜야 합니다. 그러면 해결 되는 것 같습니다. 근데, 이것때문에 되는 건지는. -.-'''

    그리고, 언어가 LANC=C 로 해도 바뀌지 않으면 unset LANG를 사용해야 하는군요.

    • Favicon of https://www.pmguda.com BlogIcon Ishaya seon 2011.02.16 11:42 신고

      환경셋팅이 어떻게 되어있는지 잘 모르겠습니다만
      xWindow 관련 설정이 안되어 있으신건 아닐까요?
      위에 글 포스팅은 제목에 써져있는 환경으로 개인서버
      셋팅하면서 작성한 글이기에 문제는 없었습니다.

      -- 본문 발췌---
      GUI 환경에서 설치를 진행하면 된다.
      서버의 화면에서 설치를 진행해도 되고 본인같은 경우는 XDMCP 환경에서 설치를 진행하였다.
      XDMCP 설정관련은 본인의 블로그에 작성되어 있다. 필요하면 참고 하도록 하자.
      http://www.pmguda.com/726 <== XDMCP 설정관련 자료

반응형
데이터베이스로 Oracle을 사용하려고 Mysql은 설치하지 않을 생각이였다.
근데 기존 프로젝트를 서버에 올리고자 다시 Mysql을 설치 하지 않을수 없었다.

일단 Mysql 설치 방법으로는 apt-get 을 이용한 쉬운 방법이 있지만 다른 것들과의 연동을 위해
소스 설치로 설정하는 방법에 대해서 기술하겠다.

1. 소스다운 & 압축해제
# cd /usr/local/src
# wget http://ftp.linux.co.kr/pub/mysql/mysql-5.1.32.tar.gz  
# tar xvzf mysql-5.1.32.tar.gz

2. 컴파일 & 설치
# cd mysql-5.1.32
# ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --with-charset=utf8
--with-charset=euckr --with-extra-charsets=all  --sysconfdir=/etc --enable-thread-safe-client
# make
# make install

3. 디비 생성 및 세부설정
# /usr/local/mysql/bin/mysql_install_db
# cat >> /etc/ld.so.conf
/usr/local/mysql/lib
# ldconfig
# cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
# groupadd mysql
# useradd -M -g mysql -s /bin/false mysql
# chown root.mysql -R /usr/local/mysql/
# chown mysql.mysql -R /usr/local/mysql/data
# cd /usr/local/mysql/bin

4. my.cnf 오류처리
# vi /etc/my.cnf
# Disable Federated by default
#skip-federated(주석처리)

5. 데몬 실행 & 관리자 루트 비밀번호 생성
# ./mysqld_safe --user=mysql &
# ./mysqladmin -u root -p password 1234
Enter password:

6. 환경변수에 PATH 등록
# vi /etc/profile
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
# source /etc/profile

7. 설치 확인
# mysql -u root -p
Enter password:

mysql> 

환영 메시지 출력시 완료......

8. 데몬 자동실행 등록
# cd /usr/local/mysql/share/mysql
# cp mysql.server /etc/init.d/mysqld
# chkconfig --add mysqld
# chkconfig mysqld on

이제 Mysql 설치는 완료 되었고 외부 접속을 허용하도록 하자.
특정 사용자 계정의 외부접속을 위해 root 를 예로 들도록 하겠다.

1. mysql 접속 후 mysql database 선택
mysql> use mysql;

2. user 테이블 살펴보기
mysql> select host, user, password from user;

root 의 host 값들은 localhost, 127.0.0.1 등으로 기본 등록되어 있지만, 외부접속을 나타내는 값이 없다.
특정 아이피로 지정할 수도 있지만 여기선 % 기호로 어디서든 접속 가능하게 만든다.

3. 권한 설정
mysql> grant all privileges on *.* to 'root'@'%' identified by '패스워드';
Query OK, 0 rows affected (0.03 sec)

4. 등록확인하기
mysql> select host, user, password from user;

root 계정의 host 필드에 % 가 등록되었는지 확인한다.

5. refrash
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

그리고 방화벽을 사용한다면 방화벽을 열어주도록 하자.
이로서 Mysql 설치가 완료 되었다.

외부 접속 툴로는 SQLGate 2010 for MySQL Developer 를 사용한다.(본인은)
http://www.antwiz.com/kr/   <== 여기에서 다운 받을수 있다. 개인버전 프리~
  1. 김동민 2010.10.14 10:10

    2번째 단계에서 ./configure 후 make 가 안되요... apt-get install make 한 후에도 안되는데 뭐가 문제 일까요?
    제가 아직 잘 몰라서.. ㅠㅠ

    • Favicon of https://www.pmguda.com BlogIcon Ishaya seon 2010.10.14 16:06 신고

      어떤 메시지가 떨어지는지?? 흠.. ./configure 는 정상적으로 되던가요? ganziguda@gmail.com 으로 메일 주세요.^^

  2. 아삼 2011.03.25 05:53

    저도 마찬가지로 makefile.am, makefile.in 만 있고,
    make가 실행되지 않네요 ㅠㅠ

  3. 아삼 2011.03.25 06:09

    No curses/termcap library found 라고 나오네요 ㅠㅠ

    • Favicon of https://www.pmguda.com BlogIcon Ishaya seon 2011.04.03 15:01 신고

      MySql 소스 컴파일시에 Configure 에러가 난것 같네요.

      에러 메시지 그대로 curses 라이브러리와 termcap 라이브러리가 설치되지 않았기에 발생하는 에러입니다.

      apt-get install libncurses5-dev 로 설치하시고 진행하시면 됩니다.

+ Recent posts