크리에이티브 커먼즈 라이선스
Creative Commons License

요즘엔 보통 Tomcat 5~6버전 혹은 Tomcat 7 버전을 WAS로 사용하는 경우가 있을 겁니다. 제가 일하는 곳의

환경은 꽤 구형 시스템을 사용하고 있고 프로그램에서 DB 커넥션 시 JDBC로 바로 연결하고 있어 부하가 상당히 걸리는

편이라 개선을 해보고자 DBCP를 사용하여 커넥션을 얻어오도록 테스트를 해봤습니다. 요즘엔 각종 프레임워크에서

손쉽게 설정 가능 하지만 이곳 상황이 그렇지 못하기 때문에 좀 삽질을 했습니다.

먼저 DBCP를 사용하기 위해서는 자카르타 DBCP API인 Commons-dbcp-1.2.1.jar, Commons-collections-3.1.jar,

Commons-pool-1.2,jar 가 반드시 필요합니다.(꼭 버전이 맞아야 하는것은 아닙니다.)

그리고 중요한 것은 이 세개의 라이브러리가 톰캣 설치 디렉토리의 commons/lib 디렉토리에 위치해야 하며 어플리케이션이

위치하는 컨텍스트에 이 라이브러리들이 중복해서 등록됐을경우 오류를 발생 시킵니다.

1. Tomcat - Server.xml 수정

  - 톰캣이 설치된 디렉토리의 conf/server.xml을 수정합니다. 여기서 Resource의 name속성에 지정된 명칭은

  나중에 JNDI를 통해 가져올 이름으로 이후에 수정할 컨텍스트 내의 web.xml의 명칭과 동일 해야 합니다.

  혹은 전역적으로 설정하기 위해 <GlobalNamingResources> 내부에서 <Context>를 제외하고 아래 내용을 사용해도 됩니다.

<Context path="" docBase="ROOT" debug="0">
   <Resource name="jdbc/erpdb" auth="Container" type="javax.sql.DataSource"/>
   <ResourceParams name="jdbc/erpdb">
     <parameter>
          <name>username</name>
          <value>test</value>
     </parameter>
     <parameter>
          <name>password</name>
          <value>test</value>
     </parameter>
     <parameter>
          <name>driverClassName</name>
          <value>com.sybase.jdbc2.jdbc.SybDriver</value>
     </parameter>
     <parameter>
          <name>url</name>
          <value>jdbc:sybase:Tds:111.222.222.111:4444/erpdb?charset=eucksc</value>
     </parameter>
     <parameter>
          <name>removeAbandoned</name>
          <value>true</value>
     </parameter>
     <parameter>
          <name>removeAbandonedTimeout</name>
          <value>60</value>
     </parameter>
  </ResourceParams> 
 </Context>

설정후 이 부분을 보면 jdbc:sybase:Tds:111.222.222.111:4444/erpdb?charset=eucksc 뒤에 파라미터로 캐릭터셋을

지정해 줬습니다. 여기서는 DB의 캐릭터셋을 지정해 주면 됩니다. Sybase에서 혹 안되면 eucksc 대신 euc-kr 로 해보면 될 것

같습니다. 여기서 좀 삽질을 했는데 DB의 캐릭터셋이 euc-kr이라 위에서 설정시 <parameter>에 넣고 설정해 봤는데 아래와

같으 오류가 발생했습니다. JNDI를 통해서 커넥션을 가져오면서 나오는 에러였는데 위와 같이 설정해 줌으로 해결됐습니다.

org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (JZ004: DriverManager.getConnection(..., Properties)에 사용자 이름 속성이 없습니다.)

2. web.xml 수정(컨텍스트/WEB-INF/web.xml)

프로그램에서 JNDI를 통해 커넥션을 가져오기 위해 위에서 서버쪽의 server.xml에서 설정한 Resource name 과 동일하게

설정 해줍니다. 동일하지 않을경우 커넥션을 받을 수 없으므로 오류가 발생하게 됩니다.

 <resource-ref>
      <description>ERP DB</description>
      <res-ref-name>jdbc/erpdb</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
 </resource-ref>

2. 프로그램에서의 테스트

  Connection conn = null;
  InitialContext initContext = null;
  Context ctx = null;
  DataSource dataSource = null;

  try{
   initContext = new InitialContext();
   //ctx = (Context) initContext.lookup("java:comp/env");
   //dataSource = (DataSource) ctx.lookup("jdbc/erpdb");
   dataSource = (DataSource) initContext.lookup("java:comp/env/jdbc/erpdb");
  }catch(Exception e){
   System.out.println(e);
  }

  conn = dataSource.getConnection();

여기서 한가지 주의할 점은 경우에 따라 JDBC API도 톰캣 설치디렉토리의 common/lib 에만 위치 시키고 컨텍스트의

lib 디렉토리에서 중복될 경우 아래와 같은 오류가 발생할 수 있습니다.

org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.sybase.jdbc2.jdbc.SybDriver'

여기까지 설정후에 확인해보시면 아마 제대로 되지 않을까 싶습니다. 그나저나 기존 소스에 JDBC 커넥션 맺는 부분을

