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

  1. 2009.05.14 제로보드 XE XpressEngine 대용량 업로드 게시판만들기.
  2. 2009.05.02 lampp설치 및 lampp비번 설치
  3. 2009.05.02 libmysqlclient.so
  4. 2009.04.24 웹서버 설치 - apache , openssl , zlib
  5. 2009.04.24 웹서버 설치 - JDK설치
  6. 2009.04.24 PC에서 구성하는 사무실 환경(後/3),ssh , ftp의 사용
  7. 2009.04.24 PC에서 구성하는 사무실 환경(後/2), fedora9 설치
  8. 2009.04.24 PC에서 구성하는 사무실 환경(後/1), fedora9 설치,vmware
  9. 2009.04.24 PC에서 구성하는 사무실 환경(中), 공유기를 이용한 포트포워딩
  10. 2009.04.24 PC에서 구성하는 사무실 환경(前), fedora core와 putty,vmware
  11. 2009.04.24 linux quota주기
  12. 2009.04.24 fedora6에서 name서버 설정하기
  13. 2009.04.24 Mysql,제로보드4,euckr이 안될때
2009. 5. 14. 13:22

제로보드 XE XpressEngine 대용량 업로드 게시판만들기.


1. 아파치와 Mysql PHP가 모두 성공적으로 설치되어 있다고 가정합니다.
2. Mysql에 DB를 만듭니다. (UTF8)
3. 제로보드 사이트에서 제로보드 최신버젼을 다운로드합니다.
http://www.xpressengine.com/?mid=xe_issuetracker&act=dispIssuetrackerDownload
(wget 명령으로 다운받을수 없으므로, 다운후 서버에 업로드 하던지, 아니면 리눅스의 파이어폭스로 다운받으세요.)
4.압축을 풉니다.
[@localhost public_html]$ unzip xe.1.2.2.zip
[bestakas@localhost public_html]$ cd xe
[bestakas@localhost xe]$ ls
LICENSE  classes  config     layouts  modules  widgetstyles
addons   common   index.php  libs     widgets

클라이언트 웹브라우져에서 실행.

(모르시면 웹서버를 만드는법부터 다시 공부....)

DB와 사용자 계정에 대한 정보 입력

XE설치 완료..

5. 고용량 게시판을 만들기위한 설정.
(* 웹호스팅을 받으시는 분들은 웹호스팅 회사에 문의해야합니다. 최대로 받을수 있는 용량이 얼마인지 문의후 작업해야 합니다.)

개인서버를 위한 작업.
php.ini를 찾으세요....보통 컴파일버젼이라면 /usr/local/httpd/conf 디렉토리에 있거나...
lampp사용자라면 /opt/lampp/etc디렉토리에 있습니다.
리눅스 서버 설치시 기본으로 설치한분들은 /etc 에 있을수도 있습니다.

 

post_max_size=1800M

file_uploads = On

upload_max_filesize =1800M

max_execution_time = 600

memory_limit = 1800M


위의 항목들을 찾아 위와 같이 자신이 원하는 용량으로 바꾸어줍니다.
(저의 경우, 보통의 DVD들이 1.45G이므로 1800M로 설정했습니다.)

위의 php.ini를 설정한후에 아파치의 재시동...!

6. XE에서의 설정

위의 마크한부분을 클릭해서 위와같이 바꾸어줍니다.

설정후
각 게시판으로 이동합니다.
 
마크한 부분을 클릭후
아래로 스크롤 하다보면 첨부파일 항목이 나옵니다.

위와 같이 설정 변경후 저장합니다...~!


1.4기가의 영화를 업로드하고 다운로드 테스트해봅니다. 성공했군요..
2009. 5. 2. 10:29

lampp설치 및 lampp비번 설치


Linux에서 Apache및 mysql,php의 컴파일 설치가 구찮으신 분들은 간단히 lampp라는 프로그램으로 APM을 설치할수 있다.

lampp는 독일의 리눅스 그룹이 배포하는 버젼으로 안정버젼의 APM을 압축을 풀면서 자동 설치된다.

컴파일 버젼은 자신의 구색에 맞춰서 APM을 쓸수 있지만, lampp는 간단하게 APM을 설치할수 있기 때문에 많이 애용된다.

Mysql의 기본세팅은 대세인 UTF8로 세팅되므로 주의할것.. 오래된 웹페이지를 게시할때는 collate문으로 sql을 세팅해주어야 한다.

lampp는 이곳에 가면 구할수 있다..
http://www.apachefriends.org/en/xampp-linux.html

반드시 /opt/ 디렉토리 아래에 lampp가 설치되어야 작동한다. 이점 반드시 주의..

xampp에 대한 위키백과의 설명이다.
 XAMPP크로스 플랫폼 웹 서버 자유 소프트웨어 꾸러미이다. 아파치 웹 서버 MySQL, PHP, 을 포함하고 있다. GNU 일반 공중 사용 허가서로 배포되며 자유롭고 쓰기 쉬운 웹 서버이다. 마이크로소프트 윈도, 리눅스, 솔라리스, 맥 오에스 텐 등에서 동작하며 주로 웹 개발에 사용된다


lampp를 설치한후에 mysql에 대한 비밀번호 설정을 해줘야 하는데..
 ./mysqladmin -uroot -p password 루트패스워드
Enter password:
[root@localhost bin]#

설정은 이거 하나면 끝이 난다...
 
그리고 나서..

./opt/lampp start

로 기동한다.

lampp의 php컴파일 옵션이다..ㅡ.ㅡ;;
 ./configure' '--prefix=/opt/lampp' '--with-apxs2=/opt/lampp/bin/apxs' '--with-config-file-path=/opt/lampp/etc' '--with-mysql=/opt/lampp' '--enable-inline-optimization' '--disable-debug' '--enable-bcmath' '--enable-calendar' '--enable-ctype' '--enable-dbase' '--enable-discard-path' '--enable-exif' '--enable-filepro' '--enable-force-cgi-redirect' '--enable-ftp' '--enable-gd-imgstrttf' '--enable-gd-native-ttf' '--with-ttf' '--enable-magic-quotes' '--enable-memory-limit' '--enable-shmop' '--disable-sigchild' '--enable-sysvsem' '--enable-sysvshm' '--enable-track-vars' '--enable-trans-sid' '--enable-wddx' '--enable-yp' '--with-ftp' '--with-gdbm=/opt/lampp' '--with-jpeg-dir=/opt/lampp' '--with-png-dir=/opt/lampp' '--with-freetype-dir=/opt/lampp' '--without-xpm' '--with-zlib=yes' '--with-zlib-dir=/opt/lampp' '--with-openssl=/opt/lampp' '--with-expat-dir=/opt/lampp' '--enable-xslt=/opt/lampp' '--with-xsl=/opt/lampp' '--with-dom=/opt/lampp' '--with-ldap=/opt/lampp' '--with-ncurses=/opt/lampp' '--with-gd' '--with-imap-dir=/opt/lampp' '--with-imap-ssl' '--with-imap=/opt/lampp' '--with-gettext=/opt/lampp' '--with-mssql=/opt/lampp' '--with-sybase=/opt/lampp' '--with-interbase=shared,/opt/interbase' '--with-mysql-sock=/opt/lampp/var/mysql/mysql.sock' '--with-oci8=shared,instantclient,/opt/lampp/lib/instantclient' '--with-mcrypt=/opt/lampp' '--with-mhash=/opt/lampp' '--enable-sockets' '--enable-mbstring=all' '--with-curl=/opt/lampp' '--enable-mbregex' '--enable-zend-multibyte' '--enable-exif' '--with-bz2=/opt/lampp' '--with-sqlite=shared,/opt/lampp' '--with-libxml-dir=/opt/lampp' '--enable-soap' '--enable-pcntl' '--with-mysqli=/opt/lampp/bin/mysql_config' '--with-mime-magic' '--with-pgsql=shared,/opt/lampp/postgresql' '--with-iconv' '--enable-dio' '--with-pdo-mysql=/opt/lampp' '--with-pdo-pgsql=/opt/lampp/postgresql' '--with-pdo-sqlite' '--with-ming=shared,/opt/lampp'

