'APM 설치'란 리눅스에서 웹 서버 구축에 사용되는 Apache 프로그램 과 서버에서 데이터(자료)를
저장,관리하는 데이터베이스 서버 구축에 사용되는 MySQL 프로그램 그리고 서버에서 프로그램을 작
성할 수 있는 서버측 언어인 PHP 프로그램을 소스로 다운로드 받아 위 3개 프로그램이 연동될 수
있도록 설치하는과정입니다.
앞에서 RPM 명령어를 사용하여 팩키지 프로그램을 설치하고 삭제하는 방법에 대해서 공부했지만,
이 장에서는 최신 버젼의 소스(Source)프로그램을 다운받아 설치하는 방법을 공부하겠습니다. 소스
설치는 RPM 방법 보다 다소 어렵고 까다로운 점이 있지만 그 남름다로 장점이 있습니다. 예를 들면
사용자의 임의 설치가 가능합니다.
여러 프로그램을 함께 연동되도록 하기 위해서는 소스 설치가 불가피한 경우가 많이 있습니다.
준비 과정
- 프로그램 Download할 디렉토리 생성
# mkdir /temp [Enter]
- 프로그램 다운받기
Apache : apache_1.3.22.tar.gz(
www.apache.org )
MySQL : mysql-3.23.49.tar.gz(
www.mysql.com )
PHP : php-4.1.2.tar.gz(
www.php.net )
- 기존에 설치된 RPM 삭제
# rpm -qa | grep apache [Enter]
# rpm -e --nodeps apache (팩키지이름)
# rpm -qa | grep mysql [Enter]
# rpm -e --nodeps mysql (팩키지이름)
# rpm -qa | grep php [Enter]
# rpm -e --nodeps php (팩키지이름)
※ -e 옵션으로 삭제가 않되면 의존성을 무시하는 --nodeps 옵션을 사용함.
- 기존에 사용된 디렉토리 및 파일 삭제
# rm -rf /var/lib/mysql [Enter]
# rm -rf /var/www [Enter]
# rm -rf /var/log/httpd [Enter]
# rm -rf /etc/httpd [Enter]
1. 설치 순서 MySQL -> PHP -> Apache
2. 압축 풀기
[root]# cd /temp [Enter]
[temp]# tar xzvf mysql-3.23.49.tar.gz
[temp]# tar xzvf php-4.1.2.tar.gz
[temp]# tar xzvf apache_1.3.22.tar.gz
[temp]# ls
apache_1.3.22 mysql-3.23.49 php-4.1.2
apache_1.3.22.tar.gz mysql-3.23.49.tar.gz php-4.1.2.tar.gz
3. mySQL 설치
[temp]# cd mysql-3.23.49 [Enter]
[mysql-3.23.49]# ./configure --prefix=/usr/local/mysql --with-charset=euc_kr
; mysql 설치 위치(/usr/local/myslq) , 한글 사용을 가능하게 (charset=euc_kr)
※ 참고: 설정이 잘못된 경우에는 config.cache 파일을 제거한 후 다시 위 단계를 진행합니다.
[mysql-3.23.49]# make // 소스 파일들을 컴파일하는 명령어(약 5~10分 소요)
[mysql-3.23.49]# make install // 컴파일된 소스 파일들을 /usr/local/mysql 디렉토리 밑에 설치
MySQL이 설치되었으면 아래와 같이 실행하여 초기테이블을 작성합니다.
초기 테이블에는 MySQL이 데이터베이스를 관리하기 위한 여러 정보 (사용자, mysql 데이터베이스,
test 데이터베이스, 사용 권한 등)가 기록됩니다.
[mysql-3.23.49]# cd /usr/local/mysql [Enter] // mysql 홈 디렉토리 이동
[mysql]# ls
[mysql]# cd bin [Enter]
[bin]# ./mysql_install_db
위 명령의 실행 결과 /usr/local/mysql/var라는 디렉토리가 생성되고 다음과 같이 데이터베이스들과
테이블을 위한 파일이 생성됩니다.
[bin]# cd ../var [Enter]
[var]# ls
mysql test
[var]# cd mysql
[root@localhost mysql]# ls
columns_priv.MYD db.MYD func.MYD host.MYD tables_priv.MYD user.MYD
columns_priv.MYI db.MYI func.MYI host.MY I tables_priv.MYI user.MYI
columns_priv.frm db.frm func.frm host.frm tables_priv.frm user.frm
이제 MySQL 설치는 끝났습니다. MySQL 서버를 기동해 보죠.
[bin]# cd /usr/local/mysql/share/mysql [Enter]
[mysql] ./mysql.server start [Enter]
※ mysql.server 실행 파일이 MySQL 서버를 시작 시키고 종료시키는 역활을 담당합니다.
./mysql.server start [Enter] // 서버 시작하기
./mysql.server stop [Enter] // 서버 종료하기
# /usr/local/mysql/share/mysql/mysql.server start [Enter]
# chown : mysql : invalid user
020113 23:21:59 mysqld ended
위와 같이 mysql 사용자 존재하지 에러가 발생되면 다음과 같이 mysql 그룹과 사용자를 만들 후
다시 MySQL 서버를 기동합니다.
# /usr/local/mysql/share/mysql/mysql.server start [Enter]
# groupadd mysql [Enter] // mysql 그룹 추가
# adduser -g mysql mysql [Enter] // mysql 그룹으로 mysql 사용자 생성
[root@localhost var]# Starting mysqld deamon with databases from /usr/local/mysql/var
020113 23:21:59 mysqld ended
위와 같이 MySQL 서버가 작동하지 못하고 종료(ended) 되는 이유는 /usr/local/mysql/var 디렉토리의
소유자와 그룹을 mysql로 변경한 다음 MySQL 서버를 다시 시작하고 MySQL 프로그램을 실행해 봅니다.
# cd /usr/local/mysql [Enter]
[mysql]# chown -R mysql.mysql var [Enter] // var 디렉토리 소유자와 그룹 변경
[mysql]# ll [Enter]
[root@localhost var]# /usr/local/mysql/share/mysql/mysql.server start // MySQL 서버 재 시작
[root@localhost var]# Starting mysqld deamon with databases from /usr/local/mysql/var
[root@localhost var]# ps -ef | grep mysql [Enter] // mysql 데몬 실행 확인
# cd /usr/local/mysql/bin [Enter]
[bin]# ./mysql [Enter] // MySQL 프로그램 실행
아래와 같이 mysql> 프롬프트가 보이면 MySQL 서버 구축이 성공한 것입니다.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 3.23.49
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>_
mysql> show databases;
+-----------+
| Databases |
+-----------+
| mysql |
| test |
+-----------+
2 rows in set (0.20 sec)
mysql>quit
4. Apache 초기 설정
PHP에서 apache를 사용할 수 있도록 apache의 환경을 설정해줍니다.
[temp] # cd apache_1.3.22 [Enter]
[apache_1.3.22] # ./configure
5. PHP 설치
[apache_1.3.22]# cd ../php-4.1.2 [Enter]
[php-4.1.2]# ./configure --prefix=/usr/local/php4 --with-mysql=/usr/local/mysql
--with-apache=/temp/apache_1.3.22 --enable-track-vars [Enter]
※ php가 설치될 위치를 /usr/local/php4 디렉토리로 지정하고, 기타 mysql 과 apache 프로그램과
연동하여 설치하기 위한 옵션 입니다.
[php-4.1.2]# make // 컴파일
[php-4.1.2]# make install // 설치
- 다음으로 php의 환경을 설정해줍니다.
/temp/php-4.1.2 폴더내의 php.ini-dist 파일을 /usr/local/php4/lib/php.ini란 이름으로 복사합니다.
[/php-4.1.2]#cp php.ini-dist /usr/local/php4/lib/php.ini [Enter]
[php-4.1.2]# cd /usr/local/php4/lib
[lib]#ls
php.ini
PHP의 한글 출력문제 해결을 위해 /usr/local/php4/lib/php.ini 파일을 열고 아래와 같이 환경설정
파일을 수정합니다.
[/php-4.1.2]# vi /usr/local/php4/lib/php.ini
:
;default_charset = "iso-8859-1" 을
default_charset = "euc_kr" 로 바꾸어 줍니다.
맨 앞의 ;(세미콜론)을 제거해야 합니다.
참고로 이 작업은 PHP가 포함된 HTML문서에서 한글을 제대로 출력하기 위함입니다.
6. Apache 설치
[php-4.1.2]# cd ../apache_1.3.22 [Enter]
[apache_1.3.22]# ./configure --prefix=/usr/local/apache
--activate-module=src/modules/php4/libphp4.a [Enter]
※ apache가 설치될 위치 (/usr/local/apache)를 지정하고 php를 사용하기 위한 옵션을 추가합니다.
[/apache_1.3.22]#make
[/apache_1.3.22]#make install
- 이제 apache 서버의 환경을 설정해야 합니다.
/usr/local/apache/conf/httpd.conf 파일을 열고 아래와 같이 설정합니다.
[/apache_1.3.22]# vi /usr/local/apache/conf/httpd.conf [Enter]
;
User noboby
Group nobody <-- 여기 수정
;
#ServerName localhost.localdomain <--- #을 해제
;
#AddType application/x-httpd-php3 .php3
#AddType application/x-httpd-php3-source .phps
#
# And for PHP 4.x, use;
#
AddType application/x-httpd-php .php <--- #을 해제
AddType application/x-httpd-php-source .phps <--- #을 해제
- 웹 서비스를 제공하는 httpd 데몬 실행 확인
# ps -ef | grep httpd [Enter]
※ 만약 실행중인 httpd 데몬이 있으면 다음과 같이 데몬을 kill 합니다.
# killall httpd [Enter]
- 소스로 설치한 아파치 데몬 실행
# cd /usr/local/apache/bin [Enter] // 아파치 홈 디렉토리 밑에 bin 디렉토리로 이동
[bin]# ./apachectl start [Enter] // 아파치 데몬 실행 파일인 apachectl를 시작시킴
※ 중지는 stop, 재 시작은 restart 입니다.
끝으로 소스로 설치한 데몬이 실행중인가를 확인 합니다.
# ps -ef | grep httpd [Enter]
7. 웹 브라우저에서 웹 서버 확인 및 php 연동 확인
- apache 웹 서버 데몬 실행 파일의 위치
/usr/local/apache/bin/apachectl
- apache 웹 서버 환경 설정 파일의 위치
/usr/local/apache/conf/httpd.conf
- apache 웹 서버의 시작 파일의 위치(index.html)
/usr/local/apache/htdocs/
# cd /usr/local/apache/htdocs [Enter]
# cp index.html.en index.html // index.html 파일을 생성한다.
- 웹 브라우져에서 웹 서버 시작 파일 보기
브라우저을 실행하고 주소란에 http://localhost 라 입력하고 엔터를 친다음 같이 시작 파일의
결과가 보이면 성공입니다.
이어서 php와 apache가 제대로 연동이 되었나 확인 하기 위해서 /usr/local/apache/htdocs 디렉토리에
다음과 같이 test.php 파일을 작성합니다.
# cd /usr/local/apache/htdocs [Enter]
# vi test.php [Enter]
phpinfo();
?>
※ 위 내용을 test.php 파일로 저장한 후 웹 브라우저를 다시 실행한 다음 다음과 같이 주소란에
입력하고 엔터를 쳐보세요.
http://localhost/test.php
아래 화면이 나오면 apache와 php가 제대로 연동 되어 성공적으로 설치된 것입니다.
대단히 축카 축카 ~~~~~~~~~~~~~~~(^.^;)
8. MySQL + Apache + PHP 연동확인
- 먼저 소스로 설치한 MySQL 서버 기동하기
# /usr/local/mysql/share/mysql/mysql.server start [Enter]
# ps -ef | grep mysqld
mysql 456 0 15:09 ? 00:00:00 /usr/local/mysql/libexec/mysqld
- 아파치 웹 서버 기동하기
# /usr/local/apache/bin/apachectl start [Enter]
# ps -ef | grep httpd
nobody 856 0 15:30 ? 00:00:00 /usr/local/apache/bin/httpd
- 다음과 같이 테이블을 만들고 자료를 입력합니다.
[root@localhost bin]# ./mysql
Welcome to the MySQL monitor. Commands end with ; or \g
mysql> show databases; // 데이터베이스 보기
mysql> use test; // test 데이터베이스 선택
mysql> create table apm_test ( // 테이블 만들기
-> id varchar(8),
-> pass varchar(8)
-> );
Query Ok, 0 rows affected <0.00 sec>
mysql> insert into apm_test values("kimjs", "123456"); // 데이블에 자료 입력
Query OK, 1 row affected <0.00 sec>
mysql> quit
- /usr/local/apache/htdocs/db_test.php 라는 파일을 아래와 같이 작성하여 생성합니다.
mysql_connect("localhost","test","");
$result = mysql_db_query("test","select id, pass from apm_test");
while ($row = mysql_fetch_object($result)) {
echo $row -> id;
echo " ";
echo $row -> pass;
}
mysql_free_result($result);
?>
웹 브라우저를 실행한 다음과 주소란에 입력한 후 엔터를 치면 [결과] 처럼 나오면 성공입니다.
http://localhost/dbtest.php
[결 과]
kimjs 123456
httpd와 mysqld 데몬 실행 배치 파일 작성
시스템이 부팅된 후 매번 apache와 mysql 데몬을 각각 실행하여 서버를 구동해야 합니다.
이러한 불편함을 막기 위해 일괄적으로 두 개의 데몬을 실행시킬 수 있는 배치 파일을 작성
하는 방법과 아예 처음 부팅되는 시점에서 데몬을 자동으로 시작시키는 방법에 대해서 알아
보겠습니다.
- 배치 파일을 작성법
시스템 부팅후 apm.start 파일을 실행하면, httpd와 mysqld 데몬을 실행시키주는 배치 파일을
다음과 같이 만듭니다.
[kimjs]pwd [Enter] // kimjs 사용자의 홈 디렉토리에 배치 파일 작성
/home/kimjs
[kimjs]# vi apm.start [Enter]
#!/bin/sh
/usr/local/mysql/share/mysql/mysql.server start
/usr/local/apache/bin/apachectl start
:wq
[kimjs]# chmod 755 apm.start [Enter]
# killall mysqld [Enter] // mysql 데몬을 모두 죽임
# killall httpd [Enter] // apache 데몬을 모두 죽임
# ./apm.start // 배치 파일 실행
# ps -ef | grep mysql // 데몬 실행 여부 확인
# ps -ef | grep httpd
- 부팅시 자동으로 데몬 실행시키는 방법
Windows에서 자동 배치파일과 비슷한 기능을 제공하는 파일이 /etc/rc.d/rc.local이라는 파일이
다. 그럼 여기서 rc.local 파일에 부팅시 자동으로 실행시킬 데몬을 등록하는 방법과 실행과정을
알아보겠습니다.
# vi /etc/rc.d/rc.local [Enter] // apache와 mysql 데몬을 띄우는 명령문 추가
;
/usr/local/mysql/bin/safe_mysqld & ☜ 파일 맨 끝에 2줄 추가(mysql 데몬을 백그라운드로 실행)
/usr/local/apache/bin/apachectl start
:wq
# reboot [Enter] // 시스템 재 부팅
# ps -ef | grep httpd // 재 부팅 이후 데몬 실행 확인
# ps -ef | grep mysqld
※ 위와 같이 시스템이 부팅되면서 특정한 데몬을 자동으로 띄우는 방법은 크게 두 가지로
나누어지는데
1) 소스로 새롭게 설치한 데몬은 '/etc/rc.d/rc.local'에 데몬 실행에 관한 명령문을 추가하여
설정하며
2) 기존에 RPM 팩키지로 설치된 데몬은 '/etc/rc.d/init.d/' 디렉토리에 보관되어 있어 있기
때문에 'Control-panel &' 명령어를 실행한 후 Runlevel Editor 버튼을 클릭하여 해당 데몬을
선택하고 'Add' 버튼을 클릭하여 추가할 수 있습니다.