어떻게 효과적으로 바꿀지가 더 고민이 되는군요. 파일이 수만개가 넘고 거의 모든곳에서 커넥션을 맺는 행위를 서블릿에서

init() 호출시 하도록 되어 있습니다. 노가다의 끝판왕을 보게 될 듯 싶네요 ㅎㅎ. 어쨋든 톰캣 구 버전을 사용할때 위 내용을

참고하면 될 듯 싶습니다.

 

 

신고
크리에이티브 커먼즈 라이선스
Creative Commons License

APM설치에 대한 강좌나 팁은 수없이 많이 올라와 있지만 제대로 적용되지 않는 부분도 많고 원본

강좌를 그대로 복사한 글들이 많아 일관성 없이 설치가 더 혼란해 지는 경우가 많다. 예전 아파치

1.x 버전대에서 APM을 레드햇 리눅스에서 설치해본뒤로 한번도 손을 대질 않아서 다 잊어버렸었

는데 이번에 Win32용 아파치 서버에 대한 회의감이 들어 여름에 리눅스로 서버운영체제를 바꿀

계획을 가지고 로컬테스트용으로 APM을 페도라 코어 4와 6에서 설치해봤다. 성공했고 기왕에

설치까지 했으니 최근버전(07.0614기준)의 APM패키지들을 가지고 설치하는 글을 올린다.

이글에서는 APM의 환경설정에 대해서 말하진 않겠다. 글이 너무 길어지기때문에..설치에만 중점을 둔다.

일단 내가 설치한 환경을 간략히 표시한다.

O/S : Fedora core 4,6
System : VMware workstation 6 (120mb ram,8Gb HDD)

(로컬테스트용으로 설치한것이라 설치시에 버벅이는 감이 크다. VMware상에서 설치하고 싶다면

 램할당을 더 크게 해주는것이 좋다.)

준비물 :
Mysql 5.0.41(Source), Apache 2.2.4(Source), PHP 5.2.3(Source), Zend Optimizer(3.2.8)

(위의 링크에서 다운로드 가능 Zend Optimizer는 사이트내에서 회원가입필요. 아무렇게나
 입력해주고 다운로드 받으면 된다. 소스컴파일 설치시 모두 tar.gz로 끝나는 확장자의 파일을
 받으면 된다.)

설치전 확인해야 할것이 있다. RPM패키지로 Mysql이나 Apache서버가 기존에 설치되어있는지

확인해야 되는데 터미널에서 다음과 같이 입력해준다.

rpm -qa mysql (mysql RPM 설치여부 확인)
rpm -qa apache (apache RPM 설치여부 확인)

두가지 모두 없으면 다음과정으로 넘어가고 하나라도 있다면 설치전에 지워준다.

rpm -e mysql (mysql 삭제)
rpm -e apache (apache 삭제)


만약 mysql에 의존성 있는 프로그램이 설치되어 있다면 에러메시지가 뜨면서 삭제가 안될것이다.

이럴경우엔 아래와 같이 yum을 실행해서 지워준다.

yum remove mysql

이렇게 실행하면 의존성 있는 프로그램까지 같이 지워준다. 나의 경우엔 메일서버 프로그램인

Dovecot 이 설치되어있었고 mysql에 의존성이 있어서 yum 으로 remove실행시 둘다 지워졌다.

만일 따로 쓰고있는 의존성 있는 프로그램이 있다면 확인하고 지우길 바란다.

그리고 설치하기전 주의사항은 Mysql->Apache->PHP의 순서로 설치해야한다는것이다.

(1) Mysql 설치

여기서 나는 /usr/local/src 폴더에 받았던 패키지들의 압축을 풀었다.

1.
[root@localhost]# tar xvfz mysql-5.0.41.tar.gz
[root@localhost]# cd mysql-5.0.41
압축이 해제된 mysql-5.0.41로 이동한뒤..
[root@localhost]# ./configure --prefix=/usr/local/mysql --with-charset=euc_kr
[root@localhost]# make; make install

이렇게 입력해주면 설치가 끝난다. 참고로 나는 charset=utf8을 썼다. 제로보드4를 쓸것이라면


euc_kr을 써줘야하겠지만 이는 DB생성시에 지정해 줄수있으니 상관없고 전반적으로 요새나오는

게시판 프로그램들이 utf8을 기준으로 만들어져 나오기때문에 charset을 바꿔서 설치했다. 어느것

을 택하던지 설치자체엔 상관없다. 만약 make와 make install이 모두 끝난뒤에 configure 실행시

설정이 잘못됐다 생각되면 make distclean 명령으로 초기화 시킬수 있다.

2.
[root@localhost]# cd /usr/local/mysql/bin
[root@localhost]# ./mysql_install_db
mysql의 기본 데이터와 test 데이터 생성 명령.

3.
[root@localhost]# groupadd mysql
[root@localhost]# useradd -g mysql -s /bin/false mysql
[root@localhost]# passwd mysql
My SQL을 관리하기 위한 계정을 생성하는 과정이다. 계정명은 mysql이고 비밀번호는 mysql로

생성하라는 명령인데 비밀번호는 추후에 바꿔줄수 있다.