자~ 개인서버의 멋진 출발이다..



2009. 5. 2. 09:06

libmysqlclient.so


ㅋㅋ.. 오랜만에 만진 개인 서버의 아파치가.. 이런 메세지를 보이며 실행되지 않는다..

 Cannot load /usrl/local/httpd/modules/libphp5.so into server: libmysqlclient.so.15: cannot open shared object file: No such file or directory

ㅜ.ㅜ

왕 짜증이군..

뭔가 나간듯 하다...아파치와 mysql의 thread모드가 뭐가 안맞는듯 ....

ㅡ.ㅡ 아 짜증나는 리눅스의 길이여..~

재컴파일밖에 답이 없는듯 하다...

2009. 4. 24. 19:17

웹서버 설치 - apache , openssl , zlib

일명 APM (Apache) , (MySQL),(PHP)는 웹서버의 대명사이다. 많은 웹사이트가 이 세가지의 프로그램으로 이루어진다고 해도 과언이 아니다.

OPENSSL

웹서버에 SSL를 설치할 경우 SSL이 적용된 전자문서는 별도의 암호화 과정을 거쳐 상대방에게 전달되므로 클라이언트와 서버외에는 그 내용을 해독할 수 없습니다. 따라서 웹서버와 클라이언트간의 정보는 둘 외에는 알수가 없습니다. 그러나 SSL기술은 하나의 서버에 하나의 도메인만 기술이 적용되기 때문에 버추얼호스트에는 적용이 되지않습니다.

[root@localhost app]# cp /home/sunnyfm/open* /app/
[root@localhost app]# pwd
/app
[root@localhost app]# tar zxvf openssl-*
[root@localhost app]# cd openssl-0.9.8i
[root@localhost openssl-0.9.8i]# ./config --prefix=/usrl/local/openssl
[root@localhost openssl-0.9.8i]# make

------- 중략 -------

make[2]: Leaving directory `/app/openssl-0.9.8i/test'
make[1]: Leaving directory `/app/openssl-0.9.8i/test'
making all in tools...
make[1]: Entering directory `/app/openssl-0.9.8i/tools'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/app/openssl-0.9.8i/tools'     --> 성공

[root@localhost openssl-0.9.8i]# make install

------- 중략 -------

cp openssl.pc /usrl/local/openssl/lib/pkgconfig
chmod 644 /usrl/local/openssl/lib/pkgconfig/openssl.pc   --> 성공
[root@localhost openssl-0.9.8i]# ls /usrl/local/openssl
bin  include  lib  ssl

zlib

통신상에 이루어지는 데이타 압축 프로그래밍 함수기술입니다.

[root@localhost app]# cp /home/sunnyfm/z* /app/
[root@localhost app]# ls
-                               httpd-2.2.10         openssl-0.9.8i          zlib-1.2.3.tar.tar
hanyang-ttf-2.0-2hs.noarch.rpm  httpd-2.2.10.tar.gz  openssl-0.9.8i.tar.tar
[root@localhost app]# tar zxvf zlib*

[root@localhost app]# cd zlib-1.2.3
[root@localhost zlib-1.2.3]#./configure --prefix=/usrl/local/zlib

Checking for gcc...
Building static library libz.a version 1.2.3 with gcc.
Checking for unistd.h... Yes.
Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf()
Checking for vsnprintf() in stdio.h... Yes.
Checking for return value of vsnprintf()... Yes.
Checking for errno.h... Yes.
Checking for mmap support... Yes.
[root@localhost zlib-1.2.3]#make

--------- 중략 ------------------------

gcc -O3 -DUSE_MMAP -o example example.o -L. libz.a
gcc -O3 -DUSE_MMAP   -c -o minigzip.o minigzip.c
gcc -O3 -DUSE_MMAP -o minigzip minigzip.o -L. libz.a

[root@localhost zlib-1.2.3]# mkdir -p "/usrl/local/zlinb/include" "/usrl/local/zlib/lib"
[root@localhost zlib-1.2.3]# make install
cp zlib.h zconf.h /usrl/local/zlib/include
chmod 644 /usrl/local/zlib/include/zlib.h /usrl/local/zlib/include/zconf.h
cp libz.a /usrl/local/zlib/lib
cd /usrl/local/zlib/lib; chmod 755 libz.a
cd /usrl/local/zlib/lib; if test -f libz.so.1.2.3; then \
          rm -f libz.so libz.so.1; \
          ln -s libz.so.1.2.3 libz.so; \
          ln -s libz.so.1.2.3 libz.so.1; \
          (ldconfig || true)  >/dev/null 2>&1; \
        fi
cp zlib.3 /usrl/local/zlib/share/man/man3
chmod 644 /usrl/local/zlib/share/man/man3/zlib.3
[root@localhost zlib-1.2.3]# ls /usrl/local/zlib
include  lib  share
[root@localhost zlib-1.2.3]#

apache

아파치는 원래 a patch였다고 한다. 그런데 발음하다보니 apache가 되서 그냥 apache프로젝트로 나아간다고 아파치에서도 설명한다고 한다. 그건 중요하지 않고... 많은 웹서버에서 이 아파치로 웹서버를 운영하고 있다. 각설하고 한번 설치해보자..

cp,mv명령으로 옮기고 나서 압축을 푼다. 압축은 여러가지가 존재하는데 tar형식이 가장 일반화되어있다.

[root@localhost app]# tar -xvf httpd-2.2.10.tar.gz

압축이 풀린다.

[root@localhost  app]# ls
-  hanyang-ttf-2.0-2hs.noarch.rpm  httpd-2.2.10  httpd-2.2.10.tar.gz
[root@localhost app]# cd httpd-2.2.10
[root@localhost httpd-2.2.10]# ls
ABOUT_APACHE  INSTALL         Makefile.win      ROADMAP           buildconf      emacs-style   modules  test
Apache.dsw    InstallBin.dsp  NOTICE            VERSIONING        config.layout  httpd.dsp     os
BuildAll.dsp  LAYOUT          NWGNUmakefile     acinclude.m4      configure      httpd.spec    server
BuildBin.dsp  LICENSE         README            apachenw.mcp.zip  configure.in   include       srclib
CHANGES       Makefile.in     README.platforms  build             docs           libhttpd.dsp  support
[root@localhost app]#

압축이 풀리면 이제 컴파일에 들어가자..

[root@localhost httpd-2.2.10]# ./configure --prefix=/usrl/local/httpd --with-mpm=prefork --enable-ssl --with-ssl=/usrl/local/openssl --enable-deflate --with-z=/usrl/local/zlib --enable-so --enable-mods-shared=all
--------- 중략 --------------------

config.status: creating build/rules.mk
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@localhost httpd-2.2.10]# make

--------- 중략 --------------------
make[4]: Leaving directory `/app/httpd-2.2.10/modules/mappers'
make[3]: Leaving directory `/app/httpd-2.2.10/modules/mappers'
make[2]: Leaving directory `/app/httpd-2.2.10/modules'
make[2]: Entering directory `/app/httpd-2.2.10/support'
make[2]: Leaving directory `/app/httpd-2.2.10/support'

