728x90
300x250

[JSP] 3. Hello World - 실제 서버에 올리기(index.jsp) // Hello World-Post to Real Server (index.jsp)


실제 서버에 처음으로 index.jsp를 작성하여 올려보겠다.

리눅스 배포판은 우분투 18.04에서 진행하였다.

(Hello World-Post to Real Server (index.jsp)
Linux distributions was performed in Ubuntu 18.04.)



1. index.jsp 작성하기(Write index.jsp)


아래의 명령어처럼 입력한다.(Enter the following command.)



그림 1) index.jsp 생성하기
Fig 1) Create index.jsp


$ sudo nano /var/lib/tomcat9/webapps/ROOT/index.jsp


아래처럼 내용을 입력한다.



그림 2) index.jsp 내용 작성하기
Fig 2) Write the contents of index.jsp



2. 홈페이지 시연하기(Demonstrate homepage)


시연은 웹 사이트에 접속하면 간단하게 할 수 있다. (eg: 127.0.0.1:8080/index.jsp)
Demonstrations can be made simple by accessing the website (eg: 127.0.0.1:8080/index.jsp).


그림 3) 웹 페이지 시연
Fig 3) Web Pages demonstration

반응형
728x90
300x250
[Ubuntu 12.10] Samba(삼바) 서버 구축

 

이 글은 우분투 12.10에서 Samba(삼바) 서버를 구축하는 방법에 대해서 소개하고자 한다.

 


1. 설치하기


# sudo apt-get install samba

 


2. 삼바 설정하기


1. 기본 설정

# sudo vi /etc/samba/smb.conf

 

[global]

workgroup = 윈도우 작업그룹명

 

server string = 윈도우에 보여지는 삼바 서버명

 

#----------------Standalone Server Options

 

security = user (주석 풀면 삼바 계정/패스워드가 따로 있어야 합니다.)

 

[test]          <- 폴더명

comment = 설명

path = 공유폴더 경로

wriable = yes

create mask = 0644

directory mask = 0755

browersable = yes

 

2. 계정 설정


#sudo smbpasswd -a 계정명

비밀번호

비밀번호 확인

 

실제 파일 경로 : /etc/samba/smbpasswd

 

3. 재시작


#sudo /etc/init.d/smbd restart

반응형
728x90
300x250

[Linux] Centos 5.3(32bit), Ubuntu 9.04(64bit) - Apache 2.x + PHP 5.3 + MySQL, 라이브러리 설치하기

태스트 환경1 :

운영체제 : Centos 5.3(32bit)
CPU : AMD Athlon 64 x2 3600
RAM : 2GB

태스트 환경2 :
운영체제 : Ubuntu 9.04(64bit)
CPU : Atom 230 x2
RAM : 1GB


필수 사용 라이브러리 :


Libmcrypt(암호화 라이브러리)


다운로드를 받을만한 위치로 이동합니다.


다운로드 받기 :
http://www.mysql.com (MYSQL 홈페이지)
ftp://ftp.neowiz.com/pub/apache/httpd/httpd-2.2.11.tar.gz
ftp://ftp.neowiz.com/pub/languages/php/

미러링 서버 제공 : 네오위즈

다운로드 받기


wget 주소 (MySQL 5.x 버전) 다운로드
tar xvfz mysql-5.1.version.tar.gz                  (압축 풀기)

wget ftp://ftp.neowiz.com/pub/apache/httpd/httpd-2.2.11.tar.gz      (Apache 2.2.11) 다운로드
tar xvzf httpd-2.2.11.tar.gz                       (압축 풀기)

wget ftp://ftp.neowiz.com/pub/languages/php/     (Php-5.2.10) 다운로드
tar xvzf php-5.2.10.tar.gz                        (압축 풀기)



 


 


 


 


 


 


 
(기타 라이브러리 재 연동)
/usr/local/php/bin/pear upgrade-all
/usr/local/php/bin/pear install DB File Mail Mail_Mime
/usr/local/php/bin/pear install MDB2 MDB2_Driver_mysql MDB2_Driver_mysqli
/usr/local/php/bin/pear install HTTP_Request XML_RPC


최종 수정 : 2009년 9월 22일

반응형
728x90
300x250

[Linux] Apache 2.x에서 Host를 Redirect하여 연결하기

호스트를 원하는 방향으로 다시 향할 수 있도록 하는 방법에 대해서 몇가지 소개하고자 합니다.

1. 첫페이지(index)를 통해 방향을 재탐색하는 방법입니다.

<META HTTP-EQUIV="Refresh" Content="0; URL=http://www.company.com/dir1/">

<html>
<head>
<META HTTP-EQUIV="Refresh" Content="3; URL=http://www.company.com/dir1/">
</head>
<body>
This page will forward to http://www.company.com/dir1/ in three seconds.
<p>
Please update your links.
</body>
</html>


2. cgi를 이용한 재 탐색 방법입니다. (mod-cgi)

설정 파일 명 : httpd.conf

ScriptAlias / /var/www/cgi-bin/redirect-script/

설정 파일 명 : /var/www/cgi-bin/redirect-script
#!/usr/bin/perl

print "Status: 301 Moved\r\n" .
      "Location: http://www.new-domain.com/\r\n" .
      "\r\n";

또는

#!/usr/bin/perl -w
use strict;
use CGI qw/:standard/;
print redirect('http://www.new-domain.com');

3. PHP를 이용한 방법 입니다.

<?php
header("Location: http://www.new-domain.com/");
?>