4.
[root@localhost]# cd /usr/local/mysql
[root@localhost]# chown -R mysql.mysql var
Mysql의 DB가 저장되는 var폴더에 권한설정을 해주는 명령이다. DB저장경로는 처음에 configure

실행시 -localstatedir=/설치경로 를 추가하여 변경할수 있으나 기본 경로는 아래와 같이

/usr/local/mysql/var 가 된다.


5.
[root@localhost]# cp
/usr/local/src/mysql-5.0.41/support-files/my-huge.cnf /etc/my.cnf

config 파일 설정부분 support-files 디렉토리에서 my-huge.cnf파일을 복사해서 My SQL 기본

config파일로 쓰게 해뒀다. 몰론 my-medium.cnf 나 my-small.cnf파일을 쓸수도 있으나 나는 항상

큰것만 좋아한다.

[root@localhost]# cp /usr/local/mysql/share/mysql/mysql.server /etc/rc.d/init.d/mysqld
[root@localhost]# ln -s /etc/rc.d/init.d/mysqld /etc/rc.d/rc3.d/S90mysqld
[root@localhost]# ln -s /etc/rc.d/init.d/mysqld /etc/rc.d/rc5.d/S90mysqld
[root@localhost]# ntsysv

서버 시작시에 자동으로 시작이 되도록 설정해 주는 부분 level 3,5 일경우에 자동으로 시작이된다.

재시작 시키고 싶다면 위의 경로에 있는 mysqld restart 명령을 써주면 된다.

사용자 삽입 이미지
ntsysv명령을 내렸을때 위와같이 mysqld에 체크되어있는지 확인후 안되있다면 체크해주고 tab키를

눌러 확인해준다.

6.
[root@localhost]# /etc/rc.d/init.d/mysqld start (MySQL시작)
[root@localhost]# ps -ef | grep mysql (MySQL데몬 확인)
[root@localhost]# /etc/rc.d/init.d/mysqld stop (MySQL 종료)

Mysql 시작과 종료가 제대로 이뤄지는지 확인해본다. 둘다 정상적으로 이뤄져야 설치가 제대로

된것이다.

[root@localhost]# vi /etc/profile
제일 밑부분에 추가.
#mysql config
PATH="$PATH:/usr/local/mysql/bin"

mysql의 경로를 지정해 준다. vi대신에 Fedora설치시에 텍스트 편집기가 있다면 텍스트편집기로

편집후 저장해도 무방하다. 개인적으로는 vi보단 기본내장 텍스트편집기를 많이 쓴다. 적용후

mysqld start 로 mysql을 시작시켜본다. 오류 메시지가 없다면 성공적으로 설치한것이다.

(2) Apache 설치
[root@localhost]# tar xvfz apache_2.2.4.tar.Z
[root@localhost]# cd apache_2.2.4
[root@localhost]# ./configure --prefix=/usr/local/apache --enable-rule=SHARED_CORE --enable-module=so --enable-shared=max
[root@localhost]# make; make install

아파치 설치는 매우쉽다 모든부분이 마찬가지지만 명령줄이 길때는 한줄로 쓰는 방법이 있고 혼란

스러워서 아랫줄에 계속 입력하고 싶다면 한줄이 끝날때 '\' 를 입력해서 다음줄에 이어서 입력

할 수 있다. 아파치 설치는 이렇게 하면 끝이난다. 설정부분은 나중에 다른 강좌에서 설명하겠다.

[root@localhost]# cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/apachectl
[root@localhost]# ln -s /etc/rc.d/init.d/apachectl /etc/rc.d/rc3.d/S85httpd
[root@localhost]# ln -s /etc/rc.d/init.d/apachectl /etc/rc.d/rc5.d/S85httpd

My SQL때와 마찬가지로 Level3,5일경우에 서버가 자동실행되게 하는 명령을 줬다.

[root@localhost]# /etc/rc.d/init.d/apachectl start
아파치를 실행하는 명령 재시작은 restart 중지는 stop을 apachectl 뒤에 붙혀주고 실행하면된다.

모두 실행후 웹브라우저로 http://localhost를 쳤을때 It Works! 라는 문구가 보인다면 성공한것이다.

(3) PHP설치
1.
[root@localhost]# tar xvfz php-5.2.3.tar.gz
[root@localhost]# cd php-5.2.3

[root@localhost]#./configure --prefix=/usr/local/php \
--with-apxs2=/usr/local/apache/bin/apxs \
--with-config-file-path=/usr/local/apache/conf \
--with-mysql=/usr/local/mysql \
--with-track-debug \
--enable-track-vars \
--enable-magic-quotes \
--enable-track-vars=yes \
[root@localhost]# make; make install
[root@localhost]#
cp /usr/local/src/php-4.3.2/php.ini-dist /usr/local/apache/conf/php.ini

위와같이 입력하여 PHP를 설치한다. 만약 아파치 1.x대의 버전을 가지고 설치한다면 물론 다른

패키지들과 연동이 제대로 될진 모르겠지만 어쨋든 --with-apxs2를 --with-apxs로 고쳐서 설치

하면된다.

2.
[root@localhost]# cd /usr/local/apache/modules
[root@localhost]# ls -al