make[1]: Leaving directory `/app/httpd-2.2.10' <-- 성공

[root@localhost httpd-2.2.10]# make install

Installing header files
Installing build system files
Installing man pages and online manual
mkdir /usrl/local/httpd/man
mkdir /usrl/local/httpd/man/man1
mkdir /usrl/local/httpd/man/man8
mkdir /usrl/local/httpd/manual
make[1]: Leaving directory `/app/httpd-2.2.10'
[root@localhost httpd-2.2.10]# ls /usrl/local/httpd
bin  build  cgi-bin  conf  error  htdocs  icons  include  lib  logs  man  manual  modules
[root@localhost httpd-2.2.10]#

OpenSSL , zlib , Apache까지 모두 설치가 정상적으로 끝났다.

2009. 4. 24. 19:13

웹서버 설치 - JDK설치

-JDK란 무엇이란 말이냐? JFK의 친척인가?

JDK는 Java Develoment Kit의 약자이다. java개발툴이라는 야그다..

아~ 그럼 Java가 뭐다냐? 흔히 보는 자바스크립트란 말이냐?

좀 비슷하기는 하지만 아니다..

java란 선마이크로시스템이라는 미국 굴지의 회사가 개발한것으로 웹브라우져안에서의 프로그래밍 언어라고 할수 있다..

웹브라우져 안에서 그림도 그리고, 게임도 만들고 할수 있다는 야그다..

익스플러러건 파이어폭스건 동일하게 작용한다..

그런데...!! 문제는 웹을 서비스하는 서버에서 JDK를 설치해야 웹을 보는 아그들이 그런 프로그램을 즐길수 있다는것이다..

어느 웹솔루션을 사거나 구해보면..

웹환경 : APACHE (IIS포함) , MySQL , JDK 1.5이상..

이라고 나온다면 JDK가 설치안된 웹서버에서는 쓸수 없다는 애기다..(꼭 내가 프로그래밍 할필요는 없으나 남이 개발한건 쓸수있어야 하지 않는가)

이것은 자바 프로그래밍의 공부와 무관하게 내가 웹서버를 열고있고 누군가에게 서비스하고 있다면 당연히 되어야 하는 귀결적인 내용이다.. 미국의 오렐리 사장이라는 놈이 말한 웹 2.0의 시작은 JDK부터 시작한다고 보면 된다.

http://java.sun.com/javase/downloads/ 일루가면 jdk를 받을수 있다.

우선 ftp를 이용하거나 어떻게 해서든 리눅스로 옮기자..(ftp는 루트접속이 안되기 때문에 일반계정으로 로그인한다음 cp명령으로 이동하자.

[root@localhost ~]# cd /
[root@localhost /]# mkdir app
[root@localhost /]# mv /home/sunnyfm/jdk-* /app/
[root@localhost /]# cd /app
[root@localhost app]# ls
jdk-1_5_0_16-linux-i586-rpm.bin
[root@localhost app]#

이방법이 아니라면..

[root@localhost app]# wget -o- http://121.162.110.124/~bestakas/jakarta/jdk-1_5_0_16-linux-i586-rpm.bin
[root@localhost app]# ls
- jdk-1_5_0_16-linux-i586-rpm.bin

인터넷주소로 직접 다운받는 방법이 있다.(하지만 저걸 언제 외운단 말이냐)

자 이제 jdk를 설치해보자..

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

[root@localhost app]# chmod +x jdk-1_5_0_16-linux-i586-rpm.bin
[root@localhost app]# ./jdk-1_5_0_16-linux-i586-rpm.bin

이러면 뭔말이 나오는 무시하고 계속 엔터후에 yes를 쳐주자

Sun Microsystems, Inc.  Binary Code License Agreement

for the JAVA 2 PLATFORM STANDARD EDITION DEVELOPMENT KIT 5.0

SUN  MICROSYSTEMS,  INC.  ("SUN") IS WILLING TO LICENSE  THE
SOFTWARE  IDENTIFIED  BELOW TO YOU ONLY  UPON THE  CONDITION
THAT YOU ACCEPT ALL OF THE TERMS  CONTAINED  IN THIS  BINARY
CODE  LICENSE  AGREEMENT  AND  SUPPLEMENTAL   LICENSE  TERMS
(COLLECTIVELY   "AGREEMENT").  PLEASE  READ  THE   AGREEMENT
CAREFULLY.  BY DOWNLOADING OR INSTALLING  THIS SOFTWARE, YOU
ACCEPT THE TERMS OF THE  AGREEMENT.  INDICATE  ACCEPTANCE BY
SELECTING   THE  "ACCEPT"   BUTTON  AT  THE  BOTTOM  OF  THE
AGREEMENT.  IF YOU ARE NOT  WILLING  TO BE BOUND  BY ALL THE
TERMS,  SELECT  THE  "DECLINE"  BUTTON AT THE  BOTTOM OF THE
AGREEMENT  AND THE  DOWNLOAD  OR  INSTALL  PROCESS  WILL NOT
CONTINUE.

1.  DEFINITIONS.  "Software"  means the identified  above in
binary   form,   any  other   machine   readable   materials
(including,  but not limited to,  libraries,  source  files,
header   files,  and  data  files),  any  updates  or  error
corrections   provided   by  Sun,  and  any  user   manuals,
programming guides and other  documentation  provided to you
---- 중략 -----------------------------------------------------------------

Sun Microsystems, Inc.  Binary Code License Agreement

for the JAVA 2 PLATFORM STANDARD EDITION DEVELOPMENT KIT 5.0

SUN  MICROSYSTEMS,  INC.  ("SUN") IS WILLING TO LICENSE  THE
SOFTWARE  IDENTIFIED  BELOW TO YOU ONLY  UPON THE  CONDITION
THAT YOU ACCEPT ALL OF THE TERMS  CONTAINED  IN THIS  BINARY
CODE  LICENSE  AGREEMENT  AND  SUPPLEMENTAL   LICENSE  TERMS
(COLLECTIVELY   "AGREEMENT").  PLEASE  READ  THE   AGREEMENT
CAREFULLY.  BY DOWNLOADING OR INSTALLING  THIS SOFTWARE, YOU
ACCEPT THE TERMS OF THE  AGREEMENT.  INDICATE  ACCEPTANCE BY
SELECTING   THE  "ACCEPT"   BUTTON  AT  THE  BOTTOM  OF  THE
AGREEMENT.  IF YOU ARE NOT  WILLING  TO BE BOUND  BY ALL THE
TERMS,  SELECT  THE  "DECLINE"  BUTTON AT THE  BOTTOM OF THE
AGREEMENT  AND THE  DOWNLOAD  OR  INSTALL  PROCESS  WILL NOT
CONTINUE.

1.  DEFINITIONS.  "Software"  means the identified  above in
binary   form,   any  other   machine   readable   materials
(including,  but not limited to,  libraries,  source  files,
header   files,  and  data  files),  any  updates  or  error
corrections   provided   by  Sun,  and  any  user   manuals,
programming guides and other  documentation  provided to you

Do you agree to the above license terms? [yes or no]
yes

Unpacking...
Checksumming...
0
0
Extracting...
UnZipSFX 5.50 of 17 February 2002, by Info-ZIP (
Zip-Bugs@lists.wku.edu).
  inflating: jdk-1_5_0_16-linux-i586.rpm
Preparing...                ########################################### [100%]
   1:jdk                    ########################################### [100%]

Done.
[root@localhost app]# rpm -qa | grep jdk
jdk-1.5.0_16-fcs.i586
java-1.6.0-openjdk-1.6.0.0-0.10.b09.fc9.i386
java-1.6.0-openjdk-plugin-1.6.0.0-0.10.b09.fc9.i386
[root@localhost app]#

install이 끝나고 rpm -qa | grep jdk명령으로 제대로 설치되었는지 확인 사살...

그래도 못 믿을수 있으니..

[root@localhost app]# 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

설치성공...

환경설정으로 들어가자..

[root@localhost app]# ls /usr/java/
jdk1.5.0_16
[root@localhost app]# ln -s /usr/java/jdk1.5.0_16 /usr/local/jdk
[root@localhost app]# vi /etc/profile

vi에디터로 /etc/profile을 수정 - 맨 밑에 다음의 문장을 입력후 저장후 나온다.

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

----------------------------------------------------------

[root@localhost app]# . /etc/profile   (갱신된 profile을 적용)
[root@localhost app]# 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
  -cp <path>                 Specify where to find user class files
  -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
  -d <directory>             Specify where to place generated class 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
  -X                         Print a synopsis of nonstandard options
  -J<flag>                   Pass <flag> directly to the runtime system

[root@localhost app]#
-- 메세지가 뜨면 OK

ln명령은 링크를 거는겁니다. 마치, 윈도우즈의 바로가기와 마찬가지이죠.. 모두 타이핑해서 설정하는게 틀리지만요... ^ ^

다음은 apache + tomcat설치를 해보겠습니다.

2009. 4. 24. 19:04

PC에서 구성하는 사무실 환경(後/3),ssh , ftp의 사용

SSH서버를 이용한 원격로그인

-> SSH서버는?

예전에 유닉스를 만져본 분들이라면 telnet이라는 원격접속을 기억한다. 지금은 이 telnet을 쓰는 시스템이 별로없다. 왜냐하면 보안에 취약하기 때문이다. 그래서 ssh라는 서버를 이용해서 원격로그인한다. ssh는 암호화된 코드로 데이타를 주고받기 때문에 telnet보다는 보안성이 있다는 야그다. 중요하진 않다. ssh를 이용해서 다른 작업도 많이 하지만, 우선은 ssh를 이용해서 원격로그인을 해보자.

터미날상에서

[root@localhost /]# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]
[root@localhost /]#

이렇게 치면 ssh가 재가동된다.

물론 root만 가능하다. ssh는 22번포트를 이용한다는 점과 보안이 telnet보다는 나은점..

그리고 별도의 설치없이 가장 기본이 되는 서버라 어느 배포판이나 기본 필수로 설치되고 부팅시 자동 서버데몬이 시작한다는 것이다...

--> ssh접속을 위한 윈도우즈용 프로그램

telnet의 경우 윈도우 도스창에서 telnet IP를 치면 자동으로 접속되었으나 , ssh의 경우 별도의 클라이언트가 필요하다. 그것이 바로 putty프로그램이다..

우선 터미날상에서

[root@localhost /]# useradd sunnyfm
[root@localhost /]# passwd sunnyfm
Changing password for user sunnyfm.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@localhost /]#

