제목: 레드햇 9.0에서 Apache2, MySQL4, PHP4, Tomcat5 연동하기[1]
글쓴이: 예크디엠
글쓴날: 2004년 01월 07일 오후 05:45
URL : http://kltp.kldp.org/?story=04/01/07/5113171



--------------------------------------------------------------------------------
리눅스(레드햇 9.0)에서 Apache, MySQL, PHP, Tomcat 연동하기

Copyright©2003 yekdm
이문서는 자유롭게 수정 및 배포가 가능합니다. 단 상업적 용도로 사용할 수 없습니다.
수정 및 배포 시 작성자의 이름 및 출처를 꼭 명시하기 바랍니다.
작성자 : 예크디엠(yekdm)
작성일 : 2003년 12월 22일 월요일
이메일 : yekdm@hotmail.com

들어가기에 앞서
이 문서에 작성된 글이 제 좁은 이해력을 바탕으로 한 것이기에 잘못된 부분을 많이 포함하고 있으리라 생각합니다. 부족하지만 공부하는데 도움이 되길 바랍니다.

설치환경
레드햇 9.0 (Kernel 2.4.20-8)

시스템 구성
Apache 2.0.48
MySQL 4.0.17
PHP 4.3.4
Zend Optimizer 2.1.0b
J2SDK 1.4.2
Tomcat 5.0.16
JK2 Connector 2.0.2

1. Mysql 설치

http://www.mysql.com/downloads/index.html 을 방문해서 Mysql database server & standard clients 부분의 Mysql 4.0으로 이동합니다. 문서에 적혀있는데로 Mysql 4.0이 현재 배포되고 있는 공식버전입니다.
http://www.mysql.com/downloads/mysql-4.0.html 로 이동하면 배포본이 바이너리 형식, RPM 형식, 소스 형식의 세가지로 이루어져있음을 알 수 있습니다.

0. 기존의 RPM 패키지 제거

레드햇 리눅스 기반의 시스템에서는 Mysql의 RPM 패키지가 설치되어있는지 먼저 확인합니다.

shell> rpm –qa | grep mysql
또는
shell> rpm –qa | grep MySQL

최근에 배포되고 있는 레드햇 9.0에서는 기본적으로 Mysql이 아닌 PostgreSQL을 기본 데이터베이스로 채택하고 있습니다. 따라서 레드햇 9.0 설치 후 Mysql 을 바로 설치할 경우에는 RPM 패키지를 제거할 필요가 없습니다.
레드햇 기반의 리눅스 배포본에서 Mysql 패키지를 포함하는 경우 Mysql RPM 패키지를 변경 적용함으로 Mysql 공식 사이트에서 제공하는 RPM 패키지와 이름 및 내용이 다를 수 있습니다.
RPM 패키지의 경우 업그레이드가 가능하나 Mysql 3.23 에서 Mysql 4.0 으로의 RPM 업그레이드는 이루어지지 않습니다.

기존에 설치되어있는 Mysql RPM 패키지를 제거합니다.

shell> rpm -e --nodeps [mysql 패키지명]

‘--nodeps’ 옵션은 RPM 삭제시 의존성 여부를 무시하기 위해 사용됩니다.

설치에 앞서 기존에 Mysql을 설치하여 운영했었다면 사용했던 데이터베이스를 백업 받아 놓습니다.

0. Mysql binary 설치

배포파일 mysql-standard-4.0.17-pc-linux-i686.tar.gz

받은 파일을 적당한 위치 (예: /usr/local/src) 로 이동시켜서 압축을 풀어줍니다.

shell> mv ./mysql-standard-4.0.17-pc-linux-i686.tar.gz /usr/local/src
shell> tar xvfz mysql-standard-4.0.17-pc-linux-i686.tar.gz