PHP가 잘 설치되었다면 libphp5.so 모듈파일이 보일것이다. 없다면 설치상에 뭔가 문제가 있다는

것이니까 참고한다. 참고로 아파치 1.x 버전에는 libexec에 저장이된다.

3.
[root@localhost]# vi /usr/local/apache/conf/httpd.conf
LoadModule php5_module  modules/libphp5.so
AddType application/x-httpd-php .php .inc
아파치 환경설정파일인 httpd.conf 파일을 열어 Loadmodule 부분밑에 Addtype을 추가해준다.

Type지정이 안되어 PHP파일 로딩 테스트시에 소스그대로 출력되버리는 경우가 생긴다.

4.
[root@localhost]# vi /usr/local/apache/htdocs/index.php
<? phpinfo(); ?>
phpinfo출력 테스트를 해볼것이다. 이렇게 입력 저장한뒤(물론 텍스트편집기 사용가능!) 브라우저로

불러들였을때 아래와 같이 뜨면 APM연동이 모두 잘된상태로 설치가 된것이다. 한가지 덧붙혀서

httpd.conf 파일에서 DirectoryIndex index.html index.htm index.php index.php3 이부분

이 index.html만 추가 되있을텐데 index.php를 위와같이 추가해준다. 그래야 브라우저에서 php파일

의 출력결과를 볼수있다.

사용자 삽입 이미지

(4) Zend Optimizer 설치
APM만 설치해도 별상관없지만 Zend optimizer 나 eAcellator 같은 프로그램을 설치하면 웹서버

로딩속도가 향상된다. Zend Optimizer는 PHP버전에 맞게 설치/업그레이드 해야되며 여기서는

PHP 5.2.3을 지원하는 최신버전인 3.2.8 버전을 설치하였다. 컴파일등을 따로 해줄필요도 없고

아래와 같이 입력해주면 설치화면이 뜬다.

[root@localhost]# tar xvfz
ZendOptimizer-3.2.8.tar.gz
[root@localhost]# cd ZendOptimizer-3.2.8
[root@localhost]# install.sh

처음 실행시 라이센스 동의 화면이 뜨고 어짜피 읽지도 않을꺼니까 'Exit' 눌러서 다음

단계로 넘어간다. 이후에 Zend Optimizer를 설치할 절대경로를 묻는데 나는 아래와

같이 지정하였다.

/usr/local/zend

이다음 단계에서는 php.ini 파일이 있는 경로를 지정해줘야 하는데 이글대로 했을때

php.ini는 /usr/local/apache/conf 에 있다. 여기서 확인을 눌러주면 progress 상태가

나오면서 설치가 완료되면 제대로 완료됐다고 메시지가 뜨고 경로설정이나 APM이 제대로

연동되지 않았다면 오류 메시지가 뜰것이다. Zend Optimizer가 성공적으로 설치됐다면

phpinfo 화면에서 아래와 같은 부분이 추가된 것을 볼수 있다.
사용자 삽입 이미지

위와같이 큰 어려움없이 APM과 ZendOptimizer의 설치를 마쳤다. 위에서 쓴 패키지들과 똑같은

버전을 꼭 사용할 필요는 없지만 APM 각각의 패키지의 버전차이가 많이 나면 연동이 제대로

안되는듯 싶다. 위와 똑같은 방법으로 나는 설치를 제대로 마쳤고 다음에는 설정에 대해서 알아

보도록 하겠다.
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

리눅스에 아파치 웹서버 설치에 이어서 FTP서버를 설치해보기로 했다. 찾아보던중 좋은 곳이

있어서 허락없이 퍼왔으니 출처를 밝히도록 하겠다. 출처 : http://superuser.co.kr

이걸보면서 직접 설치했었기 때문에.. 마지막에 나의 의견도 짤막하게 넣을것이다..

설치환경 : Fedora 4 core

- 원문 시작 -

VSFTP 설치하기

리눅스에서 사용할 수 있는 ftp 데몬은 proftp, wu-ftp를 비롯하여 많은 데몬들이 있습니다.
그중 레드헷의 최신 배포판에서 기본 ftp 데몬으로 채택하고 있는 vsftp의 설치방법과 운영방법,
활용법에 대해 얘기하려 합니다.
 
0. 왜 VSFTP를 추천하는가?서버 운영에 있어서 가장 중요한 요소는 보안문제입니다.
기존의 proftp와 wu-ftp 는 보안 홀에 대한 보고가 빈번히 일어나 서버의 보안이 흔들린 경우가많았습니다.
vsftp 는 보안부분을 특히 강조한 서버데몬으로서 REDHAT, SUSE, OPEN-BSD에서 기본 FTP 데몬으로 채택하고 있으며 vsftp를 매우 신뢰하고 있씁니다.
vsftp에서 보안, 빠른 퍼모먼스, 안정성을 주요 특징으로 소개하고 있고 그 성능도 여느 ftp 서버 보다 탁월한듯 합니다.
지원하는 대표적인 기능으로는 가상IP 지원, 가상유저 지원, Standalon 과 inetd 지원, 강력한 사용자설정, 전송 대역폭 조절기능, 환경설정파일을 IP별로 독립적 운영 지원, IP별 제한기능등이 있습니다.
또한 config 파일의 설정문법도 아주 간단해서 FTP 서버관리를 쉽게 할 수 있습니다.
 