위와같이 새로운 사용자를 추가한다.

계정 sunnyfm 비번 sunnyfm으로 만들었다.

[root@localhost /]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:B0:6C:02
          inet addr:192.168.241.128  Bcast:192.168.241.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:feb0:6c02/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:94831 errors:0 dropped:0 overruns:0 frame:0
          TX packets:31488 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:128237530 (122.2 MiB)  TX bytes:2846215 (2.7 MiB)
          Interrupt:18 Base address:0x2000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1428 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1428 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:71771 (70.0 KiB)  TX bytes:71771 (70.0 KiB)

[root@localhost /]#

ifconfig명령으로 자신의 ip를 확인한다. 192.168.241.128이다..DHCP로 아이피를 할당받았기에 ip를 모를것이다. 이것은 새로 설치한 리눅스의 Gnome의 터미날에서 알아보고, 이제 윈도우즈로 와서 한글putty를 실행한다.

 

아까 확인한 ip를 호스트에 타이핑하고 포트는 22번 SSH를 선택해주고 열기로 열어준다.

해당 서버로 ssh가 접속되며,login id를 물어본다. 아까 생성한 새로운 계정과 비번을 넣으면

[sunnyfm@localhost ~]$ _   이런 것이 뜬다. sunnyfm으로 localhost에 접속했다는 야그다. 나중에 네트웍이름을 도메인설정하면 [sunnyfm@domain.com  ~]$요런식으로 뜨게된다. 나중 야그고..

ssh는 기본적으로 root로 원격로그인을 불가하게 만들었다. 그러므로 ssh접속시는 일반계정으로 접속후 su - 명령으로  root권한을 획득한다. su - 명령후 root의 비번을 입력하면 root권한을 행사하게 된다.

이제부터 대개의 작업은 이 putty를 가지고 이루어진다. 간혹가다가 vncserver라는것을 이용해서 xwindow로그인을 하게되지만 주가 putty로 인한 작업이다. 실제머신에서는 실제머신에 접근하지 않고 원격으로만 작업을 할수 있다. 즉 리눅스머신을 구축후엔 윈도우즈 클라이언트만 있으면 제집 드나들듯 마음대로 할수 있다는것이다..

ssh는 22번 포트를 이용하기에 외부 네트워크망에서 접속을 하려한다면 공유기의 22번포트를 포트포워딩해주어야 외부네트워크망에서 접속이 가능하다. 리눅스머신이 두대 이상 한네트워크망에 있다면 22번 포트는 제일할일 없는 서버에 만들어주것도 한 요령이다. ssh도 보안이 강화되었지만, 언제나 안전한것은 아니기 때문이다. root비번이 뚤리면 허사니깐... 같은 리눅스상에서는 프롬프트에서 ssh IP명령으로 바로 ssh접속이 가능하기에 외부에서는 B컴으로 접속하고 B컴으로 A의 SSH서버에 접속하면 그만큼 더 보안이 나아지니깐말이다.. (하긴 그다지 효용성은 별로)

[sunnyfm@localhost ~]$

[root@localhost ~]#

두개의 프롬프트는 차이가 있다. 끝이 $와 #로 끝난다.

눈치챘겠지만 $는 일반유져의 프롬프트이고 #는 루트권한의 프롬프트이다..

나중에 알게되겠지만 리눅스의 autoexec.bat격인 .bash_profile화일에서 설정이 가능하다..

3. vi에디터

vi에디터는 처음 리눅스를 사용하는 윈도우즈 사용자에게는 너무 볼품없는 프로그램이다. 하지만, 어느 리눅스교재이건 vi에디터에 대해서는 신봉과 칭찬이 마르지 않는다.

아무 디렉토리이건간에 vi test라고 쳐보자.

헉 이게 모다냐..

즉 리눅스의 기본 텍스트 에디터이다. 물론 xwindows상에서 gedit라는 훌륭한 에디터가 존재하지만 이상하게도 xwindows상에서도 vi에디터를 쓰게됨은 묘한일이다.

123456이라고 쳐보자. 아무런 반응도 안한다. ㅋ

이제 a쳐보자

아래가 insert로 바뀐다..

눈치가 있으신분들은 이해하셨으리라..

이제부터 텍스트를 입력할수 있다...

아무런 글을 친후 ESC키 를 누룬다음 :wq 를 입력해보자..

셀이 빠져나간다..

test라는 텍스트화일이 저장된후 나간것이다.

확인해보자.

[root@localhost /]# cat test
test
[root@localhost /]#

 

즉 vi에디터는 명령어만 알면 너무나도 쉽게 이용할수 있다.

저장않고 끝내기 위해서는 esc > :q! 를 입력하면 된다.

(vi명령어만 여러 포스팅이 가능할정도이다. 여기서는 이정도만 알고 넘어가자)

3. FTP서버의 설치

페도라 배포판 설치시 ftp서버를 설치하기로 했다.

만약 하지 않았다면, 루트로 yum -y install vsftpd로 설치하자.

<yum은 새로운 프로그램을 설치할때 쓰이는 명령어이다. 리눅스의 새로운 프로그램설치시 의존성이라는것이 매우 큰 어려움이었는데, yum의 개발로 상당히 쉬워졌다>