위의 명령을 실행시키면 현재 위치에 mysql-standard-4.0.17-pc-linux-i686 디렉토리가 생성되면서 압축이 풀립니다. 생성된 디렉토리를 /usr/local/share로 디렉토리명을 mysql로 변경하여 이동시킵니다.

shell> mv ./mysql-standard-4.0.17-pc-linux-i686 /usr/local/share/mysql
또는
shell> cp -r ./mysql-standard-4.0.17-pc-linux-i686 /usr/local/share/mysql

해당 디렉토리로 이동합니다.

shell> cd /usr/local/share/mysql

Mysql을 처음으로 설치하는 경우 아래의 명령을 실행합니다. 이것은 mysql의 grant table을 만들어줍니다.

shell> scripts/mysql_install_db

디렉토리 권한을 설정합니다.
shell> chown -R mysql .
shell> chgrp -R mysql .

Mysql 계정을 등록하지 않았을 경우 Mysql의 사용자 및 그룹 계정을 추가한다.

shell> /usr/sbin/groupadd mysql
shell> /usr/sbin/useradd -g mysql mysql

/etc/passwd 파일과 /etc/group 파일을 에디터로 열어서 mysql 계정이 등록된 것을 확인하고 변경할 사항이 있으면 변경합니다.

Mysql을 실행시킵니다.

shell> bin/mysqld_safe --user=mysql &

시스템 부팅시 자동적으로 Mysql을 실행하고자 할 경우에는 support-files/mysql.server 파일을 /etc/rc.d/init.d 디렉토리로 copy 합니다.
그리고 /etc/rc.d/rc0.d에는 K01mysql이라는 이름으로 /etc/rc.d/rc3.d에는 S90mysql이라는 이름으로 symbolic link를 만들어줍니다. 심볼릭 링크 파일명에서 앞의 S는 부팅시 서비스가 이루어지는 즉 실행되는 파일을 의미하고 K는 서비스가 이루어지지 않는 데몬임을 의미합니다. 그 뒤의 숫자는 임의로 변경가능합니다. 자세한 사항은 리눅스 부팅시 시스템의 초기화 과정을 공부함으로 알 수 있습니다.
기본적으로 mysql install directory는 /usr/local/mysql로 되어있습니다. 그러나 이 문서에서 처럼 /usr/local/share/mysql의 위치에 설치할 경우 즉, /usr/local/mysql이 아닌 다른 위치에 Mysql을 설치할 경우에는 다음의 내용이 기록된 my.cnf를 작성하여 /etc 디렉토리에 저장합니다.

[mysqld]
basedir=/usr/local/share/mysql
datadir=/usr/local/share/mysql/data

기존에 Mysql을 운영한 경우에는 저장된 데이터베이스가 있는 디렉토리를 datadir에 적어주면 사용했던 데이터베이스를 그대로 사용할 수 있습니다. RPM으로 설치되어 운영했을 때의 datadir은 /var/lib/mysql 이므로 datadir=/var/lib/mysql 로 설정해줍니다. 그러면 기존의 데이터를 그대로 사용할 수 있습니다.
이 외의 방법이 몇 가지 더 존재합니다. 추가적인 사항은 mysql.server 파일을 참고하기 바랍니다.

참고사항
- 설치에 필요한 도움말은 binary package에 포함되어 있는 INSTALL-BINARY 파일에 들어있습니다.
- binary package 형태로 설치할 경우 mysql의 실행파일들이 들어있는 bin 디렉토리(/usr/local/share/mysql/bin)를 PATH 설정해서 임의의 위치에서도 사용할 수 있도록 해야 합니다. 이 과정이 mysql.server 파일에서 이루어지는 것 같은데 Redhat 9.0에서는 이 실행파일로는 PATH가 설정되지 않았습니다. 만일 mysql.server만으로 PATH가 설정되지 않으면 /etc/profile 파일에서 PATH를 설정하도록 합니다.
- Mysql 3.23에서 데이터베이스를 운영하다가 4.X로 업그레이드 할 경우 데이터베이스 type이 다르므로 기존의 데이터베이스를 그대로 사용하기 위해서는 특별한 과정을 거쳐야 합니다. Mysql 3.23에서는 디폴트 데이터베이스 type이 ISAM이나 4.X에서는 MyISAM이므로 type을 변경하는 과정이 필요합니다. 자세한 사항은
http://www.mysql.com/documentation/mysql/bychapter/manual_Installing.html#Upgrading-from-3.23 문서를 참고하기 바랍니다.