아래 리스트는 현재 VSFTP 를 신뢰하고 사용하고 있는 대표적인 사이트입니다.
ftp.redhat.com
ftp.suse.com
ftp.debian.org
ftp.openbsd.org
ftp.freebsd.org
ftp.gnu.org
ftp.gnome.org
ftp.kde.org
ftp.kernel.org
rpmfind.net
ftp.linux.org.uk
ftp.gimp.org
ftp-stud.fht-esslingen.de
gd.tuwien.ac.at
ftp.sunet.se
ftp.ximian.com
ftp.engardelinux.org
ftp.sunsite.org.uk
ftp.isc.org
 
이러쿵 저러쿵 얘기하는것 보다 위의 리스트들이 더 신뢰를 주는것 같군요.
 
 
1. VSFTP 설치 
vsftp 홈페이지 : http://vsftpd.beasts.org/
vsftp 다운로드 : ftp://vsftpd.beasts.org/users/cevans/
 
먼저 VSFTP의 설치를 위해 ftp://vsftpd.beasts.org/users/cevans/ 에 접속해 최신버젼을
다운받습니다. 현재 이 강좌를 쓰고 있는 시점의 최신버젼은 vsfpd-2.0.1 버젼이군요..
그럼 vsftpd-2.0.1을 다운받았다는 가정하에 이강좌를 진행하겠습니다.
버젼별로 큰 차이는 없으니까 다른 버젼을 1.2.2 버젼을 선택하신분들도 설치하시는데는
큰 어려움이 없으실겁니다.
 
다운받은 파일을 /root/SRC 라는 디렉토리에 옮겨서 설치작업을 시작하도록 하겠습니다.
/root/SRC 에서 작업하는 특별한 이유가 있는건 아닙니다. 그러니까 각자 작업공간을 만들어
작업하시면 됩니다. 저는 소스설치한 데몬이나, 유틸의 소스들을 한곳에 모아두는 습관이
있어 /root/SRC 에서 항상 작업을 하는편입니다. 뽀족히 설치작업할 위치가 없다면 저를 따라
/root/SRC 에서 작업을 하는게 좋겠네요

사용자 삽입 이미지
파일이 설치할 디렉토리로 옮겨졌으면 vsftpd-2.0.1.tar.gz 을 압축을 해제합니다.

사용자 삽입 이미지
사용자 삽입 이미지
압축이 풀리면 vsftpd-2.0.1 이라는 디렉토리가 생깁니다. 설치를 위해 이 디렉토리로 이동합니다.

사용자 삽입 이미지
VSFTP 소스가 있는 디렉토리에서 make 명령을 하면 vsftpd 라는 바이너리 파일이 생성됩니다

사용자 삽입 이미지

ls 명령으로 새로 생성된 vsftpd 바이너리 파일을 확인할 수 있습니다

사용자 삽입 이미지
VSFTP를 운영하기 위해서는 nobody 사용자가 필요합니다. 다음과 같이 현재 nobody 사용자가
존재하는지 체크를 하세요
[root@develop vsftpd-2.0.1]# grep nobody /etc/passwd
nobody:x:99:99:Nobody:/:/bin/bash

사용자 삽입 이미지

위와같이 nobody 가 존재할 경우는 nobody를 새로 생성하지 않아도 됩니다.
만약 nobody 사용자가 존재하지 않을경우 아래와 같이 nobody 사용자를 추가해 줍니다

사용자 삽입 이미지

VSFTP는 empty 라는 디렉토리를 필요로 합니다. 기본구성은 /usr/share/empty 입니다.
/usr/share/empty 디렉토리가 존재하는지 확인한 후 존재하지 않는다면 empty 디렉토리를 생성해 줍니다.

사용자 삽입 이미지
다음은 Anonymous FTP에서 사용할 ftp 계정이 필요합니다.
ftp 계정이 존재하지 않는다면 추가해야 됩니다.
ftp 계정의 HOME Directory 즉 Anonymous 접근의 루트로   /var/ftp 로 설정하기 위해 -d /var/ftp 옵션을 주어 ftp 계정을 생성해 줍니다. 먼저 /var/ftp 디렉토리를 생성합니다. 만약 이미 /var/ftp 라는 디렉토리가 있을 경우 다음과 같이 디렉토리의 소유자와 그룹을 root로 변경하고 og(Other, Group)에 w(쓰기권한)을 제거합니다

* /var/ftp가 존재할 경우
사용자 삽입 이미지
* ftp 계정이 없고 /var/ftp가 존재하지 않을경우
[root@develop vsftpd-2.0.1]# mkdir /var/ftp  --> /var/ftp 가 없을 경우
사용자 삽입 이미지

