리눅스 서버 구축기 4_1 - Apache2+MySQL+PHP5

[Things I Like/Computing]
사용자 삽입 이미지

서버로서 가장 기본적인 것이 웹서버로서의 동작이다.
이를 위해서는 HTTP 데몬인 Apache2 가 가장 기본적으로 필요하며,
여기에 추가로 데이터베이스 서버인 MySQL이나 Oracle이, 그리고 Server Side 언어인 PHP도 필요하다.

오늘은 데비안에(Base System과 WebServer 항목만 선택하고 설치한 경우)
마피아(MySQL+PHP+Apache 의 앞글자를 줄여서 일컫는 말)를 설치하고 동작시키는 과정을 기록할랜다.


1. Installing Package

필요한 패키지들은 다음과 같다.

apache2
apache2.2-common
libapache-mod-php5

php5
php5-common
php5-gd
php5-mysql

mysql-server
libdbd-mysql-perl
mysql-client-5.0
mysql-common
libdbi-perl

일단 관리자 계정으로 로그인 한 뒤에 위의 파일들중에 설치된 것이 있나 찾아보자

아파치는?

debian:/home/me# dpkg -l | grep apache
ii  apache2-doc                       2.2.3-4+etch4                      documentation for apache2
ii  apache2-mpm-prefork          2.2.3-4+etch4                      Traditional model for Apache HTTPD 2.1
ii  apache2-utils                      2.2.3-4+etch4                       utility programs for webservers
ii  apache2.2-common           2.2.3-4+etch4            Next generation, scalable, extendable web se
ii  libapache2-mod-perl2              2.0.2-2.4                 Integration of perl with the Apache2 web ser
ii  libapache2-mod-php5       5.2.0-8+etch10         server-side, HTML-embedded scripting languag
ii  libapache2-mod-python             3.2.10-4            Apache 2 module that embeds Python within th

위의 패키지만 있어도 동작은 하지만 apache2 패키지를 추가로 설치해주자
debian:/home/me# aptitude install apache2
Reading package lists... Done
Building dependency tree... Done
Reading extended state information
Initializing package states... Done
Reading task descriptions... Done
Building tag database... Done
The following NEW packages will be installed:
  apache2
0 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 41.4kB of archives. After unpacking 65.5kB will be used.
Writing extended state information... Done
Get:1 http://ftp.kr.debian.org  etch/main apache2 2.2.3-4+etch4 [41.4kB]
Fetched 41.4kB in 2s (15.0kB/s)
Selecting previously deselected package apache2.
(Reading database ... 21223 files and directories currently installed.)
Unpacking apache2 (from .../apache2_2.2.3-4+etch4_all.deb) ...
Setting up apache2 (2.2.3-4+etch4) ...

aptitude install 명령뒤에는 정확한 패키지명을 명시해줘야 하는데
패키지명을 찾으려면 aptitude search 검색어 로 찾으면 된다.

같은 방식으로 다른 패키지들도 전부 설치해준다.

apache2 같은경우 별다른 configuration 없이도 설치한뒤에 http://IP Address 로 접속을 하면
동작여부를 확인할 수 있다. It Works! 라고 뜨면 성공이다.

설치중에 데비안 에치 설치 시디를 요구하는 경우도 있는데
직접 시디를 넣든지 데비안 iso 이미지를 업로드해서 다음과 같은 명령으로 마운트 시키자
#mount debian-40r3-i386-netinst.iso /cdrom -t iso9660 -o loop

2. Configuration

모든 파일이 설치되었으면 이제 각 패키지간에 연동할 수 있도록 설정해줄 차례이다.

Apache2 부터 시작한다.
데비안에서 각종 설정파일은 대부분 /etc 안에 존재를 하며 Apache2 도 예외는 아니다.
debian:/home/me# vim /etc/apache2/apache2.conf
위의 명령으로 파일을 열어서
#AddHandler cgi-script .cgi
부분의 주석 '#'을 제거하자.

그뒤에 /etc/apache2/sites-available/default 파일을 열어서 ExecCGI를 추가해주고, 리다이렉션 부분은 주석처리 한다.
Options Indexes FollowSymLinks MultiViews ExecCGI
#RedirectMatch ^/$ /apache2-default/

사용가능한 확장자를 추가하기 위해 /etc/apache2/mods-enabled/php5.conf 를 열어서
확장자를 추가해준다. inc, html, htm 정도면 일반적으로는 문제없다.
  AddType application/x-httpd-php .php .phtml .php3 .html .htm .inc
다음으로 아파치 데몬을 재시작 해준다.
debian:/etc/apache2# /etc/init.d/apache2 restart
Forcing reload of web server (apache2)...apache2: Could not reliably determine the server's fully qualified domain name, using x for ServerName
httpd (no pid file) not running
apache2: Could not reliably determine the server's fully qualified domain name, using x for ServerName
.


