[웹서버] apm+freetype+gd 두번째 이야기

아래의 소개한 설치기 말고 다른 것인데..

다른 주변 설명이 잘되어져 있네요…

같이 참고하시면 좋을듯 하네요…

—————————————-

설치환경

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

RedHat-7.0

Kernel-2.4.10

Pentium-600

512MB Memory

리눅스에서 apache + php + mysql 환경을 구성하되, mysql은 /usr/local/mysql

디렉토리에소스배포판을 미리 설치한 것을 전제로 아래의 설치과정을 진행한다.

추가로 GD 그래픽 라이브러리를 함께 사용할수 있도록 연동한다.

Freetype 라이브러리도 GD를 지원하기 위해 연동하여, 트루타입 글꼴을 사용가능

하도록 구성하기로 한다.

[웹 상에서의 그래픽 포맷에 관한 짧은 소개 ]

인용 – http://myicon.hihome.com/web_2.htm

(1) GIF 형식

-GIF(Graphic Interchange Format):보편적으로 웹에서 사용되는 그래픽 파일 형식,

– 최대 8비트 팔레트를 이용한 색인화된 색상을 사용. 최대 256개의 색깔을 사용할

  수 있다는 의미

-용도:컬러이미지, 로고, 라인아트, 아이콘, 만화 같은 표현 등 같은 색을 많이

  사용하는 영역이 있는 이미지 압축에 적합

-브라우저에서 지원할 수 투명이미지는 GIF 뿐이므로 이미지의 일부분을 투명하게

만들어야 할 필요가 있을 때 사용

-웹페이지에서 플러그인이나 Java 프로그래밍 또는 서버에 부담을 주지 않고 간단한

애니메이션을 추가하기 좋은 형식

-8비트라는 제한 때문에 사진 이미지를 표시하기에는 부적합

(2) JPEG 형식

-JPEG(Joint Photographic Experts Group) 24비트 색상정보가 포함되며,

-GIF의 256컬러보다 휠씬 많은 수백만 색상을 사용할 수 있음 (손실압축방식)

사진 등 사실적 이미지 표현에 좋음

-24비트RGB 색상 정보가 포함되는 포맷이므로, 고품질의 이미지와 풍부하고

미묘한 색상의 변화를 표현

-JPEG 압축기법:손실압축기법으로 이미지의 품질에 큰 손상을 입히지 않고도

10:1, 20:1까지 데이터 압축율을 얻을 수 있음

-용도:사진이미지나 연속된 톤으로 표현된 이미지, 유화, 수채화 256단계의

음영으로 표시되는 이미지 등

(3) PNG 형식

-PNG(Portable Network Graphic):웹그래픽 포맷으로 가장 늦게 채택된 형식.

-8비트, 24비트, 16비트, 흑백음영을 모두 지원하는 비손실압축방식

-웹환경에 큰 영향을 미칠 것으로 보이는 파일 형식

-독점적인 GIF를 대신할 비독점적인 파일 형식으로 개발된 것

-용도:JPEG을 대신할 포맷이 아니라, GIF를 대체할 형식임

-세부묘사가 필요한 이미지 저장에서 TIFF를 대신할 수 있음

-PNG의 훌륭한 기능들

  1. 8비트 팔레트 지원, 16비트 회색음영 지원, 24비트 트루컬러지원

  2. 비손실압축방법 사용 및 색인색상 이미지에 대하여 GIF보다 좋은 압축율지원

  3. GIF 의 일차원적인 인터레이싱에 비해 세련된 방법인 2차원적인 점진적 표시기능

  4. 8비트 또는 16비트 투명성 정보를 포함한 알파채널 지원

작업에 앞서 사전구성요소를 살펴보면 다음과 같다.

먼저 시스템 RPM으로 설치된 PNG 와 JPEG 라이브러리를 확인한다.

# rpm -qa | grep png

libpng-1.0.8-1

libpng-devel-1.0.8-1

# rpm -qa | grep jpeg

libjpeg-6b-13

libjpeg6a-6a-7

libjpeg-devel-6b-13

실제 작업에 필요한 패키지는 다음과 같다.

기술된 웹사이트에서 각각의 파일을 다운로드한다.