이제 install 과정을 진행하겠습니다.
make install 을 해 줌으로서 생성된 vsftpd 파일이 /usr/local/sbin 에 복사가 되고 vsftpd의 man 페이지가 /usr/local/man/man5, /usr/local/man/man8 로 복사가 되고 inet 모드로 운영할 때 사용할 vsftpd 파일도 /etc/xinetd.d 디렉토리에 복사됩니다.
make install을 진행하기 전에 /usr/local/sbin 디렉토리와 /usr/local/man/man5, /usr/local/man/man8 디렉토리를 먼저 생성해 줍니다.
[root@develop vsftpd-2.0.1]# mkdir /usr/local/sbin
[root@develop vsftpd-2.0.1]# mkdir /usr/local/man/man8
[root@develop vsftpd-2.0.1]# mkdir /usr/local/man/man5

사용자 삽입 이미지
디렉토리가 모두 생성되었으면 make install을 합니다.

사용자 삽입 이미지
위와 같이 출력되면 에러 없이 install 이 실행된것입니다.
 
이제 VSFTP의 환경설정파일인 vsftpd.conf를 /etc 디렉토리에 복사합니다.
[root@develop vsftpd-2.0.1]# cp vsftpd.conf /etc
사용자 삽입 이미지

시스템의 local 사용자들의 접속을 허가 하기 위해 복사된 /etc/vsftpd.conf 를 열고
local_enable=YES 부분과 write_enable=YES, local_umask=022 부분의 주석을 제거합니다.
[root@develop vsftpd-2.0.1]# vi /etc/vsftpd.conf
사용자 삽입 이미지

주석을 제거했으면 저장하고 편집모드를 빠져나옵니다.

마지막으로 local 계정 사용자들의 로그인 인증을 위해 설치디렉토리안의 RedHat 디렉토리안에
있는 vsftpd.pam 파일을 /etc/pam.d 디렉토리에 ftp 라는 이름으로 복사를 합니다.

사용자 삽입 이미지

이제 모든 설치 과정은 끝났습니다. 그럼 VSFTP가 잘 작동하는지 테스트를 해 볼껀데 테스트는
xinetd 모드로 VSFTP 데몬을 돌리고 VSFTP의 standalone 모드로 운영하는 방법과 xinetd 모드로  
운영하는 자세한 방법은 'VSFTP 운영및 활용 강좌'에서 다루도록 하죠.
 
우선 install 할때 복사되었던 /etc/xinetd.d/vsftp 파일을 열어 disable = no 로 설정되어 있나 확인합니다.
혹시 disable = yes 로 되어 있다면 no 로 변경해 줍니다.

사용자 삽입 이미지
vsftpd 의 실행을 위해 xinetd를 restart 합니다.

사용자 삽입 이미지
xinetd 데몬이 정상적으로 실행되었으면 anonymous 로 접속을 해 봅시다

사용자 삽입 이미지
음.. 접속이 잘 되는군요.. 설치강좌는 여기까지
이름 : 윤 일

email :
admin@rootman.org, rootman@intermerit.com
homepage :
http://rootman.org

----------------------------------------------------------------------------
여기까지 원문이 끝나고.. 개인적으로 이것대로 설치를했었다. 그러나 막히는 곳이 한곳 있었는데

바로 xinetd 때문이었다. 분명 깔끔하게 설치를 다했으나 /etc/init.d에서 xinetd를 찾지 못하는

것이었다. 해결방법은 별것 아니었다. 페도라4의 3번설치시디의 /fedora/rpms 디렉토리내의

'xinetd-2.3.13-6.i386.rpm' 요파일을 패키지설치로 설치 하면 끝이다. 이렇게 설치해준뒤의

원문 강좌의 vsftp재시작을 해보고 ftp에 anonymous로 로그인 해보면 매우잘되는것을

볼수있을것이다. 활용방법은 다음에 퍼오던지 하도록 하겠다.