여기까지 했으면 잘 돌아가는지 테스트를 해보자.
debian:/etc/apache2# vim /var/www/phpinfo.php
위의 명령을 통해서 웹문서 루트에 다음 내용을 가진 phpinfo.php 파일을 만들어주고,
<?
phpinfo();
?>
웹으로 접속을 해보자 http://서버아이피/phpinfo.php
접속했을때 php의 정보를 보여주는 웹문서가 보이면 성공이다.

more..

MySQL에 사용자와 데이터베이스를 추가하는 방법은 다음에...
Creative Commons License
Creative Commons License
2008/03/15 10:20 2008/03/15 10:20

::: 사람과 사람의 교감! 人터넷의 첫 시작! 댓글을 달아주세요! :::

리눅스 서버 구축기 3 - 처음부터 다시! Brand New!

[Things I Like/Computing]
사용자 삽입 이미지

사용자 삽입 이미지

서버를 유치해주던 PC방의 사장이 컴퓨터 3대가 필요하다는 바람에..
얻어쓰던 서버를 다시 내주고..

친구가 인맥을 통해 얻은 Prescott 630(3 Ghz, 2MB L2 Cache, HT Support)와 메인보드에 피시방에서 남는 파워와, 램을 조합하고 내가 가지고 있던 160GB하드와, 1기가 단면램(이녀석은 단면이라서 기존에 가지고 있던 것들과 듀얼채널 구성이 되질 않아 애물단지였다)을 조합하여 리눅스 박스가 될 머신을 한대 조립했다..

Prescott 600 Series

more..



처음에는 그냥 대충 조립해서 상자에 주워담아(?) 놓고 쓰려고 했지만..
이건 프레스캇을 만만하게 본 우리의 실수였다..

몇년동안 쓰면서 청소를 한번도 안한것인지..
쿨러에 바람들어갈틈 없이 먼지가 끼어있어서 CPU와 방열판을 분리해서 먼지를 제거하고
다시 조립을 하는 도중에 서멀 그리스가 없어서 그냥 붙였다..

CMOS온도 검사결과.. 98도...
우리는 이당시에 이렇게 생각했다.. "좀만 높으면 물도 끓겠는걸 ㅋㅋㅋ"
작동에 문제가 있을거라곤 생각도 안하고 그냥 켜져있으니까 됐다 하면서
리눅스 설치와 기타 기본 설정을 다 마쳤다..

집에와서 간간히 이것저것 기본적인 서버로 쓰는중에..
두어번 정도 컴퓨터가 네트워크상에서 누락이 되는 현상이 발생했다..
이제서야.. 열의 심각함을 인지했다(이런 아둔한 녀석 같으니..)
90도는 좀 높은게 아니라 Extremely 하게 높은 온도였던 것이다..

인텔의 레퍼런스를 보니 정상 동작이 보장되는 온도는 60, 70도가 한계였다.. OTL

이제서야 서버에게 집을 마련해 줘야겠다는 생각을 하고 이번주 월요일에
용산에 달려가서 1.4만원 짜리 저가 케이스를 사다가 서멀그리스까지 발라준뒤
다시 조립을 하니 온도는 45도에 머물렀다.. 게다가 깔끔하니 잘 정돈되니 기분도 조쿠나~

인텔이 현재로서는 AMD를 강하게 눌러대고 있지만.. 개인적으로는 AMD제품만 고집하는 지라.. 평소라면 인텔에 별로 관심을 안두지만.. 저가형 싱글코어 시피유로 서버를 만드는 경우에는 인텔의 Hyper-Threading 기능은 정말 유용하다..

리눅스에서는 아예 SMP에 해당하는 커널이 설치가 된다..
한번에 여러 프로세스를 관리하구 유지해야하는 서버에서는 상당히 파워풀한 능력을 뽑아낸다.

뭐 서버 안정화까지 시켰고.. 남의 머신이 아닌 공동 소유의 머신이 생겼고 하니..
계속 미뤄오던, 단순한 게임서버만이 아닌 본격적인 서버로의 탈바꿈을 시작하기로
생각했다.. 뭐 지금 쓰는 내용은 한참 전의 내용이고.. 보면 알겠지만.. 이 글이 쓰이는 이 서버도 프레스캇의 힘을빌어 돌아가는 중이다..

DNS(Domain NameServer)와 Exim4(Mail Server), APM(Apache2+PHP5+MySQL)등의 설치와 설정 과정을 겪으면서 수없이 퍼야했던 삽질에 대한 기록이 앞으로 이어질 예정이다..

개인적으로는 삽질이라고 표현하고 싶지만.. 어찌됐든.. 학습이기도 했으니.. 기록으로 남겨서 다음에 참고하려는 목적과.. 다른 누군가가 앞서 지나간 이의 발자취(삽질의 흔적이 곳곳에 남아있는...)를 통해 배울수 있다는 것도 좋으니까.. Good is Good...
Creative Commons License
Creative Commons License
2008/02/12 23:13 2008/02/12 23:13

::: 사람과 사람의 교감! 人터넷의 첫 시작! 댓글을 달아주세요! :::