0. Mysql RPM 설치 (적극 권장)

Mysql 사이트에서 배포되는 Mysql RPM package는 다음과 같습니다.

MySQL-server-4.0.17-0.i386.rpm
MySQL-Max-4.0.17-0.i386.rpm
MySQL-bench-4.0.17-0.i386.rpm
MySQL-client-4.0.17-0.i386.rpm
MySQL-devel-4.0.17-0.i386.rpm
MySQL-shared-4.0.17-0.i386.rpm
MySQL-embedded-4.0.17-0.i386.rpm
MySQL-shared-compat-4.0.17-0.i386.rpm

각각의 패키지에 대해 간단하게 설명하겠습니다.

MySQL-server-4.0.17-0.i386.rpm : Mysql Server,
MySQL-Max-4.0.17-0.i386.rpm : Mysql Max Server, MySQL-server RPM에서 제공하지 않는 추가적으로 확장된 기능을 제공하는 패키지, MySQL-server RPM을 먼저 설치해야 한다.
MySQL-bench-4.0.17-0.i386.rpm : Test와 Benchmark 프로그램, 펄과 DBD::mysql 모듈을 필요로 한다.
MySQL-client-4.0.17-0.i386.rpm : The standard MySQL client programs, Mysql을 이용하는 여러가지 프로그램 제공
MySQL-devel-4.0.17-0.i386.rpm : 펄 모듈과 같은 다른 Mysql client 프로그램들을 컴파일하기 위해서 필요한 library와 include 파일들을 제공
MySQL-shared-4.0.17-0.i386.rpm : 프로그래밍 언어 및 애플리케이션에서 Mysql을 load하고 사용하는데 필요한 공유 라이브러리 제공 (libmysqlclient.so*)
MySQL-embedded-4.0.17-0.i386.rpm : The embedded MySQL server library (from Mysql 4.0)
MySQL-shared-compat-4.0.17-0.i386.rpm : MySQL 3.23과 4.0 두 버전의 공유 라이브러리를 포함한다. MySQL 3.23 환경에서 애플리케이션을 사용하다가 MySQL을 4.0으로 라이브러리 의존성 문제없이 업그레이드를 하고자 할 때 MySQL-shared RPM 대신 설치한다. 이 패키지는 MySQL 4.0.13 부터 이용할 수 있다.

기본적으로 설치할 RPM은 MySQL-server와 MySQL-client 패키지입니다.
이 두 패키지를 Mysql 사이트에서 다운로드 받아 적당한 장소에 옮겨 놓습니다.
(나머지 RPM은 필요에 따라 추가적으로 설치합니다.)

shell> mv ./MySQL-server-4.0.17-0.i386.rpm /usr/local/src
shell> mv ./MySQL-client-4.0.17-0.i386.rpm /usr/local/src

RPM을 설치합니다.

shell> rpm -ivh MySQL-server-4.0.17-0.i386.rpm
shell> rpm -ivh MySQL-client-4.0.17-0.i386.rpm

Mysql 계정이 등록되어있지 않으면 다음과 같이 Mysql 계정을 등록합니다.

shell> /usr/sbin/groupadd mysql
shell> /usr/sbin/useradd -g mysql mysql

/etc/passwd 파일과 /etc/group 파일을 에디터로 열어서 mysql 계정이 등록된 것을 확인하고 변경할 사항이 있으면 변경합니다.

