반응형

맥북 업데이트 이후 git 명령어 실행시 아래와 같은 오류 메세지가 뜬다

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

Xcode Command-line Tools가 최신 업데이트가 안되서 그렇다고 한다.

터미널에서 아래 명령어를 실행하면 된다.

xcode-select --install

해당 명령어로 다운로드 설치가 오래 걸린다면 아래 링크로 가서 직접 다운로드 받아서 설치하도록 하자.

https://developer.apple.com/download/all/?q=xcode

 

반응형

 

Xcode 설치 오류
mac에서 xcode를 설치 할 경우 App Store를 통해 설치시 다운로드 속도도 오래 걸리고 설치 멈춤 현상이 일어나는 경우가 많다.

아래 링크를 통해 다운로드 받아서 설치를 진행 하는 경우 빠르게 다운받고 설치가 가능하다.
https://developer.apple.com/download/all/?q=xcode

반응형

우분투 저장소 변경하기

$ 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용 언어 서버를 구성하도록 하겠다.

+ Recent posts