Server Admin

본문 바로가기
사이트 내 전체검색


RedHat Linux >> Server Administration for Redhat Linux
[목차]
제5장 Apache Web 서버

    5. APM 설치하기(아파치+PHP4+MySQL)


앞에서 DSO를 이용해 아파치의 기능을 동적 모듈로 만들어 언제라도 모듈을 추가해 기능을 확장하거나, 모듈을 제거해 불필요한 시스템 자원의 낭비를 줄일 수 있는 방법을 소개했다. 또한 이를 이용하면 아파치를 설치한 이후 언제라도 PHP와 MySQL을 연동할 수 있다는 점도 잠깐 언급했다.

이번에는 실제로 그 방법에 대해 소개하겠다.

가. MySQL 설치

PHP와 연동하여 많이 사용하는 데이터베이스가 MySQL일 것이다. PHP를 공부하고자 했거나 관심이 있다면 적어도 한번쯤은 MySQL이라는 이름을 들어 보았을 것이다.

NASA가 2000년 11월 데이터베이스를 오라클에서 MySQL로 성공적으로 바꿨다는 흥미로운 기사를 읽었다. 별탈 없이 MySQL로 바꿨다는 흥미로운 기사를 읽었다. 별탈 없이 MySQL로 바꾸었을 뿐 아니라 성능 개선의 효과까지 올렸다는 내용을 읽으면서 다시 한번 MySQL의 파워를 실감했다.

[참고기사] 기사원문은 리눅스뱅크(linuxbank.co.kr)에서 확인할 수 있다.

제목 : NASA, 오라클대신 MySQL 쓴다

2001-01-06 mysql [손관평 기자] ziskard@linuxbank.co.kr

작년 11월 미국 나사의 마셜 우주비행센터는 NAIS(NASA Acquisition Internet Service)를 오라클에서 MySQL로 성공적으로 교체했다.

NAIS의 프로젝트리더인 Dwight Clark은 별탈없이 성능 개선의 효과를 누리게 됐다고 밝히고 있다.

오픈 소스 소프트웨어로의 교체는 주로 비용문제때문에 이루어졌다. MySQL은 이중 가장 안정된(robust) 제품으로 인식된 것. 대통령 정보기술 자문위원회는 지난 9월 연방 정부가 하이 엔드 컴퓨팅 분야에서의 소프트웨어 개발 대안의 하나로 오픈 소스 소프트웨어를 지원해야하며 오픈 소스 제품이 정부 조달 분야에서 독점적인 솔루션들과 경쟁할 수 있도록 해야한다고 권고한 바 있다.

보다 자세한 내용은 fcw를 참고하기 바란다.

fcw : http://www.fcw.com/fcw/articles/2000/1204/pol-nasa-12-04-00.asp

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

그렇다면, 왜 이처럼 MySQL을 선호할까 ? 오픈 소스인 MySQL은 추가적인 비용 부담없이 안정적이고 강력한 기능을 가지고 있는 제품으로, 낮은 사양의 시스템에서도 훌륭한 데이터베이스를 구축할 수 있다. 그럼에도 기능은 상용 제품과 비교하여 절대 뒤지지 않는다. 이제는 오픈소스라고 해서 평가 절하되는 시점은 지났다. 오히려 오픈소스를 높게 평가하는 추세라고 할 수 있다.

▶ 소스 컴파일

PHP를 설치하기에 앞서 MySQL을 설치할 필요가 있다. 우선, MySQL 홈페이지(www.mysql.com/download/index.html)에서 소스를 구한다.

MySQL의 최신 안정버전은 3.22이다. 우리가 원하는 것은 Tarball의 소스 파일이므로, Source Downloads for 3.22.32:의 Tarball(including MySQL benchmarks and MIT pthreads)을 다운로드 받자. 소스파일명은 mysql-3.22.32.tar.gz일 것이다.

소스 파일의 압축을 풀고, 컴파일할 적당한 임의의 디렉토리로 가져온다. 그리고 다음처럼 압축을 풀면, mysql-3.22.32 디렉토리가 만들어지고, 소스가 풀릴 것이다.

[root@leelab src]# tar xvfz mysql-3.22.32.tar.gz

또는

[root@leelab src]# gzip -cd xvfz mysql-3.22.32.tar.gz | tar xvf -