4. 자바스크립트를 이용한 방법입니다.

<html>
<head>
<script language="Javascript" type="text/javascript">
<!-- Hide script
//<![CDATA[
window.location.href="http://www.new-domain.com/"    
//]]> End script hiding -->
</script>
</head>
</html>

5. Apache 서버 모듈을 이용하는 방법입니다.(mod_rewrite)
RewriteEngine On
RewriteRule /.* http://www.new-domain.com/ [R]

6. Apache 서버 모듈을 이용하는 방법입니다.(mod_alias)

설정 파일명 : httpd.conf
1. Redirect Domain:
Redirect / http://www.new-domain.com/
또는
Redirect permanent / http://www.new-domain.com/

2. Redirect Page:
Redirect /web-page.html http://www.new-domain.com/destination-web-page.html

참고 : 재탐색(Redirect)을 지시하기 전에 앞서 Alias(별명)과 ScriptAlias를 지시해야 합니다.
다른 "재탐색(Redirect) 옵션들 포함 : 
(임시 오류 번호 : 302는 기본값 - 임시적으로 재탐색되는 상태)
'오류 번호 303'이라고도 불리고 See other라는 메시지로 보여지는 것은 다른 것과 대체하던지, '오류 번호 404' 를 영구히 제거해야만 합니다.

예제) vhost를 이용한 redirect(재탐색) 기법
<VirtualHost XXX.XXX.XXX.XXX>
ServerName directtolinux.com
ServerAlias www.directtolinux.com
ServerAlias direct-to-linux.com
ServerAlias www.direct-to-linux.com
ServerAlias digitalpenguins.com
ServerAlias www.digitalpenguins.com
Redirect permanent / http://www.yolinux.com/
</VirtualHost>

7. Apache 서버에서 .htaccess 파일을 이용하여 재탐색하기.

vi나 vim에디터를 이용하여 사용자 계정 public_html(사용자 홈페이지 디렉토리 - 설정하신 폴더에 넣어주세요)에 .htaccess를 수정하거나 만듭니다.

RewriteEngine on
RewriteCond %{HTTP_HOST} ^yolinux.com
RewriteRule ^(.*)$ http://www.yolinux.com/$1 [R=permanent,L]

SP. Apache 서버에서 httpd.conf와 .htaccess 파일을 이용한 재탐색 기법.

설정 파일명(위치) : /etc/httpd/conf/httpd.conf
(apache서버를 설치한 폴더 위치를 찾아서 하시기 바랍니다.)

아래의 예제는 현재 .htaccess를 사용할 수 없는 상태를 뜻하고 있습니다.
<Directory />
         AllowOverride None
</Directory>

AllowOverride All로 바꾸시면 .htaccess를 사용하실 수 있습니다.

설정 파일명(위치) : .htaccess(/home/domain/public_html/.htaccess)에 위치합니다.
/home/domain/public_html/.htaccess 에 생성하신 도메인이 아래와 같이 보이는 것과 같이 향하게 됩니다.

특정 도메인으로 이동

Redirect 301 /  http://www.new-domain.com/

특정 파일로 이동

Redirect 301 /old-page-1.html  http://www.newdomain.com/new-page-1.html
Redirect 301 /old-page-2.html  http://www.newdomain.com/new-page-2.html

반응형
728x90
300x250

[Linux, OpenSSL] 2. OpenSSL 설치와 Apache에 적용

지난 1번 글에서 언급하지 않았던 OpenSSL 설치에 대한 내용을 올리게 되었습니다.
사실 OpenSSL 설치는 어렵지 않습니다. 잘 따라 하시기 바랍니다.
(강좌에 오류가 있다고 생각하시다면, 조언을 댓글로 남겨주시면 참조하여 수정하도록 하겠습니다.) 

태스트 환경)
운영체제 : Centos 5.3

설치방법에는 크게,
yum, rpm, 소스컴파일 3가지가 있습니다.

소스 파일 다운로드
http://www.openssl.org/source/openssl-0.9.8k.tar.gz

openssl-0.9.8k.tar.tar

1. OpenSSL 설치하기


2. Apache와 연동하기.


3. 참고자료(Reference)
1. OpenSSL Official Site, http://www.openssl.org, Accessed by 2009-07-28
2. apache2.2.x + tomcat6.0 + mod_jk1.2.28 + openssl0.9.8k (ssl인증 설치, https), http://tylee82.tistory.com/149 , Accessed by 2009-07-28

 

 

반응형
728x90
300x250

[Linux] GD 라이브러리 설치

(사실 제가 쓰려고 메모해두는 것이기도 합니다)
GD라이브러리 설치 순서는 크게 아래와 같습니다.

1. zlib 설치
2. png 설치
3. jpeg 설치
4. freetype 설치
5. gd 설치

아래에 각각의 라이브러리에 대한 다운로드 자료가 있습니다.
각각 서버에 설치하도록 합니다.


1. 참고 링크

1. zlib 다운로드 : http://www.zlib.net/
(zlib-1.2.3.tar.gz) = 예제에서 사용하고 있는 버전입니다.

 

 

2. png 다운로드 : http://www.libpng.org/pub/png/libpng.html
(libpng-1.2.34.tar.gz) = 예제에서 사용하고 있는 버전입니다.

3. JPEG 다운로드 : http://quox.org/install/graphics/jpeg-6b.html
(jpegsrc.v6b.tar.gz) = 예제에서 사용하고 있는 버전입니다.

