이 문서는 2004년도에 기말 과제로 작성된겁니다.
1. 리눅스 기본제공 APM rpm 사용 구동하기
리눅스 전부설치시 사용하기 (RPM으로 APM 설치되어있음)
리눅스 설치시 전부설치를 하면 APM이 설치되어있습니다
우선 아파치가 설치된상태입니다
#rpm -qi httpd 로 버전을 봅시다
버전 2.0.40입니다.
아파치를 실행합니다
#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> show databadses; 명령어를 치면 기본으로 제공하는 데이타베이스가 보입니다.
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파일을 확인해봅니다.
좀전에 insert 한 데이터들이 잘 나오는것을 확인할 수 있습니다.
이상으로 리눅스 기본 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 |