mysql-3.22.32 디렉토리에 가보면, 압축이 풀린 것을 확인할 수 있을 것이다. 소스 디렉토리에서 보면, README와 INSTALL-SOURCE[-GENERIC]이라는 텍스트 파일을 볼 수 있을 것이다. 모든 소스가 그렇지만 소스의 압축을 풀면, 프로그램에 대한 간단한 설명 및 설치 방법에 대한 글을 포함하고 있다. 만약, 어떤 소스에 대한 설치 방법을 잘 모른다면 압축을 풀고, 소스 디렉토리에 포함된 이들 문서를 읽어보면 도움이 될 것이다.

이제 컴파일을 해보자.

[root@leelab mysql-3.22.32]# ./configure --prefix=/usr/local/mysql --with-charset=euc_kr --localstatedir=/usr/local/mysql/data

 

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

configuration 옵션          설명

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

--with-charset=[latin1]     한글을 사용하기 위해서 euc_kr을 적는다.

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

--prefix=[/usr/local/]      mysql이 설치될 기본 디렉토리이다. 예로

                            든 것은 /usr/local/mysql/에 설치하도록

                            설정하였다.

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

--localstatedir=[PREFIX/var] MySQL의 데이터가 저장될 위치이다. 예로

                            든 것은 /usr/local/mysql/data로 지정하였다.

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

--with-mit-threads          Tarball에 포함된 MIT-threads를 이용

                            하도록 강제 지정한다.

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

표에서 []안의 값은 configuration 옵션을 지정하지 않았을 때의 기본 값이다. --with-mit-threads는 경우에 따라선 정상적으로 컴파일이 되지 않는 경우가 있다. 이때는 이 옵션을 빼고, configure를 실행하면 된다. ./configure --help|less 라고 하면 사용할 수 있는 옵션을 모두 볼수 있다.

 

[root@leelab mysql-3.22.32]# ./configure --help|less

생략

MySQL has a Web site at http://www.mysql.com/ which carries details on the

latest release, upcoming features, and other information to make your

work or play with MySQL more productive. There you can also find

information about mailing lists for MySQL discussion.

Remember to check the platform specific part in the reference manual for

hints about installing on your platfrom. See the Docs directory.

Thank you for choosing MySQL!

위 configure가 성공적으로 마쳤다면, 이제 컴파일을 하고, 설치를 한다.

[root@leelab mysql-3.22.32]# make

[root@leelab mysql-3.22.32]# make install

make로 소스를 컴파일한 후 make install로 설치해야 한다. 이때 make install은 루트권한으로 실행해야 한다.

▶ 데이터베이스 설치

이제 데이터베이스를 설치한다. 반드시 다음과 같이 한다.

 

[root@leelab mysql-3.22.32]# /usr/local/mysql/bin/mysql_install_db

생략

To start mysqld at boot time you have to copy support-files/mysql.server

to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !

This is done with:

/usr/local/mysql/bin/mysqladmin -u root password 'new-password'

See the manual for more instructions.

Please report any problems with the /usr/local/mysql/bin/mysqlbug script!

The latest information about MySQL is available on the web at http://www.mysql.com

Support MySQL by buying support/licenses at http://www.tcx.se/license.htmy.

이명령을 실행하면 6개의 기초 테이블(user, db, host, tables_priv, columns_priv, func)이 만들어진다.

이제 MySQL의 설치가 끝났다. 서버를 시작해 보자. MySQL이 설치된 디렉토리로 이동해서 safe_mysqld를 실행한다. 여기서는 /usr/local/mysql에 MySQL이 설치되었다.

[root@leelab mysql]# ./bin/safe_mysqld &

제대로 설치 되었는지 확인해 보려면 다음처럼 실행 해본다. 제대로 동작한다면 MySQL에 대한 버번 정보를 볼 수 있을 것이다.

[root@leelab mysql]# ./bin/mysqladmin version

mysqladmin Ver 8.0 Distrib 3.22.32, for pc-linux-gnu on i686

TCX Datakonsult AB, by Monty

Server version 3.22.32

Protocol version 10

Connection Localhost via UNIX socket

UNIX socket /tmp/mysql.sock

Uptime: 4 hours 39 min 9 sec

Threads: 1 Questions: 92 Slow queries: 0 Opens: 14 Flush tables: 1 Open tab

les: 10

이제 서버를 중지하고, 다음과 같이 한다.

[root@leelab mysql]# ./binmysqladmin -u root shutdown

다시 서버를 시작하려면, safe_mysqld를 실행하면 된다.

[root@leelab mysql]# ./bin/safe_mysqld &