4. freetype 다운로드 : http://freetype.sourceforge.net/index2.html
(freetype-2.3.8.tar.gz) = 예제에서 사용하고 있는 버전입니다.

5. GD 다운로드 (gd-2.0) : http://www.libgd.org/Main_Page

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

파일 압축 해제

[root@server3 GD-library]# pwd
/root/Desktop/GD-library

- 압축 해제 -
[root@server3 GD-library]# tar xvfz freetype-2.3.8.tar.gz
[root@server3 GD-library]# tar xvfz gd-2.0.36RC1.tar.gz
[root@server3 GD-library]# tar xvfz jpegsrc.v6b.tar.gz
[root@server3 GD-library]# tar xvfz libpng-1.2.34.tar.gz
[root@server3 GD-library]# tar xvfz zlib-1.2.3.tar.gz

- 폴더 이동 : 꼭 이동할 필요는 없지만 소스 설치시 구분하기 쉽게 하기 위해 이동해 준다. -
[root@server3 GD-library]# mv freetype-2.3.8 /usr/local/src
[root@server3 GD-library]# mv gd-2.0.36RC1 /usr/local/src
[root@server3 GD-library]# mv jpeg-6b/ /usr/local/src
[root@server3 GD-library]# mv libpng-1.2.34 /usr/local/src
[root@server3 GD-library]# mv zlib-1.2.3 /usr/local/src

- 설치 폴더 생성 : 꼭 만들어 줄 필요는 없지만 구분하기 쉽게 하기 위해 만들어준다. -
[root@server3 GD-library]# cd /usr/local
[root@server3 local]# pwd
/usr/local
[root@server3 local]# mkdir gd-lib

1. zlib 설치

[root@server3 src]# cd zlib-1.2.3/
[root@server3 zlib-1.2.3]# ./configure --help
usage:
  configure [--shared] [--prefix=PREFIX]  [--exec_prefix=EXPREFIX]
     [--libdir=LIBDIR] [--includedir=INCLUDEDIR]

[root@server3 zlib-1.2.3]# ./configure --shared --prefix=/usr/local/gd-lib/zlib-1.2.3
Checking for gcc...
Checking for shared library support...
Building shared library libz.so.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@server3 zlib-1.2.3]# make

- 중략

ln -s libz.so.1.2.3 libz.so
ln -s libz.so.1.2.3 libz.so.1
gcc -fPIC -O3 -DUSE_MMAP -o example example.o -L. libz.so.1.2.3
gcc -fPIC -O3 -DUSE_MMAP   -c -o minigzip.o minigzip.c
gcc -fPIC -O3 -DUSE_MMAP -o minigzip minigzip.o -L. libz.so.1.2.3

[root@server3 zlib-1.2.3]# make install

- 중략

cp zlib.3 /usr/local/gd-lib/zlib-1.2.3/share/man/man3
chmod 644 /usr/local/gd-lib/zlib-1.2.3/share/man/man3/zlib.3
[root@server3 zlib-1.2.3]#

2. png 설치

[root@server3 src]# cd libpng-1.2.34/
[root@server3 libpng-1.2.34]# ./configure --help
`configure' configures libpng 1.2.34 to adapt to many kinds of systems.

- 중략

Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.

Report bugs to <png-mng-implement@lists.sourceforge.net>.

[root@server3 libpng-1.2.34]# ./configure --prefix=/usr/local/gd-lib/libpng-1.2.34

- 중략

checking if assembler code in pnggccrd.c can be compiled without PNG_NO_MMX_CODE... yes
checking if libraries can be versioned... yes
checking for symbol prefix...
configure: pkgconfig directory is ${libdir}/pkgconfig
configure: creating ./config.status
config.status: creating Makefile
config.status: creating libpng.pc
config.status: creating libpng-config
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands

[root@server3 libpng-1.2.34]# make

- 중략

cp libpng-config libpng12-config
cp libpng.pc libpng12.pc
make[1]: Leaving directory `/usr/local/src/libpng-1.2.34'

[root@server3 libpng-1.2.34]# make install

- 중략