[sunnyfm@localhost ~]$ rpm -qa | grep vsftpd    (rpm명령으로 vsftpd가 설치되었는지 알아본다.)
[sunnyfm@localhost ~]$ yum -y install vsftpd      (도중에 y물음에 y로 답하면서 설치하라)
Loaded plugins: refresh-packagekit
You need to be root to perform this command.
[sunnyfm@localhost ~]$ su -
?뷀샇:
su: incorrect password
[sunnyfm@localhost ~]$ su -
?뷀샇:
[root@localhost ~]# rpm -qa | grep vsftpd
[root@localhost ~]# yum -y install vsftpd
Loaded plugins: refresh-packagekit
fedora                                                   | 2.4 kB     00:00
updates                                                  | 2.6 kB     00:00
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package vsftpd.i386 0:2.0.6-3.fc9 set to be updated
filelists.sqlite.bz2                                     |  10 MB     02:25
filelists.sqlite.bz2                                     | 7.5 kB     00:00
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================
Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
vsftpd                  i386       2.0.6-3.fc9      fedora            144 k

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

Total download size: 144 k
Downloading Packages:
(1/1): vsftpd-2.0.6-3.fc9.i386.rpm                       | 144 kB     00:06
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: vsftpd                       ######################### [1/1]

Installed: vsftpd.i386 0:2.0.6-3.fc9
Complete!
[root@localhost ~]#

설치후 ftp데몬을 구동해보자

[root@localhost etc]# service vsftpd start
Starting vsftpd for vsftpd:                                [  OK  ]

OK명령이 떨어지면 vsftp 서버데몬이 발동하는것이다.

또한 방화벽에서 ftp 포트인 21번 포트를 허용해주어야 한다.

[root@localhost ~]# export LANG=c
[root@localhost ~]# system-config-firewall-tui

화면을 영문으로 바꾸는 명령어 (코드들이 깨지므로) 이전버젼에서는 system-config-securitylevel-tui로 설정한다.

customize 선택

FTP서버를 *마크하여 허용해주자.. 21번포트 외부에서 접속가능하게 허용해준다는 뜻이다.

알FTP로 접속해보자. (외부접속하기 위해서는 21번포트를 포트포워딩해놔야 한다.)

sunnyfm으로 ftp접속은 성공하였지만, 읽는것과 쓰기기능이 불가하다. 그것은 SElinux가 활성화 되어 있어서이다.  SElinux는 국내 linux서책 저자들도 집필을 꺼릴만큼 어렵다고 한다. 워낙 보안보안 하니 linux 배포판의 버젼이 높아질수록 따로 보안관련 서적을 보지 않으면 풀어내지 못할만큼 어려워지고 있다..

하여간 SElinux보안을 풀어보자.

[root@localhost vsftpd]# setenforce 0
[root@localhost vsftpd]#

다시 sunnyfm으로 접속해보자..

정상적으로 화일이 업이 되었다..이로서 리눅스 3대 서버인 ftp서버 기능은 활성화되었다.

다음 포스트부터는 웹서버를 설치해보겠다.

우선 JDK부터 설치할것이다... 

2009. 4. 24. 18:51

PC에서 구성하는 사무실 환경(後/2), fedora9 설치

네이버의 나의 블로그를 티스토리로 이전하는 바람에 그림화일들이 작아졌다. 그러므로 그림안의 내용들이 뭔말인지 조그마하게 보인다. 그림을 크게 보시고자 하는 분은 네이버의 블로그를 찾아가시면 큰그림의 설명을 볼수있다.

http://blog.naver.com/bestakas/30038741372

이제 실제적으로 페도라9를 vmware에 인스톨해보자..

부팅후 이 화면까지 나오면 설치는 95% 성공했다고 보면 된다. 가상머신이 아닌 실제머신에서 이 메세지가 안뜨고 kernel panic이 뜰경우는 해당보드로는 fc9를 설치할수 없다고 보면 된다. 전버젼에 비해 fc9는 호환성이 매우 좋기 때문에, 거의 커널패닉은 볼 경우가 별루 없을 것이다.

(리눅스는 윈도우만큼 호환성이 좋다. fc4이후부터 S-ATA하드도 지원하기에 별 문제없다)

시디의 결점여부를 확인하는 작업이다. SKIP을 눌러 건너뛰자..

다음 화면이 나오기 까지 언어와 키보드를 선택하게 되는데 대한민국과 영어키보드를 선택하자.

우리는 아시아 대한민국에 사니깐 당연 아시아/서울

루트의 비번을 정한다. - 루트의 비번은 알아서 정하자. (루트란 시스템의 모든걸 관리할수 있는 슈퍼유져이다 .. 윈도우라면 Administrator 이다.)

파티션을 나누는 기능이다. 리눅스의 디스크관리는 한지면을 할애할 만큼 중요한 내용이 많다. quota라든가 ext포맷이라던가 RAID방식의 디스크구성등... 이 포스트에서는 웹서버를 만드는게 주 목적이니깐 그냥 디폴트레이아웃으로 설치한다..

랜카드의 IP를 설정하는데 그냥 DHCP로 설정하고 넘어가자..

추가 프로그램의 설치여부를 묻는것이다. 이 포스트에서는 Apache웹서버 , Mysql , PHP , JDK , tomcat등을 별도 설치할것이므로 사용자설정으로 세팅하자.

실제 GNOME, KDE등의 Xwindows은 쓸일이 없다. 단 대신 윈도우즈를 통한 다운로드때문에 그냥 설치해보자.. 설치하면 뽀대는 난다... Gnome만 살짝 눌러주자..

개발용 도구는 gcc나 perl등이 있다. 프로그래밍 도구이나 프로그래밍을 하지 않는 유져들에게도 필요하다. 이유는 프로그램설치시 원본소스를 가지고 컴파일이라는 작업을 통해서 프로그램을 설치할 경우가 많기 때문이다.

서버군에서는 DNS와 FTP정도만 설치한다. DNS설정은 개념도 어렵고 매우 까다롭다....점만 알아두자.. ftp는 vsftp가 설치되니 사용하는데 무난하다.

자 선택이 다되었으면 다음단계 설치로 진행하자..

자 화일을 복사하기 시작한다. 이 작업이 끝나면 부팅후 간단한 설정을 물어본다. 그다지 어려운것이 아니니 잘보고 선택한다...

모든 작업이 끝나고 재부팅되면 알수없는 여러메세지가 뜬후 아래와 같은 윈도우가 나타난다. 아래 그림과 같이 터미날 프로그램을 바탕화면으로 드래그해서 꺼내자.. X윈도우에서 가장 많이 쓰는 프로그램이다..

<bind업데이트후 한글Gnome이 갑자기 영문으로 변환되었다.. 영문이든 한글이든 상관없다.>

4번의 포스팅을 통하여 리눅스이 설치까지 알아보았다. 첨 리눅스를 해보시는 분은 VMWARE로 연습후 해도 되고 실제머신에서 설치해도 뭐 그다지 어렵지 않다. 공유기를 통한 포트포워딩을 알아봤으니 사무실에서도 웹서버를 구축할수 있게 되었다. 이제 FEDORA를 설치할수 있으니 이제부터 본격적인 실무적 포스팅으로 나아가보자...

- 다음포스트 : putty통한 ssh접속, 윈도우즈에서 XP에서 설치하는 웹서버 , FTP구동과 활용법...

으로 1장 Linux 웹서버 완전정복 1. PC에서 구성하는 사무실 환경을 마무리 합니다..

2009. 4. 24. 18:40

PC에서 구성하는 사무실 환경(後/1), fedora9 설치,vmware

