이 문서는 2004년도에 기말 과제로 작성된겁니다.
1. 리눅스 기본제공 APM rpm 사용 구동하기
리눅스 전부설치시 사용하기 (RPM으로 APM 설치되어있음)
리눅스 설치시 전부설치를 하면 APM이 설치되어있습니다
우선 아파치가 설치된상태입니다
#rpm -qi httpd 로 버전을 봅시다
아파치를 실행합니다
#httpd -k start
웹 브라우저에서 확인 : 주소창에 http://localhost/를 입력합니다.
아파치 홈디렉토리인 /var/www/html로 이동하여 index.html를 생성해봅니다
index.html
<html><body><center>
<br><br><br>
<font size=6>기본적으로 설치된 아파치 서버입니다</font>
</center></body></html>
해결방법은 설정파일(RPM설치시 : /etc/httpd/conf/httpd.conf, 일반설치시 : /etc/httpd.conf)에서
AddDefaultCharset ISO-8859-1 을
AddDefaultCharset EUC-KR 로 바꾼후
아파치 리스타트(httpd -k restart)하시면 됩니다.
이제 웹브라우저를 refresh하면 잘나옵니다
캐시된 페이지와 웹 페이지의 비교를 페이지를 열 때마다 에 체크해주세요.
(전 mozilla 1.2.1 을 사용 합니다)
이제 php가 되는지 한번 해봅시다.
우선 설치/버전 확인합니다. (#rpm -qi php)
4.2.2버저이 설치되어있군요
php가 제대로 동작하는지 보기위해 홈디렉토리(/var/www/html)에 index.php를 만듭니다.
<html><body><center>
<br><br><font size=6>간단한 php문 테스트</font><br>
<?
$str = "hi man, am aaa";
echo("$str");
echo "<br>";
echo $str;
?>
</center></body></html>
웹브라우저에선 http://localhost/index.php 하면 나오겠죠
php설정이 안되있다면 php코드(<? ... ?>)도 같이 나올테죠
함 봅시다~
잘나오네요.. php설정까지 잘 되어있습니다.
그럼 이제 mysql 테스트.
설치정보를 확인합니다.(#rpm -qi mysql)
버전은 3.23.54a네요
rpm으로 설치되어있기때문에
/etc/init.d/mysqld start 하면 mysql이 시작됩니다
보통 /usr/bin/safe_mysqld --user=root & 로 실행시키면 대부분 mysql.socket에 대한 에러가 나옵니다.
이는 소켓파일(/var/lib/mysql/mysql.sock 혹은 /tmp/mysql.sock)과 폴더에대한 소유권한이
mysql에 없기때문으로 소유권과 그룹을 mysql.mysql로 바꿔줘야 합니다.
하지만 /etc/init.d/mysqld start로 하면 소켁파일에 대한 소유권한을 자동으로 바꿔줍니다
mysql에 연결합니다. (#mysql -u root -p )
mysql DB는 기본적으로 제공하는 DB이니 지우면 안됩니다.(사용자 계정 등에 대한정보 등..)
그럼 test DB로 접속합시다
mysql> use test; 로 test DB로 들어갑니다.
mysql> show tables; 로 현재 DB에 들어있는 table을 확인합니다.
Empty set(0.00sec) 이라고 나옵니다.
현재 생성된 테이블이 없고 show tables; 명령어를 실행하는데 걸린 시간이 0.00초라고 나옵니다.
아무것두 없으니 역시 빠릅니다.
DB작업에 대한 간단한 명령어로는
DB생성 : mysql> create database DB명 ( or % mysqladmin -u root -p create DB명 )
DB삭제 : mysql> drop database DB명
DB사용 : mysql> use DB명 (사용할 default database 선택)
DB변경 : mysql> alter database db명 DEFAULT CHARACTER SET charset (4.1이상에서만 가능)
test용으로 aaa 테이블을 만듭니다.
mysql> create table aaa(
-> id int,
-> name varchar(30),
-> memo varchar(100)
-> );
Query OK, 0 rows affected (0.00 sec)
생성이 잘 됐나 확인합니다.
mysql> desc aaa;
+-------+------------+------+-----+-------------+-----+
| Field | Type | Null | Key | Defaul | Extra |
+-------+------------+------+-----+-------------+-----+
| id | int(11) | YES | | NULL | |
| name | varchar(30) | YES | | NULL | |
| memo | varchar(100) | YES | | NULL | |
+-------+------------+------+-----+-------------+-----+
3 rows in set (0.01 sec)
웹에서 출력을 위해 자료를 몇개 입력하겠습니다.
INSERT INTO aaa(id, name, memo) VALUES (1,'who','나야나~');
INSERT INTO aaa(id, name, memo) VALUES (2,'누구세요','저도 잘 몰라요.어쨌든 방가~');
INSERT INTO aaa(id, name, memo) VALUES (2,'넌 누구냐','root님이시다 ~');
이제 quit 명령어로 mysql을 종료합니다.
mysql> quit
아까 만들었던 index.php를 수정합니다.
다음과 같이 수정합니다.
<html><body><center>
<br><br>
<font size=6>간단한 php문 테스트</font><br>
<?
$db_host = "localhost"; $db_id = "root"; $db_passwd = ""; $db_database = "test";
$dbconn = mysql_connect("$db_host","$db_id","$db_passwd")
or die("데이터베이스 연결에 실패하였습니다.");
$status = mysql_select_db($db_database,$dbconn);
$query = "select * from aaa";
$result = mysql_query($query,$dbconn);
$rows = mysql_num_rows($result);
?>
<table width=400>
<tr> <td>id</td><td>name</td><td>memo</td> </tr>
<?
for ($i=0; $i<$rows; $i++) {
$id = mysql_result($result,$i,0);
$name = mysql_result($result,$i,1);
$memo = mysql_result($result,$i,2);
?>
<tr><td><?echo($id);?></td><td><?echo($name);?></td><td><?=$memo?></td></tr>
<? } ?>
</table></center></body></html>
웹브라우저에서 index.php파일을 확인해봅니다.
이상으로 리눅스 기본 APM rpm을 구동해봤습니다. 이제 rpm을 지우고 소스를 받아 설치해봅니다.
2. 기본설치된 APM rpm 제거후 컴파일 설치
기존 APM rpm을 삭제합니다.
삭제하기 위해서 APM프로세서가 동작중인지 확인하고 중단시킵니다.
# ps -aux | grep apache
# ps -aux | grep mysql
# ps -aux | grep php
# killall httpd
이제 설치된 rpm을 지웁니다.
# rpm -e --nodeps apache
# rpm -e --nodeps mysql
# rpm -e --nodeps php
--nodeps는 강제삭제 옵션입이다.(의존성 무시)
APM을 설치하기위해
http://www.apache.org/
http://www.php.net/
http://www.mysql.com/
에서 리눅스9용 소스파일을 다운받습니다.
http://www.apache.org/ 에서 아파치를 다운받습니다.
전 apache_1.3.33.tar.gz 을 받았습니다.
http://www.mysql.com/ 에서 mysql을 다운받습니다.
전 mysql-4.1.8.tar.gz(소스파일) 을 다운받았습니다.
http://www.php.net/ 에서 php 를 다운받습니다.
전 php-5.0.3.tar.bz2 을 다운받았습니다.
최신버전을 다 받았습니다.
이제 압축을 풀고 설치에 들어갑니다.
대게 설치파일은 source, rpm, binary로 3가지를 제공합니다.
리눅스 설치시에 rpm으로 설치되었고 rpm설치는 쉬우니 rpm은 안받고..
학습이 목표이기때문에 make도 해볼겸 source로 받았습니다.
===== MYSQL 설치 =====
1. mysql 압축파일을 풀고 /usr/local/ 폴더로 옮깁니다.
# tar xvfz mysql-4.1.8.tar.gz
# mv ./mysql*/ /usr/local/mysql/
2. /usr/local/mysql/ 폴더로 이동합니다.
# cd /usr/local/mysql
3. 환결설정을 위해 configure를 실행합니다.
prefix는 프로그램이 설치된 디렉토리를 지정하고
--with-charset 옵션은 DB에서 사용할수 있는 언어입니다.
한글 지정을 안하면 한글이 깨집니다.
# ./configure --prefix=/usr/local/mysql --with-charset=euc_kr
4. make 명령어를 실행 합니다.(컴파일)
# make
직접 해본결과 2가지의 에러와 만났습니다.
- 첫번째 에러 메세지 :
make: *** No targets specified and no makefile found. 멈춤."
해결 :
이런 메세지가 나온다면 우선 바이너리 파일을 받은건 아닌지 확인합니다.
바이너리 파일이라면 mysql폴더 안에 INSTALL-BINARY이란 파일이 있을겁니다.
이 파일을 실행하여 설치하던가 아니면 mysql사이트에서 새로 소스 파일을 다운 받아야합니다.
- 두번째 에러 메세지 :
......
checking whether build environment is sane... configure : error :
newly created file is older than distributed files!
check your system clock
해결 :
첫번째 에러를 해결한후 make하니 이렇게 나오는군요.
이는 시스템 clock 시간이 받은 파일이 패키징 된 날짜보다 과거이기 때문에
발생하는 에러입니다.
이럴땐 수업시간에 배운 "# rdate -s time.bora.net && clock -w" 명령어로
시스템 시간을 동기화 시켜준후 다시 make 하시면 정상적으로 컴파일 됩니다.
정상적으로 수행됐다면 마지막에
"Thank you for choosing MySQL!" 메세지가 출력됩니다.
5. make install 명령어를 실행합니다.(설치)
# make install
make했으니 이제 설치합니다.
6. mysql_install_db 명령어로 mysql의 기본 데이타베이스를 생성합니다.
# ./scripts/mysql_install_db
사용자 정보등 mysql의 기본정보들을 담는 DB를 생성해줍니다. 딱 한번만 실행합니다.
7. 백그라운드로 mysql 데몬을 실행합니다.
# ./bin/mysqld_safe &
이전버전에선 safe_mysqld였는데 safe_mysqld로 바꼈네요..
8. 정상적으로 작동하는지 mysql에 접속해봅니다.
# ./bin/mysql mysql
- 에러 :
" #./safe_mysqld & " 명령실행시 mysqld ended가 나오는 경우가 있습니다.
정상적으로 실행되지 않고 종료됐음을 나타냅니다.
혹은 mysql실행하면 아래와 같은 에러가 나올때도 있습니다.
“ ERROR 2002 (HY000): Can't connect to local MySQL server through
socket '/tmp/mysql.sock' (111) “
해결 :
이럴땐 우선
# groupadd mysql 로 mysql 그룹을 만들어주고
# useradd -g mysql mysql로 mysql 사용자를 만들어줍니다.
이미 생성되어있다고 나오면 안하셔도 됩니다.
그후에
# chown -R root /usr/local/mysql/ 과
# chown -R mysql /usr/local/mysql/var 명령어로
권한을 줍니다. 이리하시면 에러가 해결됩니다.
/usr/local/mysql/var 는 mysql의 데이터가 쌓이는 폴더입니다.
9. mssql 설치를 완료했습니다.
접속해보니 잘되는군요. ./scripts/mysql_install_db명령어에 의해 생긴
기본 데이터 베이스 mysql과 test도 잘 있습니다.
===== APACHE 와 PHP 설치 =====
1. apache 압축 파일을 풀고 /usr/local/ 폴더로 옮깁니다.
# tar xvfz apache_1.3.33.tar.gz
# mv ./apache*/ /usr/local/apache/
2. php 압축 파일을 풀고 /usr/local/폴더로 옮깁니다.
# tar xvfj php-5.0.3.tar.bz2
# mv ./php*/ /usr/local/php/
3. apache 폴더로 이동합니다.
# cd /usr/local/apache
4. configure
# ./configure --prefix=/usr/local/apache --enable-module=most --enable-shared=max
apache의 경로와 dso 모드로 설치를 뜻합니다.(dso모드가 확장이 쉬움)
5. 컴파일 합니다.
# make
6. 설치합니다.
# make install
설치가 잘돼었군요.
apache 설정파일인 httpd.conf의 경로와 아파치 실행방법을 예의바르게 보여주고 있습니다.
7. php 폴더로 이동합니다.
# cd /usr/local/php
8. configure
# ./configure --with-apxs=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql
mysql의 경로와 apache의 apxs 파일 경로를 설정해줍니다.
이때 apache의 conf에 자동으로 모듈을 올려줍니다.
php configure도중 에러가 발생했습니다.
- 에러 메세지 :
.....
onfiguring extensions
checking whether to enable LIBXML support... yes
checking libxml2 install dir... no
configure: error: libxml2 version 2.5.10 or greater required.
해결 :
libxml2 가 필요하다고 나오는군요.. 2.5.10 버전
http://xmlsoft.org/sources/ 에서 다운받을수 있습니다.
php 5.0.3을 설치하려면 libxml2가 필요한것 같습니다.(5.0부터 적용)
http://xmlsoft.org/sources/에서
libxml2-2.6.16-1.i386.rpm
libxml2-devel-2.6.16-1.i386.rpm
libxml2-python-2.6.16-1.i386.rpm
위 3개를 다운 받습니다. (php 5.0 부턴 xml라이브러리를 설치하셔야 합니다.)
rpm을 설치합시다.
# rpm -Uvh libxml2*
이제 libxml2도 깔았으니 다시 configure 해줍시다.
이제 성공적으로 설치가 되었습니다.
Thank you for using PHP랍니다. 에러 안나서 저도 너무 감사했습니다.
9. 컴파일 합니다.
# make
10. 설치 합니다.
# make install
11. php.init-dist파일은 php에 대한 기본 설정 파일입니다.
이파일을 /usr/local/lib/ 폴더에 php.ini로 복사하여 php설정이 적용되도록 합니다.
# cp php.ini-dist /usr/local/lib/php.ini
12. 이제 설치가 다 되었습니다.
어렵습니다. 여기까지 오는데 make만 20번 이상 한것 같습니다.
최신버전이기 때문에 그런걸까요? 설치 순서도 다른분들이 말하는거랑 틀린부분도 많고 어렵군요.
php가 제대로 구동하도록 apache폴더에 conf안에 있는 httpd.conf 파일에 다음을 추가합니다.
<IfModule mod_dir.c>
DirectoryIndex index.html index.php
</IfModule>
# DirectoryIndex는 각 폴더에 우선적으로 보여줄 파일입니다.
AddType application/x-httpd-php .php .htm .html
AddType application/x-httpd-source .phps
13. apache를 실행시켜 보겠습니다.
# /usr/local/apache/bin/apachectl start
이상으로 APM 설치가 완료되었습이다.
웹브라우저로 확인해보겠습니다.
mozilla를 실행시켜 주소창에 http://localhost/를 적습니다.
![]() | ![]() |
아직 index.html이나 index.php 파일을 안만들었기에 이렇게 나오는군요.
안되는줄 알고 깜짝 놀랬습니다.(왼쪽 그림)
이후는 처음에서 해보았던 php와 mysql 테스트와 동일합니다.(오른쪽 그림)
잘되는군요.
'가지가지' 카테고리의 다른 글
UDP (0) | 2006.06.19 |
---|---|
Motor Position (Modeling, PID, Root Locus) (0) | 2006.06.16 |
Qt 실행시 "세그멘테이션 오류" 잡기 (0) | 2006.05.23 |
linux에서 DHCPd사용시 인터넷이 안될때 설정 (0) | 2006.05.23 |
Sendmail 사용 - 2004년 2학기 (0) | 2006.05.23 |
NTFS Mount (0) | 2006.05.22 |
Ethereal TCP/UDP 3,4,5 (0) | 2006.05.21 |
Ethereal TCP/UDP 1,2 (0) | 2006.05.21 |