/etc/passwd
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash

/etc/group
mysql:x:27:

RPM으로 설치한 경우에는 시스템 부팅시 Mysql을 자동으로 실행하기 위한 추가적인 작업이 필요없습니다. RPM으로 설치를 할 경우 RPM 설치 만으로 필요한 과정들이 대부분 이루어지기 때문에 매우 편하게 Mysql을 Install하여 사용할 수 있습니다.

다음의 명령을 실행하여 데이터베이스에 접속합니다.

shell> mysql mysql
또는
shell> mysql -u root -p mysql

참고사항
- http://www.mysql.com/documentation/mysql/bychapter/manual_Installing.html#Linux-RPM에 리눅스 RPM 설치가 설명되어있습니다. 참고하시기 바랍니다.
- RPM으로 설치했을 경우 실행파일들은 /usr/bin에 설치되고, 데이터베이스가 만들어지는 datadir는 /var/lib/mysql 입니다.

0. Mysql source 설치
(이 부분은 직접 실험해보지 않고, Mysql Document를 번역하여 옮겨놓았습니다.)

Mysql source install을 위해 다음과 같은 툴들이 필요하다.

* 압축을 풀기 위한 GNU gunzip, GNU tar. GNU tar 외에 다른 tar를 사용할 수 있으나 그 중 몇 가지는 긴 파일 이름으로 인한 문제를 일으킬 수 있다. e.g.) Sun tar
* ANSI C++ compiler. (gcc 2.95.2 및 이후버전, egcs 1.0.2 및 이후버전 또는 egcs 2.91.66, SGI C++, SunPro C++) gcc를 사용할 경우 libg++이 필요없다. gcc 2.7.X는 sql/sql_base.cc와 같이 완벽하게 작성된 C++파일을 컴파일하지 못하는 버그를 가지고 있다. 이 때에는 Mysql을 컴파일 할 수 있는 gcc로 업그레이드 해야한다. gcc 2.8.1은 몇몇 플랫폼에서 문제를 가지고 있다고 알려져 있다. 따라서 플랫폼에 다른 컴파일러가 있다면 gcc 2.8.1의 사용을 피해야 한다. Mysql version 3.23.X를 컴파일 할 때 gcc 2.95.2 및 이후버전을 권장한다.
* make 프로그램. GNU make 가 권장된다. make시 문제가 발생할 경우 GNU make 3.75 또는 이후버전으로 업그레이드하여 사용한다.

만일 gcc의 최신버전을 사용하고 있고 -fno-exceptions 옵션을 충분히 이해하고 있다면 이 옵션을 사용하는 것이 매우 중요하다. 그렇지않으면 불규칙적으로 충돌하는 바이너리 파일들을 컴파일 할 수도 있다. 따라서 -fno-exceptions를 따라 -felide-constructors와 -fno-rtti 를 사용하길 권장한다. 다음과 같이 명령어를 작성한다.

CFLAGS=”-03” CXX=gcc CXXFLAGS=”-03 -felide-constructors -fno-exceptions \\
-fno-rtti” ./configure --prefix=/usr/local/mysql --enable-assembler \\
--with-mysqld-ldflags=-all-static

위의 옵션들 중 --prefix 는 컴파일된 파일들이 위치하는 디렉토리 즉 설치 디렉토리를 설정해주는 옵션입니다. 만일 /usr/local/share/mysql의 위치에 Mysql을 설치하고자 할 경우 이 부분에 설치 디렉토리의 위치를 기록합니다.

위의 옵션으로 컴파일 할 경우 대부분의 시스템에서 빠르고 안정적인 바이너리를 제공할 것이다.

Mysql source 배포본은 2가지로 나뉩니다. 하나는 tarball형식으로 압축한 source이고 다른하나는 source RPM 패키지 입니다.

o. tarball(tar.gz) 형식

배포파일 mysql-4.0.17.tar.gz