네이버의 나의 블로그를 티스토리로 이전하는 바람에 그림화일들이 작아졌다. 그러므로 그림안의 내용들이 뭔말인지 조그마하게 보인다. 그림을 크게 보시고자 하는 분은 네이버의 블로그를 찾아가시면 큰그림의 설명을 볼수있다.

http://blog.naver.com/bestakas/30038740333

1. vmware.

윈도우즈에서 다른 OS나 윈도우즈를 설치하는 프로그램이다. 리눅스를 공부하는 학생이나 리눅스머신을 가지고 다닐수 없는 분들에게는 꽤 유용한 프로그램이다. 그러나 실무에서는 그다지 쓸일이 없다. 서버라는것 특히 웹서버의 경우는 24시간 구동되어야 가치가 있다. 실제 실무에 쓰이는 서버용 리눅스머신은 실제로 리눅스로 부팅해서 사용하기 때문이다. 하여간 리눅스를 첨 접하시는 분들에게는 그나마, 윈도우즈를 포기하지 않으며 파티션을 나눠 이리저리 왔다갔다 할 필요없는 아주 유용한 프로그램이다. 여기에 페도라 9를 인스톨하겠다.

(VMWARE는 여러 유료자료실에서 크랙버젼을 구할수 있다.)

사용법은 일반 유틸리티와 별 다르지 않다. new를 선택하면 친절한 영문 지시어와 함께 다른 OS용 가상컴퓨터를 생성시켜 준다.

* 주의점 - 네트워크를 NAT로 설치하는것이 좋다 - 자신의 컴퓨터안에 가상의 네트워크망을 만든다. 또한, 페도라를 사용하실분은 Redhat리눅스를 선택하면 되고 ubuntu의 경우 ubuntu를 선택하면 된다. * 설치이유는 VMtools이라는 자체 가상 하드웨어를 지원하기 때문에 각 OS마다 지원하는 드라이버가 틀리기 때문이다. X윈도우는 그다지 쓸 필요가 없기때문에 대충해도 그다지 쓰기엔 문제가 없다. 구동시켜보자..

2009. 4. 24. 18:28

PC에서 구성하는 사무실 환경(中), 공유기를 이용한 포트포워딩

1. 우선 가장 중요한것은 외부에서 내 웹서버로 접속하기 위해서는 내 컴퓨터가 외부의 인터넷과 접속이 되어 있어야 한다.

흔히 우리가 말하는 인터넷은 IPv4(4개의 IP번호)를 기반으로 한다. 우리가 인터넷에 접속하면 반드시 그 PC는 아이피라는것을 할당받는다.

자 그럼 우리의 IP를 확인해보자..

윈도우즈에서는 이런방식으로 IP를 비주얼하게 확인할수 있다.

다른방법으로는 시작> cmd 으로 도스창을 연다음 ipconfig명령으로 간단히 알아볼수도 있다.

자기 PC의 IP는 반드시 확인해봐야 한다.

위 그림은 Vmware가상 IP가 추가되어 있지만 실제 PC의 실제 IP는 ethernet adapter로컬영역연결의 IP(세번째)가 실제 IP이다..

위에 보건데 222.239로 시작된다..

이는 공인된 IP이다. 즉 외부에서 접속해도 실제 접속 가능한 IP라는것이다.

<윈도우즈에서 Apache를 구동한 모습이다.>

즉 공인된 IP만 물려있으면 웹서버용 프로그램만 구동하면 웹서버의 기능을 한다.

그러나.. 내 PC가 사설IP에 물려있다면 외부에서 웹으로 내 PC로의 접속은 불가하다.

<리눅스에 확인한 서브리눅스머신의 IP현황>

사설 IP란 내부네트워크를 구성할때 쓰는 IP이다. 보통 IP의 앞자리가 192나 10으로 시작되는 IP들이 이에 해당한다. 즉 공유기나 허브등을 이용해서 내부적 네트워크를 만들고 사용하기 때문이다. 내부 네트워크에 물려있는 PC간에는 웹서버나 FTP등 인터넷 서비스를 할수있으나 외부에서 접속할수는 없다.

그렇다고 꼭 안되는것은 아니다...

되게 하는것이 또 리눅스이다..

실제 많은 사설 네트워크들이 하나의 공인된 인터넷IP에 물려서 여러대에서 인터넷을 공유한다..

이 공유기라는것이 엄밀히 따지자면, 작은 리눅스박스이다..

리눅스안에서는 강력한 IP공유 기능등이 있는데, 매스컬레이딩이라는 기법이다.

이 기법을 응용해서 작은 박스로 만든것이 공유기이다..

물론 이 기능에는 사설IP에 접속된 PC를 외부에서 접속하게 하는 기능이 있는데..

이 기능이 바로 포트포워딩 기능이다..

공유기안에는 인터넷을 서비스하는 내부 네트워크에 외부 접속신호로 부터 포트를 돌려주는 기능이 있는데 <간단히 말하면 외부에서 몇번 포트 응답하라고 요청하면 공유기는 해석해서 몇번째 컴터가 나대신 그 포트에 응답하라 이런기능이다.> 이것이 포트포워딩이라는것이다.

맨 위 윈도우즈의 예제 그림에서 보면 게이트웨이라는것이 있다. 이것은 내 PC가 외부로 나가는 관문IP이다. 즉 지금의 내컴은 뒷자리 36.130 IP를 가진 기계를 통해서 외부네트워크에 접속한다는것이다.

그럼 내부네트워크도 마찬가지이다..

보통 대개 하나의 공유기만을 쓰는 곳은 공유기의 IP가 gateway기계가 된다..

이 gateway기계를 좀 더 유식한 넘들의 말을 빌리면 라우터라고 하는것이 되는것이다..

어쨋든.. 우리의 공유기 IP는 gateway ip를 가지므로 공유기에서 포트포워딩 설정을 해주기 위해서 공유기에 접속하자.. 걍 익스플러러에서 공유기 IP를 치면 접속된다.

처음으로 IP에 관해 접하시는분들은 매우 어려울듯 싶으나, 아주 간단하다..

자신의 PC IP를 알고 공유기 IP로 인터넷접속해서 설정만 해주면 된다.. 특히 포트포워딩은 웹서버 80포트 ssh서버 22 ftp서버 21포트를 내부IP인 내 PC IP로 포트만 돌려주면 된다는 야그다..그럼 외부에서 위의 밑줄친 외부IP주소로 웹,ftp,ssh등으로 접속하면  공유기는  내부의 IP 192.168.0.201로 접속시켜 준다는 야그다.(포트포워딩 완료 .. 더이상 설명없음)

2. 포트포워딩도 완료했다. 사실 포트포워딩같은건 아주 기본적인거라 안하고 싶었지만, 웹서버를 만들고자 하는 분들 중 이런것을 모르는분이 있을거 같아 한번 다뤄보았다.

포트포워딩이 완료되었으면 자신의 사무실이나 자신의 네트워크의 구성도를 혼미하게 하나 그려보고 설계해볼수 있을것이다....

그럼 다음에는 vmware로 첫번째 리눅스인 fc9을 설치해본다. 또한 이번 포스팅에는 ubuntu도 같이 진행해보자..

2009. 4. 24. 18:19

PC에서 구성하는 사무실 환경(前), fedora core와 putty,vmware

블로만큼 재밌는 리눅스에 대해 이제 연재포스팅에 들어간다.

누가 보든 말든 , 하여간 시작한다.

1. GNU 그리고 리눅스

거창하게 GNU까지 거론할 생각은 없다. 자유롭게 쓰고 자유롭게 개발하고 자유롭게 돈벌라는 뜻이다.

2. 왜? 리눅스를 쓰는가?