make  install-data-hook
make[2]: Entering directory `/usr/local/src/libpng-1.2.34'
cd /usr/local/gd-lib/libpng-1.2.34/include; rm -f png.h pngconf.h
cd /usr/local/gd-lib/libpng-1.2.34/include; ln -s libpng12/png.h png.h
cd /usr/local/gd-lib/libpng-1.2.34/include; ln -s libpng12/pngconf.h pngconf.h
cd /usr/local/gd-lib/libpng-1.2.34/lib/pkgconfig; rm -f libpng.pc
cd /usr/local/gd-lib/libpng-1.2.34/lib/pkgconfig; ln -s libpng12.pc libpng.pc
make[2]: Leaving directory `/usr/local/src/libpng-1.2.34'
make[1]: Leaving directory `/usr/local/src/libpng-1.2.34'
[root@server3 libpng-1.2.34]#

3. jpeg 설치 - http://quox.org/install/graphics/jpeg-6b.html 참고  

[root@server3 src]# cd jpeg-6b/
/usr/local/src/jpeg-6b
[root@server3 jpeg-6b]# ./configure --help

- 중략

Features and packages:
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
  --x-includes=DIR        X include files are in DIR
  --x-libraries=DIR       X library files are in DIR
--enable and --with options recognized:
  --enable-shared         build shared library using GNU libtool
  --enable-static         build static library using GNU libtool
  --enable-maxmem[=N]     enable use of temp files, set max mem usage to N MB

[root@server3 jpeg-6b]# ./configure --prefix=/usr/local/gd-lib/jpeg-6b/ --enable-shared --enable-static

- 중략

checking for objdir... .libs
creating libtool
checking libjpeg version number... 62
creating ./config.status
creating Makefile
creating jconfig.h
jconfig.h is unchanged

[root@server3 jpeg-6b]# make

- 중략

mv -f rdjpgcom.o rdjpgcom.lo
gcc -O2 -I. -c ./rdjpgcom.c >/dev/null 2>&1
./libtool --mode=link gcc  -o rdjpgcom rdjpgcom.lo
gcc -o rdjpgcom rdjpgcom.o
./libtool --mode=compile gcc -O2  -I. -c ./wrjpgcom.c
gcc -O2 -I. -c -fPIC -DPIC ./wrjpgcom.c
mv -f wrjpgcom.o wrjpgcom.lo
gcc -O2 -I. -c ./wrjpgcom.c >/dev/null 2>&1
./libtool --mode=link gcc  -o wrjpgcom wrjpgcom.lo
gcc -o wrjpgcom wrjpgcom.o

[root@server3 jpeg-6b]# strip rdjpgcom wrjpgcom .libs/{cjpeg,djpeg,jpegtran}

-------------------------------------------------------------------
- make 시 에러가 발생하면 아래와 같은 폴더를 생성해 준 다음 make clean 명령어를 해준 후 재 컴파일 해준다.
[root@server3 jpeg-6b]# pwd
/usr/local/gd-lib/jpeg-6b
[root@server3 jpeg-6b]# mkdir include
[root@server3 jpeg-6b]# mkdir bin
[root@server3 jpeg-6b]# mkdir lib
[root@server3 jpeg-6b]# mkdir man
[root@server3 jpeg-6b]# mkdir ./man/man1
-------------------------------------------------------------------

[root@server3 jpeg-6b]# pwd
/usr/local/src/jpeg-6b
[root@server3 jpeg-6b]# make install

- 중략

./libtool --mode=install /usr/bin/install -c cjpeg /usr/local/gd-lib/jpeg-6b//bin/cjpeg
/usr/bin/install -c .libs/cjpeg /usr/local/gd-lib/jpeg-6b//bin/cjpeg
./libtool --mode=install /usr/bin/install -c djpeg /usr/local/gd-lib/jpeg-6b//bin/djpeg
/usr/bin/install -c .libs/djpeg /usr/local/gd-lib/jpeg-6b//bin/djpeg
./libtool --mode=install /usr/bin/install -c jpegtran /usr/local/gd-lib/jpeg-6b//bin/jpegtran
/usr/bin/install -c .libs/jpegtran /usr/local/gd-lib/jpeg-6b//bin/jpegtran
./libtool --mode=install /usr/bin/install -c rdjpgcom /usr/local/gd-lib/jpeg-6b//bin/rdjpgcom
/usr/bin/install -c rdjpgcom /usr/local/gd-lib/jpeg-6b//bin/rdjpgcom
./libtool --mode=install /usr/bin/install -c wrjpgcom /usr/local/gd-lib/jpeg-6b//bin/wrjpgcom
/usr/bin/install -c wrjpgcom /usr/local/gd-lib/jpeg-6b//bin/wrjpgcom
/usr/bin/install -c -m 644 ./cjpeg.1 /usr/local/gd-lib/jpeg-6b//man/man1/cjpeg.1
/usr/bin/install -c -m 644 ./djpeg.1 /usr/local/gd-lib/jpeg-6b//man/man1/djpeg.1
/usr/bin/install -c -m 644 ./jpegtran.1 /usr/local/gd-lib/jpeg-6b//man/man1/jpegtran.1
/usr/bin/install -c -m 644 ./rdjpgcom.1 /usr/local/gd-lib/jpeg-6b//man/man1/rdjpgcom.1
/usr/bin/install -c -m 644 ./wrjpgcom.1 /usr/local/gd-lib/jpeg-6b//man/man1/wrjpgcom.1

[root@server3 jpeg-6b]# cp jversion.h /usr/local/gd-lib/jpeg-6b/include/ - 설치폴더의 include 폴더에 파일을 복사해준다.

4. freetype 설치

[root@server3 src]# cd freetype-2.3.8/
[root@server3 freetype-2.3.8]# pwd
/usr/local/src/freetype-2.3.8

[root@server3 freetype-2.3.8]# ./configure --prefix=/usr/local/gd-lib/freetype-2.3.8

FreeType build system -- automatic system detection

- 중략

configure: creating ./config.status
config.status: creating unix-cc.mk
config.status: creating unix-def.mk
config.status: creating freetype-config
config.status: creating freetype2.pc
config.status: creating ftconfig.h
config.status: executing libtool commands
make: `unix'를 위해 할 일이 없습니다

[root@server3 freetype-2.3.8]# make

- 중략

libtool: link: ranlib /usr/local/src/freetype-2.3.8/objs/.libs/libfreetype.a
libtool: link: ( cd "/usr/local/src/freetype-2.3.8/objs/.libs" && rm -f "libfreetype.la" && ln -s "../libfreetype.la" "libfreetype.la" )

[root@server3 freetype-2.3.8]# make install

- 중략

/usr/bin/install -c -m 644 ./builds/unix/ft2unix.h \
          /usr/local/include/ft2build.h
/usr/bin/install -c -m 644 ./builds/unix/ftconfig.h                        \
          /usr/local/include/freetype2/freetype/config/ftconfig.h