freetype-1.3.tar.gz (http://freetype.sourceforge.net/download.html)

gd-1.8.4.tar.gz (http://www.boutell.com/gd)

patch_gd1.8.4_gif_20010208.gz (http://www.rime.com.au/gd)

apache_1.3.19.tar.gz (http://httpd.apache.org/dist)

php-4.0.6.tar.gz (http://www.php.net/downloads.php)

gd-1.8.2ko.tar.gz (http://dr.moira.co.kr/oyh1757/gd_patch.php3)

php_gd_ko.tar.gz  (http://dr.moira.co.kr/oyh1757/gd_patch.php3)

설치작업을 빠르게 진행하기 위해, tar.gz 파일을 모두 압축해제한다.

[root@src]# gzip -d apache_1.3.19.tar.gz

[root@src]# tar xvf apache_1.3.19.tar > /dev/null

[root@src]# gzip -d freetype-1.3.1.tar.gz

[root@src]# tar xvf freetype-1.3.1.tar > /dev/null

[root@src]# gzip -d gd-1.8.2ko.tar.gz

[root@src]# tar xvf gd-1.8.2ko.tar > /dev/null

[root@src]# gzip -d gd-1.8.4.tar.gz

[root@src]# tar xvf gd-1.8.4.tar > /dev/null

[root@src]# gzip -d patch_gd1.8.4_gif_20010208.gz

[root@src]# gzip -d php-4.0.6.tar.gz

[root@src]# tar xvf php-4.0.6.tar > /dev/null

[root@src]# gzip -d php_gd_ko.tar.gz

[root@src]# tar xvf php_gd_ko.tar > /dev/null

미리 GD가 기본적으로 GIF라이브러리를 지원하지 않으므로, 이를 지원하기 위해

GD패치를 실행하고,GD한글패치 적용을 위해 GD소스와 PHP소스중 관련파일을 교체한다.

혀니님이 운영하는 사이트에서 gd-1.8.2 버전에 대한 한글패치파일이 제공되는데

언어관련 패치프로그램(gdttf.c  jisx0208.h)만 교체하므로, 설치할 gd의 버전은

상관없다.

먼저 GD패치(GIF지원)를 실행한다.

[root@src]# cd gd-1.8.4

[root@gd-1.8.4]# patch -p1 < ../patch_gd1.8.4_gif_20010208

patching file Makefile

Hunk #1 FAILED at 17.

1 out of 6 hunks FAILED — saving rejects to file Makefile.rej

patching file Makefile.nt

patching file demoout.png

patching file gd.c

patching file gd.h

patching file gd2togif.c

patching file gd_biggif_out.c

patching file gd_gif_in.c

patching file gd_gif_out.c

patching file gd_lzw_out.c

patching file gdcmpgif.c

patching file gdtest.c

patching file gdtestft.c

patching file giftogd2.c

patching file index.html

patching file test/fttest.png

patching file test/fttestref.png

다음은 GD의 한글패치와 관련된다.

[root@gd-1.8.4]# cd ..

[root@src]# cp gd-1.8.2/gdttf.c   gd-1.8.4/

[root@src]# cp gd-1.8.2/jisx0208.h  gd-1.8.4/

마찬가지로,,

PHP소스트리에도 관련파일을 적용한다. 다음은 위의 2개 파일과 이름이 같지만,

php_gd_ko.tar 파일에서 추출된 파일이고, 내용이 다르므로 주의한다.

[root@src]# cp  gdttf.c   php-4.0.6/ext/gd/

[root@src]# cp  jisx0208.h  php-4.0.6/ext/gd/

++++++++++++++++++++++++++++++++++++++++++++++++

설치순서

——-

1) Freetype Library compile, install

2) GD Library compile, install

3) Apache compile, install

4) PHP compile, install

++++++++++++++++++++++++++++++++++++++++++++++++

1) FreeType Library 설치

[root@src]# cd freetype-1.3.1

[root@freetype-1.3.1]# ./configure; make; make install

2) GD Library 설치

[root@freetype-1.3.1]# cd ..

[root@src]# cd gd-1.8.4

[root@gd-1.8.4]# make; make install

3) Apache 설치

[root@gd-1.8.4]# cd ..

[root@src]# cd apache_1.3.19

[root@apache_1.3.19]# ./configure –prefix=/usr/local/apache \\

> –enable-module=all  –enable-shared=max

[root@apache_1.3.19]# make

[root@apache_1.3.19]# make install

4) PHP 설치

[root@apache_1.3.19]# cd ..

[root@src]# cd php-4.0.6

[root@php-4.0.6]# ./configure \\

> –with-mysql=/usr/local/mysql \\