Mysql 계정이 없을 경우 사용자 및 그룹 계정을 추가합니다.

shell> groupadd mysql
shell> useradd -g mysql mysql

적당한 위치에서 압축을 풉니다.

shell> mv ./mysql-4.0.17.tar.gz /usr/local/src
shell> cd /usr/local/src
shell> tar xvfz mysql-4.0.17.tar.gz

해당 디렉토리로 이동합니다.

shell> cd mysql-4.0.17

Mysql이 설치될 디렉토리를 지정하고 디폴트 Character Set을 한글로 설정합니다.
configure option에 대해 좀더 자세한 사항을 알고자 할 경우 이곳을 방문하시기 바랍니다.
http://www.mysql.com/documentation/mysql/bychapter/manual_Installing.html#configure_options

shell> ./configure --prefix=/usr/local/share/mysql --with-charset=euc_kr

컴파일과 인스톨을 진행합니다.

shell> make
shell> make install

Mysql이 설치된 디렉토리로 이동합니다.

shell> cd /usr/local/share/mysql

기존에 Mysql을 설치하지 않았을 경우 grant table을 만들어줍니다. 처음 설치시 꼭 필요한 과정입니다.

shell> scripts/mysql_install_db

Mysql 디렉토리의 권한을 설정합니다.

shell> chown -R root /usr/local/share/mysql
shell> chown -R mysql /usr/local/share/mysql/var
shell> chgrp -R mysql /usr/local/share/mysql

설정파일 support-files/my-medium.cnf 를 my.cnf라는 이름으로 /etc 디렉토리에 복사합니다.

shell> cp support-files/my-medium.cnf /etc/my.cnf

/etc/my.cnf 파일을 에디터로 열어 basedir과 datadir의 경로가 올바른지 확인합니다.

Mysql을 실행합니다.

shell> bin/mysqld_safe --user=mysql &

만일, 실행 후 프로세스가 계속 사라질 경우 mysql 디렉토리의 user 퍼미션을 모두 mysql로 변경합니다.

시스템 부팅시 자동적으로 Mysql을 실행하고자 할 경우에는 support-files/mysql.server 파일을 /etc/rc.d/init.d 디렉토리로 copy 합니다.
그리고 /etc/rc.d/rc0.d에는 K01mysql이라는 이름으로 /etc/rc.d/rc3.d에는 S90mysql이라는 이름으로 symbolic link를 만들어줍니다.

참고사항

- 좀더 자세한 사항들을 알고 싶을 경우
http://www.mysql.com/documentation/mysql/bychapter/manual_Installing.html#Installing_source 를 방문하기 바랍니다.
- 소스 패키지의 패치는 이 문서에서 다루지 않았습니다. 패치의 적용에 대해 알고싶으신 분은 http://www.mysql.com/documentation/mysql/bychapter/manual_Installing.html#Applying_patches 를 방문하여 참고하시기 바랍니다.

o. Source RPM 형식

배포파일 MySQL-4.0.17.src.rpm

다음의 명령으로 인스톨할 수 있는 binary RPM을 생성합니다.

shell> rpm --rebuild --clean MySQL-4.0.17.src.rpm

이 후 생성된 binary RPM으로 Mysql을 설치한다. 이 과정은 위에서 설명한 Mysql RPM 설치와 동일합니다.
--------------------------------------------------------------------------------
답장(2)

KLTP - Korean Linux Tips Project
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2004/09/21 09:03 2004/09/21 09:03
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/287

Trackback URL : http://tcbs17.cafe24.com/tc/trackback/287

« Previous : 1 : ... 5728 : 5729 : 5730 : 5731 : 5732 : 5733 : 5734 : 5735 : 5736 : ... 6391 : Next »

블로그 이미지

- 홍반장

Archives

Recent Trackbacks

Calendar

«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
Statistics Graph

Site Stats

Total hits:
251986
Today:
714
Yesterday:
1251