이제 MySQL의 설치는 모두 끝났다. MySQL에 대한 사용법 및 문법에 대한 것은 MySQL의 매뉴얼 또는 다른 책자를 통해 독자 여러분이 직접 공부해 보기 바란다. 여기서 소개할 수 있을 만큼 간단한 것이 아니기에 이것은 여러분 스스로 공부해야 할 것이다.

나. PHP 4.0 설치

홈페이지를 사용자와 인터렉티브하게 동적으로 만들기 위해선 HTML만으로는 힘들다. 예를 들어 게시판을 만들거나 설문조사를 위한 간단한 테이블을 만들고, 이를 통해 통계를 내거나 데이터베이스와 연동하는 것과 같은 일을 PHP를 이용해서 실현할 수 있다. 이 PHP와 MySQL 그리고 아파치를 연동하는 것의 마지막인 PHP 설치에 대해 알아보자.

▶ 소스 컴파일

우선 PHP의 홈페이지(www.php.net)에 가서 최신 안정버전을 다운받는다. 현재 버전은 PHP 4.0.4이다. 물론, 타르볼의 소스를 다운 받으면, php-4.0.4.tar.gz이라는 팡리이 있을 것이다. 이것도 적당한 디렉토리에 압축을 푼다. 그러면 php-4.0.4라는 소스 디렉토리가 만들어진다.

[root@leelab src]# tar xvfz php-4.0.4.tar.gz

또는

[root@leelab src]# gzip -cd xvfz php-4.0.4.tar.gz | tar xvf -

이제 php-4.0.4 소스 디렉토리에서 컴파일을 한다.

[root@leelab php-4.0.4]# ./configure --with-apxs=/usr/local/httpd/bin/apxs --with-config-file-path=/usr/local/httpd --with-mysql=/usr/local/mysql --enable-track-vars --disable-debug

생략

+--------------------------------------------------------------------+

| 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@leelab php-4.0.4]# make

[root@leelab php-4.0.4]# make install

make install을 하면, 아파치의 설정 파일에 PHP에 관련된 부분을 알아서 추가해준다. 아파치의 설정파일을 열어 확인해 보자.

아파치의 설치를 /usr/local/httpd 라는 기본 디렉토리에 설치했다고 가정하고 만약, 아니라면 본인의 아파치 설치 디렉토리로 바꿔 생각하면 된다.

LoadModule php4_module /libexec/libphp4.so

AddModule mod_php4.c

...

<IfModule mod_php4.c>

AddType application/x-httpd-php .php .php3 .phtml

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

</IfModule>

/usr/local/httpd/conf/httpd.conf에서 보면 위와 같은 php4 모듈이 추가된 부분을 찾을 수 있다. 위 부분과 약간 다를 수 도 있다. 다르다면 위와 같이 수정해 준다.

▶ 아파치 데몬 시작

아파치 설정 파일의 수정이 마무리 되었다면, 아파치 데몬을 다시 시작한다.

[root@leelab httpd]# ./bin/apachectl restart

만약, 이때 libmysqlclient.so라는 라이브러리를 열 수 없다는 메시지가 나타난다면, /etc/ ld.so.conf에 다음을 추가한 후, ldconfig를 한번 실행해 준다.

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

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

: cannot open shared object file: 그런 파일이나 디렉토리가 없음

./bin/apachectl start: httpd could not be started

[root@user httpd]# cd /etc

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

생략 ..

/usr/local/mysql/lib/mysql

[root@www /etc]# ldconfig

이문제는 mysql의 라이브러리 파일을 찾지 못해서 생기는 문제로, 위와 같이 라이브러리 디렉토리를 ld.so.conf에 등록하고, ldconfig로 갱신을 해주면 라이브러리를 이용할 수 있다. 이것은 한번만 실행하면 된다.

[root@www /etc]# cd /usr/local/httpd

[root@www httpd]# ./bin/apachectl start

../bin/apachectl start: httpd started

[root@www httpd]#

이제 모든 것이 제대로 되었다면 간단한 PHP 테스트파일을 만들어 확인해 보자.

phpinfo.php라는 파일로 다음을 작성하자.

[root@leelab htdocs]# vi phpinfo.php

<?

phpinfo();

?>

아파치의 htdocs라는 HTML 문서가 위치하는 곳에 놓고 브라우저를 통해 확인해 보면 아래와 같은 화면을 볼 수 있다.



이제 PHP와 MySQL을 이용해서 멋진 홈페이지를 구축하는 것은 여러분의 몫이다. PHP와 MySQL을 사용하기 위해서는 사용법을 익혀야 한다. 이것은 여기서 다룰 수 있는 범위가 아니므로 직접 공부하길 바란다.

[목차]

개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.