> –with-apxs=/usr/local/apache/bin/apxs \\

> –with-gd=/usr/local \\

> –enable-gd-imgstrttf \\

> –with-jpeg-dir=/usr/lib \\

> –enable-track-vars \\

> –enable-versioning \\

> –enable-sigchild \\

> –enable-ftp \\

> –disable-debug \\

> –with-language=korean \\

> –with-charset=euc_kr \\

> –with-config-file-path=/usr/local/apache

[root@php-4.0.6]# make

[root@php-4.0.6]# make install

[root@php-4.0.6]# cp php.ini-dist  /usr/local/apache/php.ini

PHP 설치와 관련된 주요작업 내용은 apxs(APache eXtenSion Tool)을 사용해

php4 library를 apache의 Loadable Library로 포함시키는 것으로, 다음과 같이

설치된다.

make[1]: 들어감 `/usr/local/src/php-4.0.6′ 디렉토리

/usr/local/src/php-4.0.6/build/shtool mkdir -p “/usr/local/apache/libexec”

&&

/usr/local/apache/bin/apxs -S LIBEXECDIR=”/usr/local/apache/libexec” -i -a -n

\\

php4 libs/libphp4.so

cp libs/libphp4.so /usr/local/apache/libexec/libphp4.so

chmod 755 /usr/local/apache/libexec/libphp4.so

[activating module `php4′ in /usr/local/apache/conf/httpd.conf]

installing shared modules into /usr/local/lib/php/20001222

make[1]: 나감 `/usr/local/src/php-4.0.6′ 디렉토리

5) Apache 설정(conf/httpd.conf) 편집 및 실행

APACHE_HOME/conf/httpd.conf 파일을 열어 아래의 루틴을 수정한다..

    # And for PHP 4.x, use:

    #

    #AddType application/x-httpd-php .php

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

위의 항목을 아래와 같이 주석을 풀고, 추가해 준다.

    # And for PHP 4.x, use:

    #

    AddType application/x-httpd-php .php .php3 .html .htm .inc

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

아파치를 실행하기 위해 bin/apachectl start 명령을 사용한다.

[root@bin]# ./apachectl start

Syntax error on line 241 of /usr/local/apache/conf/httpd.conf:

Cannot load /usr/local/apache/libexec/libphp4.so into server: libmysqlclient.so.6:

cannot load shared object file: No such file or directory

./apachectl start: httpd could not be started

만약 아파치서버를 시작하는 부분에서 위와 같이 실행에러가 나는 경우는

/etc/ld.so.conf 파일에/usr/local/mysql/lib/mysql 항목을 추가한후,, ldconfig

명령을 한번 실행한다.

[root@bin]# vi /etc/ld.so.conf

/usr/X11R6/lib

/usr/lib

/usr/kerberos/lib

/usr/lib/qt-2.2.1/lib

/usr/lib/qt-1.45/lib

/usr/lib/sane

/usr/local/mysql/lib/mysql

~

~

~

~:wq!

[root@bin]# ldconfig

[root@bin]# ./apachectl start

./apachectl start: httpd started

[root@bin]# pstree

init-+-crond—crond

     |-httpd—5*[httpd]

     |-in.telnetd—login—bash—su—bash—pstree

     |-keventd

     |-klogd

     |-7*[mingetty]

     |-named

     |-pagebuf_daemon

     |-sa1—sadc

     |-safe_mysqld—mysqld—mysqld—mysqld

     |-sendmail

     |-sshd

     |-syslogd

     |-xfs

     `-xinetd

[root@bin]# ps -ef | grep httpd

root     30057     1  0 05:48 ?        00:00:00 /usr/local/apache/bin/httpd

nobody   30058 30057  0 05:48 ?        00:00:00 /usr/local/apache/bin/httpd

nobody   30059 30057  0 05:48 ?        00:00:00 /usr/local/apache/bin/httpd

nobody   30060 30057  0 05:48 ?        00:00:00 /usr/local/apache/bin/httpd

nobody   30061 30057  0 05:48 ?        00:00:00 /usr/local/apache/bin/httpd

nobody   30062 30057  0 05:48 ?        00:00:00 /usr/local/apache/bin/httpd

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

1 Response

  1. 2024년 10월 11일

    … [Trackback]

    […] Find More on to that Topic: nblog.syszone.co.kr/archives/120 […]

페이스북/트위트/구글 계정으로 댓글 가능합니다.