내 생각으로는 리눅스가 윈도우즈를 앞지를 가능성은 매우 낮아보인다. 윈도우즈는 클라이언트용 OS로 최고의 구성을 가지고 있다. 맥만이 가질수 있었던 다양한 비주얼한 소프트웨어도 윈도우즈군으로 합류했으며, 유닉스가 가지는 서버용 어플리케이션까지 흡수했다.

그런데 왜 윈도우즈가 아닌 맥을 사용하고 유닉스의 적자라는 리눅스를 사용하는까?

이 포스팅연재가 끝날즈음이면 그 이유를 찾을수 있겠지...

3.리눅스의 종류

리눅스는 여러종류가 있다. 그 수도 몇백가지가 된다.

대충 3가지 종류로 압축하면...

redhat 계열 - 아무래도 가장 많이 사용하는 리눅스 배포판이다. 초창기 slackware 시리즈의 발전판으로 보면 되겠다. 아무래도 alzza,슬랙웨어등을 쓴 우리나라 유져들의 눈에는 redhat계열이 눈에 딱 들어온다. redhat계열의 리눅스로는 fedora와 enterprise등이 대표적이다. 두 배포판의 차이는 전자는 공짜인반면 후자는 돈주고 산다는것.. 전자는 알아서 해야하는것이고 후자는 서비스를 받을수 있다는것.. 전자는 불안정해도 알아서 쓰는것이고 후자는 안정된 서포트를 해준다는 차이이다.

<현재 fedora은 core 10이 최근에 배포되었다. 그림은 fefora core 9 i386 Xwindows의 하나인 Gnome로그인 상태 - 이 xwindow에서 작업할 일은 그다지 많지 않다. wget으로 다운받는것이 구찮아서 firefox등으로 다운정도로만 쓰고 있다..ㅋㅋ - >

데미안계열 - 프랑스등 유럽쪽에서 시작했다고 한다. 그래서 미국의 redhat보다는 좀더 인터페이스 면에서 편하고, 사용자편의를 많이 봐줬다고 한다. 설치도 3기가 넘는 페도라에 비해 600MB 한장의 시디에 다 들어있다. <한번정도 설치했으나 redhat계열만 써본 나인지라 더 어려워서 바로 지워버렸다는...ㅋㅋ >

-----------------------------------------------------------------------------------------

자자.. 이제 서론을 마쳤으니 본론으로 들어가자..

난 총 3대의 리눅스 머신과 1대의 윈도우즈 클라이언트 머신 1대의 OS9의 맥머신을 가지고 이 포스팅을 진행할것이다. - 포스팅을 쓰기 위해서 구성한것은 아니다.

1. 리눅스 머신

메인 - Fedora Core 6 x86 32bit

펜티엄4 3.0에 2기가 메모리 500기가 하드로 온리 리눅스 머신이다. 실제 업무와 실무에 적용되는 리눅스 머신이다. 현재 가동중이며, 약 5개의 프로젝트가 이 머신이 수행하고 있다. 비용 - 20만원안짝으로 만든 아주 현실적인 서버이다. 파티션은 /home에 100기가 .. 업무용 웹하드에 300기가.. 시스템에 100기가 디비에 50기가 오라클에 50기가를 할당중이다.

서브 - Fedora Core 4 x86 32bit

사무실 창고에서 나뒹구는 컴터를 가지고 친척회사에 만들어주었다. 그 회사에는 그 컴터가지고 굴직굴직한 프로젝트를 멋지게도 소화해냈다. 4,5만원을 투자해서 효과는 거의 1000만원급...

서버를 아예 넘겼지만 root및 관리는 아직도 나의 손을 못벗어났다. 그러므로 sub컴터로 활용할것이다.

서드 - 테스트용 리눅스머신 Fedora Core 9 x86 32bit

윈도우즈 머신에서 VMWARE를 사용한다. 여러가지를 이 서버에서 테스트 할것이다.

나의 포스팅에서 가장 많이 볼수 있는 서버 되겠다.

이 서버는 나중에 ftp나 웹하드를 통해서 vmware를 통채로 공유할 생각이다.

그리고 모든 사항은 포스팅에 기록되고 마지막 메인머신은 백업과 함께 이 버젼으로 업글될것이다.

2. 윈도우즈 클라이언트

그냥 우리가 쓰는 일반적인 윈도우즈이다. 윈도우즈 XP SP2 .. 물론 이 클라이언트에는 서드머신이 vmware로 깔려있다..

3, 맥머신 OS9.2.2

OS10은 더이상 맥이 아니다. 그것은 맥리눅스다... 실제 맞다.

맥9이전의 화일들을 OS10에서는 리딩조차 할수 없다...서로 호환이 되지 않는다...

맥은 과감히 이전 시스템을 버리고 맥을 리눅스화했다.. 그러므로 , 나는 OS9를 가지고 네트워크를 구성해본다...

=========================================================================================

준비물 ..

이 글을 보는 유져분들이 있다면..나처럼 여러대의 컴터로 할 필요가 없다.

그냥 윈도우즈 한대의 컴터만 있으면 족하다.. 대신 리눅스의 배포판에 따라 버젼에 따라 세팅이 틀리므로 여러대의 버젼별로 움직여보는것뿐이다. 맥머신은 리눅스의 삼바머신이 잘붙는가만 확인해볼 요량이다. 물론 나중에 Windows 2003과 맥과의 화일공유도 포스팅할것이다..

한글 putty(첨부화일)

실제 가장 많이 쓰는 프로그램이다. 우리는 이 프로그램을 가지고 리눅스머신을 왔다갔다 할것이므로 리눅스 머신근처에는 별로 가지도 않을것이다. 더욱이 xwindows는 별로 나오지도 않을것이므로 한글 putty랑 친해지자.

한글 putty

vmware for windows XP

자료를 공유하는 사이트들에서 쉽게 크랙판까지 구할수 있다. 이 프로그램은 나의 윈도우안에 다른 OS를 설치할수 있다. 그것이 윈도우즈든 리눅스든간에 인텔칩과 호환되는 모든 OS를 윈도우즈안에서 설치할수 있다. 즉 윈도우즈안에 컴퓨터가 여러대 생기는것이다. fc9를 이 소프트웨워를 통해서 설치할것이다

VMware

윈도우즈 XP

누구든 있죠

Fedora core 9 x86 32bit

네이버자료실에서 총 6장으로 무료 배포중...

이제 Linux 웹서버 완전정복 1. PC에서 구성하는 사무실 환경(後)에서는 vmware를 사용해서 fedora를 설치하고 웹서버를 하나 하나씩 만들어가자..

2009. 4. 24. 18:10

linux quota주기

웹호스팅의 최후의 작업은 사용자마다 쿼터를 주는일이다..

가령 A라는 사람과 b라는 사람 둘에게 호스팅을 서브스 하는데 하드 용량이 40기가 하자.

A는 홈페이지만을 올리지만 B는 각종영화등도 올려서 시스템이 꽉차버리면 A라는 사람이 결국엔 손해를 보게 된다..

이런 폐단을 없애기위해 각각 등급을 매겨서 quota를 주면 사용자마다 한정된 용량을 줄수있다.

우선 리눅스를 설치할때 quota를 주기위해서는 반드시 /home디렉토리가 장치로 따로 나와있어야 한다. 만약 하드디스크 하나밖에 없는 시스템에 파티션을 나누지 않고 /와 swap화일만 만들었다면, quota를 주기 상당히 난감할것이다...

200G의 하드라면 시스템부분엔 20기가 정도로 dev/hda1으로 잡고..

/usr/local/mysql/data(mysql의 데이타가 실제 들어가는 화일..) 를 dev/hda2

/home을 /dev/hda3로 잡아서 파티션을 나누면, 나중에 백업이나 하드의 확장이 용이해지며 quota문제를 해결할수 있다...