/usr/bin/install -c -m 644 /usr/local/src/freetype-2.3.8/objs/ftmodule.h                          \
          /usr/local/include/freetype2/freetype/config/ftmodule.h
/usr/bin/install -c -m 755 ./builds/unix/freetype-config \
          /usr/local/bin/freetype-config
/usr/bin/install -c -m 644 ./builds/unix/freetype2.m4 \
          /usr/local/share/aclocal/freetype2.m4
/usr/bin/install -c -m 644 ./builds/unix/freetype2.pc \
          /usr/local/lib/pkgconfig/freetype2.pc
[root@server3 freetype-2.3.8]#

5. gd 설치

[root@server3 src]# cd gd-2.0.36RC1/
[root@server3 gd-2.0.36RC1]# pwd
/usr/local/src/gd-2.0.36RC1

[root@server3 gd-2.0.36RC1]# ./configure --help
`configure' configures GD 2.0.36 to adapt to many kinds of systems.

- 중략

Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.

Report bugs to <http://bugs.libgd.org>.

[root@server3 gd-2.0.36RC1]# ./configure --prefix=/usr/local/gd-lib/gd-2.0.36RC1 --with-png=/usr/local/gd-lib/libpng-1.2.34 --with-jpeg=/usr/local/gd-lib/jpeg-6b/ --with-freetype=/usr/local/gd-lib/freetype-2.3.8

- 중략

** Configuration summary for gd 2.0.36: - 확인해준다.

   Support for PNG library:          yes
   Support for JPEG library:         yes
   Support for Freetype 2.x library: yes - 무료 폰트 렌더링 라이브러리
   Support for Fontconfig library:   no
   Support for Xpm library:          no - unix의 이미지 포맷 라이브러리
   Support for pthreads:             yes

configure: creating ./config.status
config.status: creating Makefile
config.status: creating config/Makefile
config.status: creating config/gdlib-config
config.status: creating test/Makefile
config.status: creating config.h
config.status: executing depfiles commands

[root@server3 gd-2.0.36RC1]# make

- 중략

make[2]: Leaving directory `/usr/local/src/gd-2.0.36RC1'
make[1]: Leaving directory `/usr/local/src/gd-2.0.36RC1'

[root@server3 gd-2.0.36RC1]# make install

- 중략

make[2]: Leaving directory `/usr/local/src/gd-2.0.36RC1'
make[1]: Leaving directory `/usr/local/src/gd-2.0.36RC1'
[root@server3 gd-2.0.36RC1]#

6. php 재컴파일


[root@server3 src]# cd php-5.2.8
[root@server3 php-5.2.8]# pwd
/usr/local/src/php-5.2.8

[root@server3 php-5.2.8]# make clean - 이전 컴파일 정보 삭제
find . -name \*.gcno -o -name \*.gcda | xargs rm -f
find . -name \*.lo -o -name \*.o | xargs rm -f
find . -name \*.la -o -name \*.a | xargs rm -f
find . -name \*.so | xargs rm -f
find . -name .libs -a -type d|xargs rm -rf
rm -f libphp5.la sapi/cli/php libphp5.la modules/* libs/*

[root@server3 php-5.2.8]# ./configure
--with-apxs2=/usr/local/apache/bin/apxs \
--with-mysql=/usr/local/mysql \
--with-config-file-path=/usr/local/apache/conf \
--with-exec-dir=/usr/local/apache/bin \
--enable-mbstring --with-mcrypt=/usr/local/libmcrypt \
--with-gd=/usr/local/gd-lib/gd-2.0.36RC1 \
--with-jpeg-dir=/usr/local/gd-lib/jpeg-6b \
--with-freetype-dir=/usr/local/gd-lib/freetype-2.3.8 \
--with-png-dir=/usr/local/gd-lib/libpng-1.2.34 \
--with-zlib-dir=/usr/local/gd-lib/zlib-1.2.3 - 녹색 부분만 재컴파일시 추가해준다.

+--------------------------------------------------------------------+
| License:                                                           |
| This software is subject to the PHP License, available in this     |
| distribution in the file LICENSE.  By continuing this installation |
| process, you are bound by the terms of this license agreement.     |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point.                            |
+--------------------------------------------------------------------+

Thank you for using PHP.

[참고사항]

[root@server3 php-5.2.8]# make && make install or make -> make test -> make install 로 하면 좀더 정확하게 확인하며 설치할 수 있습니다.

반응형
728x90
300x250

[Networks] 장애 조치 및 장애 복구

서버 클러스터 보안에 대한 유용한 정보

서버 클러스터가 DoS(Denial-of-Service) 공격, 데이터 변조 및 기타 악의적인 공격의 피해를 입지 않도록 다음 지침을 참고하시기 바랍니다.

최신 소프트웨어 업데이트를 적용합니다.
보안 업데이트와 서비스 팩이 포함된 최신 소프트웨어 업데이트를 적용합니다. Windows Server 2003 서비스 팩 1(SP1)에는 개선된 보안 기능이 다수 포함되어 있습니다. Windows Server 2003 SP1 이상을 실행하는 Windows Server 2003 버전을 사용할 것을 적극 권장합니다.

보안에 관한 최신 정보를 구합니다.
수시로 Microsoft 웹 사이트에서 보안 관련 정보를 검토합니다. 예를 들어 다음 중 하나 이상을 검토합니다.

• Microsoft 웹 사이트(http://go.microsoft.com/fwlink/?LinkID=59992)(영문일 수 있음)에서 서버 보안에 관한 정보
 
• Microsoft 지원 웹 사이트(http://go.microsoft.com/fwlink/?LinkID=59993)(영문일 수 있음)에서 기술 자료 문서 891597, "Windows Server 2003 기반 클러스터 서버에서 보다 제한적인 보안 설정을 적용하는 방법"
 

신뢰할 수 있는 사용자만 서버 클러스터 및 관련 하부 구조 구성 요소에 물리적으로 액세스할 수 있도록 제한합니다.
권한이 부여된 사용자만 서버 클러스터 노드 및 관련 하부 구조 구성 요소(예: 네트워크 및 저장 장치 구성 요소)에 물리적으로 액세스할 수 있도록 합니다. 서버 보안을 위한 기본 정보에 대한 자세한 내용은 보안에 대한 유용한 정보를 참조하십시오.

클러스터 네트워크에 보안 조치를 취합니다.
공용 또는 혼합 네트워크: DNS 서버 또는 WINS 서버와 같은 하부 구조 서버를 비롯하여 클러스터 서브넷 또는 다른 서브넷에 연결된 모든 서버는 트러스트된 서버여야 하며 보안 조치를 취해야 합니다. 또한 방화벽을 사용하여 권한이 없는 클라이언트가 클러스터에 액세스하지 못하도록 해야 합니다.

개인 네트워크: 개인 네트워크는 다른 네트워크와 물리적으로 분리해야 합니다. 특히 라우터, 스위치 또는 브리지를 사용하여 개인 클러스터 네트워크를 다른 네트워크와 연결하지 말고, 개인 네트워크 서브넷에 다른 네트워크 하부 구조 또는 응용 프로그램 서버를 포함하지 마십시오.

다수의 권한 없는 사용자가 클러스터 네트워크에 액세스하여 개인 또는 혼합 네트워크를 통해 전달되는 하트비트 메시지가 중단될 경우 클러스터가 이러한 오류에 대해 반응함으로써 IP 주소 리소스 그룹뿐 아니라 클러스터 노드 상태에도 영향을 주게 됩니다. Microsoft Exchange Server에 연결된 리소스와 같이 중요한 클러스터 리소스에 대해 장애 조치가 반복적으로 수행되면 클라이언트에서 이 클러스터에 액세스하지 못할 수도 있습니다.

Windows 방화벽을 사용하는 경우 보안 구성 마법사를 사용하여 구성합니다.
보안 구성 마법사는 클러스터 노드에 Windows 방화벽을 구성하는 과정을 단순하게 해줍니다. 자세한 내용은 서버 클러스터에 Windows 방화벽 사용을 참조하십시오.

트러스트되고 안전한 컴퓨터에서만 원격으로 클러스터 노드를 관리합니다.
원격 컴퓨터의 보안이 취약할 경우 클러스터 관리 도구에 의해 신뢰할 수 없거나 악의적인 코드가 은밀히 시작되어 클러스터에 피해를 줄 수도 있습니다.

모든 노드에서 클러스터 서비스 계정을 로컬 관리자 그룹의 구성원으로 만듭니다. 그러나 도메인 구성원 그룹의 구성원으로 만들지는 마십시오.
클러스터 서비스 계정에 가능하면 최소한의 권한만 부여하여 계정이 노출될 경우 발생할 수 있는 보안 문제를 예방합니다. 클러스터 서비스 계정에 필요한 관리 권한 및 사용 권한에 대한 자세한 내용은 클러스터 서비스를 실행할 계정 변경을 참조하십시오.

클러스터 서비스 계정을 보호하기 위한 단계를 수행하고 클러스터 서비스 계정을 사용하여 클러스터를 관리하지 마십시오.
클러스터 서비스 계정은 관리 권한 및 사용 권한을 갖습니다. 계정 사용을 제한하고, 계정 이름과 암호를 아는 사람들의 수를 제한하며, 수시로 암호를 변경하십시오.

다른 사용자 계정을 사용하여 클러스터를 관리하는 방법에 대한 자세한 내용은 사용자 권한을 부여하여 클러스터 관리를 참조하십시오.

클러스터 서비스 계정에 필요한 권한 및 사용 권한에 대한 자세한 내용은 클러스터 서비스를 실행할 계정 변경을 참조하십시오.

중단 시간 없이 클러스터 서비스 계정의 암호를 변경하는 것에 대한 자세한 내용은 클러스터 서비스 계정 암호 변경을 참조하십시오.

클러스터의 클러스터 서비스 및 응용 프로그램에 다른 계정을 사용합니다.
이렇게 하면 응용 프로그램 계정이 노출되더라도 클러스터 계정은 보호할 수 있습니다. 또한 cluster.exe를 사용하여 클러스터 서비스 계정에 대한 암호를 변경하고 하나 이상의 응용 프로그램에서 해당 계정을 사용하면 클러스터 응용 프로그램이 제대로 작동하지 않을 수 있습니다. 자세한 내용은 클러스터 서비스 계정 암호 변경을 참조하십시오.

여러 클러스터에 서로 다른 클러스터 서비스 계정을 사용합니다.
이렇게 하면 클러스터 서비스 계정이 노출되더라도 한 클러스터만 노출됩니다.

클러스터에서 모든 노드를 제거한 다음 클러스터 서비스 계정을 제거합니다.
클러스터에서 모든 노드가 제거되어도 클러스터 관리 도구는 자동으로 클러스터 서비스 계정을 제거하지 않습니다. 클러스터 서비스 계정에는 높은 수준의 관리 및 사용 권한 권한이 있어 노출될 경우 보안 문제를 일으킬 수 있습니다. 따라서 사용하지 않을 때는 이 계정을 로컬 관리자 그룹에서 제거할 것을 적극 권장합니다. 그러나 클러스터 서비스의 관리 권한 및 사용 권한은 도메인 전체가 아닌 각 클러스터 노드에 로컬로 허용되므로 계정이 노출되면 해당 클러스터 노드만 영향을 받습니다. 사용자 계정 삭제에 대한 자세한 내용은 로컬 사용자 계정삭제를 참조하십시오.

Active Directory 도메인의 클러스터의 경우 네트워크 이름 리소스에 대한 Kerberos 인증을 사용할 수 있습니다.
Kerberos 인증은 또 다른 인증 방법인 NTLM 인증보다 훨씬 더 안전합니다. Kerberos 인증을 사용할 수 있는 경우 클러스터 서비스가 네트워크 이름 리소스에 대해 만든 계정 및 가능한 경우 클러스터 서비스 계정 자체에도 특정 권한 및 사용 권한을 추가해야 합니다. 자세한 내용은 Microsoft 지원 웹 사이트(http://go.microsoft.com/fwlink/?LinkId=59994)에서 기술 자료 문서 307532, "컴퓨터 개체를 수정할 때 클러스터 서비스 계정의 문제 해결 방법"을 참조하십시오.

클러스터에서 보안 관련 이벤트를 감사합니다.
신뢰할 수 있는 사용자만 클러스터를 관리하는 권한을 갖도록 하고 권한 없는 사용자 계정이 추가되는 것을 추적하려면 로컬 관리자 그룹에 대한 변경 내용을 감사합니다. 기본적으로 서버 클러스터를 만들거나 노드를 추가할 때 클러스터 서비스 계정이 각 노드의 로컬 Administrators 그룹에 추가됩니다. 보안 이벤트 감사에 대한 자세한 내용은 보안 이벤트 감사를 참조하십시오.

클러스터 디스크의 파일이나 폴더 같은 공유 데이터에 대한 액세스를 제한하고 감사합니다.
공유 데이터에 대한 액세스를 감사하려면 모든 클러스터 노드에서 감사를 사용합니다. 자세한 내용은 클러스터에서 공유 데이터 보안을 참조하십시오.

클러스터 리소스에 대한 클라이언트 액세스를 제한합니다.
Windows Server 2003 제품군의 보안 기능을 사용하여 클러스터 리소스에 클라이언트 액세스 제한에 설명된 것과 같이 클러스터 리소스에 대한 클라이언트 액세스를 제어합니다. 클러스터 리소스에 대한 액세스를 제어할 사용자 및 그룹 계정을 만들 경우 로컬 계정이 아닌 도메인 수준 계정을 사용하여 현재 어떤 노드가 클러스터된 리소스를 소유하고 있는지에 관계 없이 적절한 액세스를 제공할 수 있게 합니다.

쿼럼 디스크에 대한 액세스를 제한하여 쿼럼 디스크에 항상 여유 공간이 충분하도록 합니다.
쿼럼 디스크를 무단으로 읽거나 쓰는 것을 방지하려면 클러스터 서비스 계정 및 로컬 관리자 그룹의 구성원에게만 쿼럼 디스크 액세스 권한을 부여할 것을 적극 권장합니다. 클러스터 서비스가 쿼럼 로그에 계속 기록할 수 있도록 하려면 쿼럼 디스크에 여유 공간이 충분해야 합니다. 쿼럼 디스크의 크기는 500MB 이상 되는 것이 좋습니다. 자세한 내용은 검사 목록: 서버 클러스터 계획 및 만들기와 디스크 리소스 보안을 참조하십시오.

클러스터에서 실행되는 모든 응용 프로그램은 신뢰할 수 있는 출처에서 제공 받은 것이어야 하며 클러스터 디스크에 대한 액세스는 클러스터 리소스로 관리되는 응용 프로그램으로만 제한되어야 합니다.
자세한 내용은 디스크 리소스 보안을 참조하십시오.

일반 스크립트 리소스가 호출하는 스크립트 파일에 보안 조치를 취합니다.
스크립트 파일의 실행 권한 및 이 스크립트에서 호출되는 API의 사용 권한에 대해 NTFS 파일 수준의 보안을 적용합니다. 자세한 내용은 클러스터 리소스에 클라이언트 액세스 제한을 참조하십시오.

일반 응용 프로그램 리소스가 호출하는 응용 프로그램은 신뢰할 수 있는 출처에서 제공 받은 것이어야 하며 해당 파일, 레지스트리 검사점 및 응용 프로그램에 필요한 기타 리소스는 안전한 위치에 보관되어야 합니다.
일반 응용 프로그램 리소스로 실행된 응용 프로그램은 관리 권한 및 사용 권한을 갖는 클러스터 서비스 계정의 컨텍스트 하에서 실행됩니다. 따라서 이러한 응용 프로그램이 신뢰할 수 있는 출처에서 제공받았는지 확인합니다. 또한 클러스터 관리자에서 일반 응용 프로그램 리소스의 매개 변수를 구성할 때 필요한 경우가 아니면 응용 프로그램이 데스크톱과 상호 작용을 선택하지 않는 것이 좋습니다. 자세한 내용은 클러스터 리소스에 클라이언트 액세스 제한을 참조하십시오.

클러스터를 원격으로 관리할 때 생성되는 클러스터 구성 로그 파일에 보안 조치를 취합니다.
원격 컴퓨터에서 새 서버 클러스터 마법사와 노드 추가 마법사를 사용하면 이러한 마법사가 생성한 클러스터 구성 로그 파일이 원격 컴퓨터의 %systemroot%\system32\LogFiles\Cluster\ClCfgSrv.log에 저장됩니다. 이 로그 파일에는 클러스터에 대한 중요한 정보가 들어 있습니다. 해당 파일에 대한 액세스를 클러스터 관리자 및 클러스터 서비스 계정으로 제한합니다. 자세한 내용은 파일 및 폴더의 사용 권한 설정, 보기, 변경 또는 제거를 참조하십시오.

참고:
 새 서버 클러스터 마법사 또는 노드 추가 마법사를 사용 중인 노드에 대해 관리 권한 및 사용 권한이 없을 경우 로그 파일은 로컬 %Temp% 디렉터리에 생성됩니다.
 

주 노드 집합 클러스터의 로컬 클러스터 디렉터리로 파일을 복사하지 마십시오.
주 노드 집합 모델을 사용할 때 각 노드는 %systemroot%\Cluster\MNS.%ResourceGUID%$\%ResourceGUID%$\MSCS에 있는 클러스터 디렉터리에 쿼럼 데이터베이스 복사본을 유지합니다. 파일을 \Cluster 디렉터리의 하위 디렉터리에 두고 주 노드 집합 리소스를 삭제하면 클러스터 서비스에서 해당 파일을 삭제합니다.

HKEY_LOCAL_MACHINE 시스템 레지스트리 하위 트리의 기본 보안 설정을 바꾸지 마십시오.
기본적으로 Builtin 폴더의 관리자 그룹 구성원 및 로컬 시스템 계정만 HKEY_LOCAL_MACHINE 시스템 레지스트리 하위 트리에 대한 모든 권한을 갖습니다. 이 레지스트리 하위 트리가 노출되면 일반 스크립트 리소스와 같은 일부 리소스를 시작하지 못할 수도 있습니다. 시스템 레지스트리 보안에 대한 자세한 내용은 레지스트리 보안 유지 관리를 참조하십시오.

서버 클러스터에서의 보안에 대한 자세한 내용은 클러스터에서 보안 관리를 참조하십시오.

반응형
728x90
300x250

[Networks] 서버 클러스터의 제한

서버 클러스터의 제한
서버 클러스터의 중요한 제한 사항을 설명합니다.

• 디스크 구성

클러스터 리소스로서 사용될 경우 클러스터 저장소 장치는 동적 디스크나 스팬 볼륨(볼륨 세트)으로 구성될 수 없습니다.

클러스터 저장소로 사용되는 디스크는 기본 디스크로 구성되고 NTFS 파일 시스템을 사용하여 포맷해야 합니다. Windows Server 2003, Enterprise Edition 및 Windows Server 2003, Datacenter Edition에서는 클러스터 저장소에 대해 동적 디스크나 스팬 볼륨(볼륨 세트)과 같은 동적 디스크 기능을 지원하지 않습니다. 쿼럼 디스크와 같은 기존의 클러스터 디스크를 동적 디스크로 변경할 수 없습니다. 그러나 DiskPart.exe 유틸리티를 사용하여 기본 클러스터 디스크의 볼륨을 확장할 수 있습니다. 자세한 내용은 DiskPart를 참조하십시오.

참고

• 여러 타사 제품이 클러스터에서 동적 디스크를 허용합니다. 자세한 내용을 보려면 Microsoft 기술 자료에서 검색어 "서버 클러스터 동적 디스크"를 사용하여 검색하십시오.  

클러스터 저장소 장치에서 원격 저장소를 사용할 수 없습니다. 파일 공유 리소스용 공유 폴더의 섀도 복사본은 사용할 수 있지만 쿼럼 리소스용 공유 폴더의 섀도 복사본은 사용할수 없습니다.

Windows Server 2003 제품군의 모든 제품에서 디스크에 쓰기 캐싱을 사용하도록 설정할 수 있습니다. 클러스터 디스크에는 이 기능을 사용하지 않는 것이 좋습니다. 이 기능을 사용하면 장애 조치 중 캐시된 데이터가 손실됩니다.

장애 조치 동안 캐시에 있는 데이터는 유실되므로 내부 RAID(redundant array of independent disks) 컨트롤러에서 후 기입 캐시(쓰기 전용)를 사용할 수 없도록 설정합니다. 내부 컨트롤러의 한 예로 노드 안의 PCI(Peripheral Component Interconnect) 카드가 있습니다. 외부 RAID 컨트롤러에서는 쓰기 캐시를 사용할 수 있도록 설정합니다. 외부 RAID 컨트롤러는 대개 디스크 외장 안에 있으며 캐시에 있는 데이터에 대해 장애 조치가 수행됩니다.

소프트웨어 RAID는 사용할 수 없습니다. 하드웨어 RAID를 사용하여 클러스터 디스크에 있는 데이터를 보호할 수 있습니다.

마스터 부트 레코드(MBR) 같은 클러스터 저장 장치에 있는 클러스터 디스크는 파티션하되 GUID 파티션 테이블(GPT) 디스크의 클러스터 디스크는 파티션하지 않습니다.
 
• 네트워크 구성

클러스터 서비스는 IP 기반 프로토콜을 통해서만 작동합니다.
개인 및 공용 네트워크는 동일한 서브넷에 있어야 합니다.

반응형

+ Recent posts