신고
크리에이티브 커먼즈 라이선스
Creative Commons License
(브라우저에서 http://localhost 를 입력해서 apache가 작동되고있는지 확인한모습..)
사용자 삽입 이미지

앞서 강좌에서 아파치서버를 리눅스에 설치 하는것까지 알아보았다. 이제는 환경설정 파일을 수정

해봐야 할때다. 사실 요즘 홈페이지들 특성상 APM(Apache+PHP+Mysql)을 설치하는 경우가 많으나

여기서는 아파치 서버 구동 자체에만 중점을 두겠다. 일단 웹서버 설치 그리고 구동후 궁금한것이

내가 서버에 올릴 홈페이지를 저장할 폴더가 어디인가일텐데 httpd.conf 파일을 열면 찾아볼수있다

기본적으로는 htdocs라는 디렉토리(사진1 참조) 에 저장되며 이 디렉토리는 아까 설치했던

usr/local/apache 디렉토리 내에서 찾을수있다. 필자의 경우는 이 환경설정 파일에서

기본 디렉토리를 public_html로 수정하였다. 밑의 그림이 그 예이다.
사용자 삽입 이미지

★(사진1)
사용자 삽입 이미지
(학교에서 아파치 서버가 잘 설치 됐는지 안됐는지만 확인할것이라.. 소스는 대충 처박았다..
 이것을 기본 htdocs디렉토리에 저장하고나면 아래와 같은 사진화면을 볼수있게된다.)

밑의 사진은 외부접속과 내부 접속을 확인해본 사진이다. 밑에서 설명하겠지만 이는 Vmware의

NAT설정부분의 포트포워딩을 사용한것으로 80번포트(웹서버포트)를 리눅스에서 사용할수있게

설정해준것이다. 물론 포트는 80번 포트외에 가장 많이 쓰이는 8080이나 9999등을 이용할수도

있다. 케이블 모뎀을 쓰는 경우에 많은 사용자들이 80번 포트가 막혀있는 경우가 있는데 저런

8080,9999등의 포트를 사용하는 방법도 있다. 어쨋든 접속 확인 방법은 브라우저상에서

http://localhost/ 혹은 http://127.0.0.1 혹은 Vmware의 가상랜카드에 부여된 IP넘버를 입력해

보면 된다.
사용자 삽입 이미지

아래 사진은 Vmware의 포트포워드 기능을 설정하려는 사진이다. 사진에서 보는것과 같이

edit->virtual network settings 에 들어간다.
사용자 삽입 이미지

위의 과정을 거치면 여기 띄워진 창의 순서대로 NAT을 누르고 edit란 메뉴가 보이는데 그것을

누르면 NAT settings창이 뜬다. 여기서 port forwarding을 클릭하면 Port Forwarding 창이 뜨는데

 처음엔 아무것도 없다. 여기서 Add를 클릭해주면 Map Incoming port 창이 뜨게 된다.

 Host port가 의미하는것은 가상컴퓨터(vmware)가 아닌 현재 쓰고있는 컴퓨터의 포트를 지정해

 주는 것이고 우리는 웹서버(80)번 포트를 사용할것이기 때문에 80번 포트를 써주었다.

 만약 실제컴퓨터의 OS가 윈도우고 윈도우 서버를 운영한다고 하면 80번 포트 대신에 위에서

 언급했던 8080이나 9999포트를 써줘도 무방하다.

 그밑의 Virtual Machine IP Address는 쉽게 VMware의 가상 랜카드 IP주소를 말한다.(리눅스에서)

 이는 리눅스 터미널에서 'ifconfig' 라는 명령어로 확인할수 있다.(ipconfig는 윈도우용..)

 port는 동일하게 설정해주면 된다. 이런 설정을 거친뒤에 리눅스에서 아파치 서버데몬을 실행

 해보고 호스트 컴퓨터에서(실제컴퓨터) 브라우저로 실제컴퓨터에 부여된 IP를 입력해서

 테스트 해본다 (예:만약 실제 컴퓨터 IP가 123.45.25.2 라면 http://123.45.25.2를 입력해본다.)

 여기서 홈페이지 내용이 뜬다면 성공한것이다.
사용자 삽입 이미지

여기까지 Vmware를 활용한 리눅스 웹서버 설치 강좌를 마친다. 사실 인터넷에서 찾아보면

이에 관해 많은 내용들이 있다. 나도 리눅스를 잘사용하지 않는 초보이기 때문에 같은 초보의

입장에서 설명해줄수 있을듯 해서 이강좌를 만든것이고 도움이 됐으면 한다. 인터넷에서 본

대다수 글에서는 그저 커맨드만 입력하라고 쫙 써놓은 글이 많은데 정말 입문자에게는 터미널이

왜 있는지도 모르는 경우가 많다. 그리고 어디에있는지도 왜써야하는지도.. 그래서 부족한 점도

있지만 처음부터 쭉 설명한것이다. 사진캡쳐가 제멋대로 되어있는부분이 많은데 충분히

할수있을것이라 생각되며 궁금한점은 아는데 까진 답변하도록 노력하겠다.
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
(매끄러운 진행을 위해..반말좀 쓰겠습니다..죄송 ㅡㅡ;;)
 
리눅스로 웹서버 구축할일은 사실 없었다. 윈도우 아파치 서버를 항상 이용해와서 다들 M$라고

 욕들하지만 난 개인적으로 GUI(Graphic User Interface)를 좋아하기 때문에.. 많은 커맨드 입력을

 요구하는 리눅스는 기피해왔었다. 사실 잘다루지도 못한다. 어쨋든.. 공교롭게도 이번에 학교에서

 해야될것이..1차 과제가 리눅스로 아파치서버를 구축하는 것이어서 제로보드4와 Mysql 5.x와의

 삽질의 후유증이 끝나기도 전에.. 구축을 하게됐다. 사실은 웹서버만 달랑 설치했다고 끝나는건

 아니지만 그래도 설치라도 해야 뭘 설정을 하던 말던 할것 같아 같은 초보의 입장에서 상세히

 이 강좌를 진행하려 한다. 그림파일이 캡쳐하기가 귀찮아서 다소 미흡하지만 이해해주길 바란다..

 일단 필자의 준비물은 다음과 같았다.

1.Vmware workstation 5.5.3 build 34685(현재기준 최신판)
2. Fedora core 4(CD #4)
3. Apache 2.0.50(Linux용 tar.gz형식으로 이루어짐..zip파일은 윈도우용..)
  (파일은 http://www.apache.org 에서 구할수 있다.)
4. 설치를 기다리는 인내심

(Vmware에대해 잘 모른다면 VMware는 가상컴퓨터라고 쉽게 생각하면 되며 이는 나중에 따로
 강좌를 만들 생각입니다. 여기서는 리눅스로 웹서버를 만드는 과정만을 소개하겠습니다.)

사용자 삽입 이미지
여기에 터미널이 숨어있다.. 이렇게 들어가기 불편하면 오른쪽 마우스를 클릭해서 패널에 추가해서

들어가면 편하다.

사용자 삽입 이미지
 이화면은 페도라 코어 6을 설치하고 터미널 창을 실행시킨 모습이다. 터미널창은 프로그램->시스템
 도구->터미널을 살짝 눌러주면 위와 같은 창이 뜨게되며 여기서 명령어를 입력할 수 있게된다.

 사진에서 나오는 모습은 Apache서버 압축(tar.gz)파일을 풀어놓은 상태이다. 여기까지에 대해서

 설명하겠다. 일단 터미널 창을 띄운뒤엔 화면에 '[root@localhost local]# ' 이라고만 뜬다.

 그럼 여기서 나는 usr디렉토리 내의 local디렉토리 내의 apache디렉토리에 아파치서버파일의

 압축을 해제 할것인데 방법은 아래와 같다.

 (터미널창)
 [root@localhost local]# cd usr/local <--cd 부분부터 입력해주면 된다.
 [root@localhost local]# tar xzvf httpd-2.0.50.tar.gz <-- 이파일은 이곳에 옮겨놓은 아파치서버
  압축파일이다. usr/local 디렉토리를 검색하고 싶다면 컴퓨터->파일시스템을 눌러보면 금방
  찾을수있고 저 다운로드 받은 파일은 그냥 잘라서 붙혀넣기 해도 무방하다. 어쨋든 이명령어는
  원본 파일의 압축을 ' httpd-2.0.50 ' 디렉토리에 쫙 풀어줄것이다..

사용자 삽입 이미지
 아파치 서버 파일들을 컴파일 중인 모습이다. 자여기서.. 한가지 팁! 필자의 경우 처음엔 Redhat

 Linux enterprise as4를 설치했으나 그다음에 Fedora 코어 6을 설치했었다. 여기서 중요한 실수를

 한가지 했는데 사용자 설치를 선택했다면 반드시 개발자관련 패키지들을 설치 하라는 것이다.

 다른건 별 쓸모없고 GCC컴파일러가 설치가 안되있다면 소스컴파일 설치를 할수가 없다.

 (윗 사진과 같은 방법이 소스컴파일설치이다..RPM패키지 설치도 있으나 다른사람들도..다들
  소스 컴파일설치를 추천한다..이유는?...나도 잘모른다..;)
 
 윗 화면이 나오게 하려면 다음과 같은 명령어들을 또 쳐줘야 한다.

 (터미널 창)
[root@localhost local]# cd httpd-2.0.50 <-아까 압축을 풀었던곳으로 이동
[root@localhost httpd-2.0.50]# ./configure --prefix=/usr/local/apache --enable- (아래와 쭉붙혀쓴다.) rule=SHARED_CORE --enable-module=so <-설치환경을 지정한다고 보면되겠다. 윗처럼 쭉 써주면 된다.

 실행하고 나면 위와 같이 컴파일 하는 화면이 뜨게 된다. 시간이 쪼금 걸린다.(2~4분정도..)

★사진(1)
사용자 삽입 이미지

★사진(2)
사용자 삽입 이미지
./configure 명령이 다끝나고 터미널에서 다시 [root@localhost httpd-2.0.50]# 이뜨면

거기서 곧장 make란 명령어를 입력하면 사진(1)과 같은 모습을 볼수있고 그게 끝나고다시

[root@localhost httpd-2.0.50]# 이 뜨면 이번엔 make install을 입력하면 사진(2)같은 화면을

2분정도 감상할수있다.(캡쳐하다 어느게 make를 입력했을때였는지 make install때였는지 헷갈

리는데..별상관없다..)

사용자 삽입 이미지

컴파일 성공여부를 확인해본다.
(터미널창)
[root@localhost httpd-2.0.50]# usr/local/apache/bin/httpd -l (i가 아니라L)
mod_actions.c
(..중략)
mod_so.c <-이게 보여야 컴파일이 성공한것이다.

사용자 삽입 이미지
자! 여기까지 다됐다면 위의 화면 처럼 입력해준다.
[root@localhost httpd-2.0.50]# /usr/local/apache/bin/apachectl start

위의 명령어는 아파치서버데몬 실행 명령어이다. 일단 포트가 열리게 되므로 열린뒤에는

로그아웃하여 다른 사용자 계정으로 들어와도 아파치 서버는 살아있게된다.

여기까지 아파치 서버 설치가 끝난것이고 다음강좌는 접속확인법, Vmware에서 해줘야

할 내용을 설명하겠다. 만약 Vmware를 사용하지 않고 리눅스가 메인OS라면 여기까지만

참고하면 될것이다.(홈페이지 수정방법이나 접속확인등은 다음 장에서 참고바람)

(다음강좌에서 계속)


신고


티스토리 툴바