실제 아파치의 htdocs는 사용자계정으로 대치하고 dns서버로 변경하면 documentRoot를 변경하면 되니 시스템파티션에 그다지 큰 화일이 들어올일이 별로 없다..

이점을 생각해서 애시당초 하드가 하나라면 파티션을 잘게 자르자...

상용으로 서비스 하기위해서 /home디렉토리에 LVM등으로 붙일수 있도록 신경을 쓰자....

vi /etc/fstab을 열어...

자기가 쿼터를 붙일 디렉토리

만약

dev/hda3                 /home          ext3      defaults            1,2

이부분을

dev/hda3                 /home          ext3      defaults,usrquota,grpquota            1,2

로 바꾸어준다..

저장후 다시 리부팅.....

리마운트해도 된다고 하나, 테스트결과 되질 않는다.. 리부팅후 정상 가동됐다...

나머지 부분들은 네이버에서 quota로 검색하면 지긋지긋하게 나온다...

그럼 다덜 성공하시길...

2009. 4. 24. 18:06

fedora6에서 name서버 설정하기

redhat버젼을 쓰시던분들이 fedora로 업뎃후 이상하게 느낀것이 dns서버의 설정일것입니다.

redhat버젼에서는 named.conf와 /var/named 디렉토리에서 zone화일만 설정해주면 잘되던 dns세팅이 fc4부터 bind개념이 도입된 후 보안을 중요시해서 조금 바뀌었지요..

사실 중국인들의 네임서버에 칩입해서 숙주를 만들고 사이트를 공격하니...

보안이 강화된것이죠...

fc4와 fc6으로 dns서버를 구성해보았는데..

fc4는 named.conf가 /etc/ 디렉토리에 존재하고..

fc6이후부터는 named.conf가 없어졌습니다..

fc6에서의 name서버 설정을 해보겠습니다.

[root@localhost] # yum -y update caching-named

-> name 서버를 업뎃합니다. 버젼업됩니다..

[root@localhost] # yum -y install system-config-bind-4.0.1-2.fc6.noarch

-> system-config-bind를 설치합니다.

[root@localhost] # system-config-bind

-> 한번실행후 이것저것 흘터봅니다.

[root@localhost] # ls /var/named/chroot/etc/

named.conf가 보입니다.

[root@localhost] # vi /var/named/chroot/etc/named.conf

기존처럼 named.conf를 설정합니다.

[root@localhost] # vi /var/named/chroot/var/named/xxx.com.zone

zone화일들은 /var/named/chroot/var/named/ 에 존재하게 됩니다..

[root@localhost] # service named restart

네임서버를 재가동합니다.

fc4는 zone화일양식이 약간 틀립니다.

fc4의 zone양식을 첨부합니다.

fc8버젼부터는 어떤지 아직 모르겠습니다. 다만 비슷하지 않을까 합니다.

fc4는 최근 yum이 지원하지 않는군요...

업뎃만이 살길입니다...

2009. 4. 24. 18:01

Mysql,제로보드4,euckr이 안될때

어느날 리눅스를 설치하고 아파치를 설치하고 php설치후에 mysql를 설치했다..

그리고 그 서버에 대해 잊고 있었건만... 어느날 웹서버를 사용해야 하는 상황이 발생했다..

기존의 홈페이지들은 모두 euckr로 작성되었으며, 앞으로도 euckr로 작성될듯 하다..

헌데 mysql은 모두 utf8로 세팅을 해놨으니..쩝...

my.cnf를 통해서 euckr를 사용하려 하였으나 계속되는 데몬의 에러...

collate문을 이용해서 euckr용 디비를 생성했으나 역시.. 제대로 제로보드속에서 한글을 구현할수 없었다..

결국엔 mysql의 재컴파일을 통해서.. euckr용 mysql을 세팅했다..

덕분에 mysql의 업그레이드도 할수 있었다..

>mysqladmin -uroot -ppassword shutdown

기존 디비의 데몬을 정지한다.

rm -rf /usr/local/mysql

디비를 지우고...

새로운 버젼을 받아서 euckr용으로 컴파일한다.

컴파일옵션...은

./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --with-charset=euckr --with-mysql-user=mysql --sysconfdir=/etc --enable-thread-safe-client

컴파일후 보통의 mysql설치하는대로 설치를 하였다..

mysql> show variables like '%char%';
+--------------------------+-----------------------------------------+
| Variable_name            | Value                                   |
+--------------------------+-----------------------------------------+
| character_set_client     | euckr                                   |
| character_set_connection | euckr                                   |
| character_set_database   | euckr                                   |
| character_set_filesystem | binary                                  |
| character_set_results    | euckr                                   |
| character_set_server     | euckr                                   |
| character_set_system     | utf8                                    |
| character_sets_dir       | /usr/local/mysql/share/mysql/charsets/ |
+--------------------------+-----------------------------------------+
8 rows in set (0.00 sec)

그리고 제로보드의 생성...

하지만 난간에 붙잡히기 시작했다..

우선 admin계정 생성후 , admin으로 로그인이 안되는 문제와...

euckr로 mysql이 세팅이 됐음에도 불구하고..

한글입력 디비에는 알수없는 문자(물음표)로 기록된다는 것이었다.

아 왕짜증...ㅋ

걍 lampp로 돌릴걸..ㅋ

이 문제는 서버의 sql데몬이 문제라기 보다..

php와 mysql버젼이

제로보드4가 개발될 당시보다 훨 진화했다는것이 문제였다..

전자는 php의 세션선언이 바뀌었고

후자는 mysql에 접속할시에 우리는 euckr로 접속할거라는 쿼리선언을 하여야지만 제대로 된 게시판을 만들수 있었다...

login_check.php에서

  1. session_register("zb_logged_no");
  2. session_register("zb_logged_time");
  3. session_register("zb_logged_ip");
  4. session_register("zb_last_connect_check");

이 부분을

  1. $_SESSION["zb_logged_no"] = $zb_logged_no;
  2. $_SESSION["zb_logged_time"] = $zb_logged_time;
  3. $_SESSION["zb_logged_ip"] = $zb_logged_ip;
  4. $_SESSION["zb_last_connect_check"]= $zb_last_connect_check;

이런식으로 바꾸어줍니다..

그리고 lib.php를 열어서  member_info() 함수를 보면

$HTTP_SESSION_VARS
$HTTP_SESSION_VARS["zb_logged_no"]

이 두 선언을...

$_SESSION
$_SESSION["zb_logged_no"] 요걸루 대치시킨다.

그리고 php.ini를 열어서 register_global=on 으로 바꾸어준다.

이 부분을 손보고 나면..

php버젼업에 따른 로그인이 안되는 문제는 해결된다..

이번엔 euckr문자가 ????? (물음표)로 표시되는것을 수정해야...

my.cnf에서 [mysqld] [client] [mysqldump] 부분에

default-character-set=euckr

를 추가시키고..

그리고 나서 /usr/local/mysql/bin/mysqld_safe --user=mysql &

데몬을 다시 잘가동시켜주시고..

제로보드의 lib.php의 dbconn 함수를 찾는다.

@mysql_select_db($f[4], $connect) or Error("DB Select 에러가 발생했습니다","");
@mysql_query("set names euckr");

  return $connect;

빨간 부분을 리턴문이 실행시키기전으로 삽입시킨다...

그리고 나서 이제 제로보드를 사용하면.. 입력안되던 한글이 자연스럽게 입출력된다..ㅋ

??? 물음표로 표시되던 한글이 3번 게시물부터 정상입출력됨을 알수있다..

컴터를 양넘들이 만들어서 계속 혼돈을 가져오는 표준한글코드의 문제점이라 할수있당..