설치를 하기전에 먼저 리눅스에서는 프로그램을 설치하는 방법은 크게 3가지가 있습니다.
1. RPM :Redhat Package Manager(*.rpm)
2. Source (*.tar.gz)
3. Binary(*.tar.gz)
* 프로그램 설치는 root 만 할 수 있습니다.
1. RPM
초보자들이 쉽게 프로그램을 설치하라고 RedHat에서 만들 자동 설치 프로그램입니다. 윈도우의 setup과 비슷하지요.
설치: rpm -Uvh packagename.rpm
삭제: rpm -e 설치된 packagename
설치의 경우 옵션은 -ivh, Uvh, Fvh를 가장 많이 사용합니다.
i는 인스톨 하는 명령어이고 U, F는 업데이트 명령어 입니다.
U는 프로그램이 설치되어 있으면 업데이트되고 없으면 인스톨됩니다.
F는 업데이트만 합니다. h는 인스톨 될때 #로 인스토 되는 정도를 표시해줍니다.
* 일반적으로 리눅스를 설치할때 설치되는 프로그램이 모두 RPM 버전입니다.
그러나 각각 따로 프로그램을 설치할 경우나 삭제할 경우는 프로그램 간의 의존성 문제 때문에 좀 불편합니다.
그래서 전문가들은 소스를 가지고 설치하지요!!
2. 소스
소스는 말그대로 *.c등의 프로그램 소스가 그대로 있고 이것을 컴파일 하여 설치하는 방법입니다. 그래서 리눅스나 유닉스에서는 일반적으로 다음과 같은 3단계를 걸쳐서 인스톨합니다.
1) configure [-옵션]
2) make
3) make install
* []의 의미는 그안의 것은 써도 되고 안써도 된다는뜻.
3. 바이너리
바이너리는 벌써 컴파일이 되어 있는 것을 말합니다. 그래서 내가 원하는 디렉토리에 풀고 간단한 환경설정을 먼저 하거나, 아니면 바로 프로그램을 실행하면 쉽게 프로그램을 실행할 수 있는 프로그램입니다. 그러나 이역시 의존성 문제가 있을 경우는 바로 실행할수 없는 경우가 있습니다.
따라서 우리는 여기에서 소스를 가지고 설치하도록 하겠습니다.
먼저 일반적으로 아파치 웹서버만 설치하도록 하지요.
www.apache.org->HTTP Server->download에 가시면 소스 1.3.20이 있네요. apache_1.3.20.tar.gz을 /usr/local 위치에 다운로드 받습니다.
1. tar -zxvf apache_1.3.20.tar.gz //압출풀기
2. 그러면 /usr/local/apache_1.3.20 디렉토리 생성
3. cd apache_1.3.20
4. ./configure --prefix=/usr/local/apache
// /usr/local/apache디렉토리에 프로그램을 설치한다.
5. make
6. make install
7. cd /usr/local/apache/bin
8. ./apachectl start //아파치 데몬 실행
9. 웹브라우져를 실행. http://localhost 또는 http://URL 또는 http://IP를 입력하면 apache logo와 함께 메인 화면이 뜨게 됩니다.
다음 강좌에서는 PHP와 MYSQL, GD library, Freetype Library를 함께 설치해보록하지요.
이번 강좌에서는 아파치 웹서버를 실제 사용하기 위해서 PHP 모듈과 MYSQL, GD library, Freetype Library를 함께 설치해 보도록 하겠습니다.
먼저 설치를 시작하기 전에 설치할 프로그램의 용도를 알아보도록 하지요.
PHP는 웹 서버에 내장되어 기존의 CGI의 형식을 벗어나 따로 프로세스를 만들지 않고 빠르게 움직이는 서버사이드 HTML 임베디드 스크립트언어입니다(SSS: Server Side Script). 우리가 XCGI(eXtended Common Gateway Interface)라고 부르기도 하지요. MySql은 리눅스와 유닉스에서 현재 널리 사용되고 있는 무료 데이터베이스입니다. 윈도우용도 있지만 윈도우용은 세어웨어 버전입니다. 기능도 매우 강력하여 많은 사람들에게 사랑받고 있는 데이터베이스입니다. GD 라이브러리는 PHP 프로그래밍을 할 때 이미지 프로세싱을 지원하기 위한 라이브러리로 Gif, Jpg, Png와 같은 그림 파일 포맷을 지원합니다. 그러나 1.5버전이후부터는 Gif의 라이센스문제 때문에 Gif는 지원하지 않고 있습니다.
Freetype 라이브러리는 PHP에서 이미지 프로세싱을 할 때 트루타입 글꼴을 지원하기 위한 라이브러리입니다.
자, 이제 프로그램을 설치해볼까요? 설치 순서는 다음과 같습니다.
1. Mysql
2. Freetype 라이브러리
3. GD 라이브러리
4. apache와 PHP 동시 설치
모든 프로그램을 /usr/local/ 로 다운로드 합니다.
mysql은 http://www.mysql.com에서 구할 수 있습니다.
1. tar -zxvf mysql-3.23.36.tar.gz
2. cd mysql-3.23.36
3. ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --with-charset=euc_kr
// prefix는 프로그램을 설치할 위치를 설정하는 옵션입니다. localstatedir은 데이터베이스 파일을 어디에 만들것인가를 설정하는 것입니다. 만약 지정하지 않으면 자동으로 temp파일을 생성합니다. --with-charset은 영어 이외의 지원하고자 하는 언어를 설정하는 것입니다. euc_kr은 한국어 지원이지요.
4. make
5. make install
6. cd ../mysql
7. ./bin/mysql_install_db //data 파일을 생성하여 데이터베이스 파일을 생성합니다.
자 이제 설치가 끝났군요. 실행은 어떻게 하냐구요? 이렇게 하지요.
8. ./bin/safe_mysqld & // &는 프로그램을 background로 실행하라는 뜻입니다.
이번에는 freetype 라이브러리를 설치해 볼까요? http://www.freetype.org에서 구할 수 있습니다.
1. tar -zxvf freetype-1.3.1.tar.gz
2. cd freetype-1.3.1
3. ./configure
4. make
5. make install
GD 라이브러를 설치하기 위해서는 다음과 같은 부가적인 라이브러리가 필요합니다.
GD 라이브러리는 http://www.boutell.com/gd에서 구할 수 있습니다.
* libpng (png 포맷을 지원하기 위한 라이브러리로 기본적으로 리눅스에 포함되어 있다.)
* zlib (기본적으로 리눅스에 포함되어 있다.)
* jpeg-6d (http://ftp.uu.net/graphics/jpeg/에서 구할 수 있다.)
1. tar -zxvf jpegsrc.v6b.tar.gz
2. cd jpeg-6b
3. ./configure
4. make
5. make install
6. cd ..
7. tar -zxvf gd-1.8.3.tar.gz
8. cd gd-1.8.3
9. makefile에서
CFLAGS=-O -DHAVE_JPEG
LIBS=-lm -lgd -lpng -lz -ljpeㅎ
를 수정한다.
10. make
11. make install
12. cp *.h /usr/local/include/
13. cp *.lib /usr/local/lib
자 이제 php와 아파치 웹서버를 설치할 준비가 끝났습니다
자~ 이제 PHP와 아파치를 설치해 볼까요?
지난 강좌를 되돌아보면 우리가 웹서버를 설치하기 위한 순서는 다음과 같습니다.
① mysql을 설치한다.
② gd와 FreeType 라이브러리를 설치한다.
③ Apache 웹 서버와 PHP를 동시에 설치한다.
④ Apache의 httpd.conf를 수정한다.
이번 강좌는 ③번 부터 시작합니다.
1. gzip -d apache_1.3.20.tar.gz
2. tar -xvf apache_1.3.20.tar
3. gzip -d php-4.0.5.tar.gz
4. tar -xvf php-4.0.5.tar
// 여기까지 설마 모르시는 분이 없으시겠죠? 압축 파일을 /usr/local에 푸는 겁니다.
5. cd apache_1.3.20
6. ./configure
7. cd ../php-4.0.5
8. ./configure --with-mysql=usr/local/mysql --with-apache=../apache_1.3.20 --with-gd=/usr/local --enable-track-vars=yes
// 첫번째 옵션은 mysql과 연결하기 위한 옵션으로 현재 mysql이 설치된 디렉토리를 나타냅니다. 두번째 옵션은 아파치의 위치를 알려주기 위한 것으로 현재 아파치 소스의 디렉토리 위치를 나타냅니다.
9. make
10. make install
11. cd ../apache_1.3.20
12. ./configure --prefix=/usr/local/apache --activate-module=src/modules/php4/libphp4.a
//아파치를 /usr/local/apache 디렉토리를 만들고 설치합니다. 그리고 아의 8 ,9 ,10번을 실행하면 아파치 디렉토리의 /src/modules에 php디렉토리가 생기고 그 안에 위와 같은 php라이브러리 모듈 파일이 생성됩니다. 따라서 아파치에서 PHP프로그래밍이 가능하게 하기 위해서는 반드시 이 모듈을 아파치에 삽입해야 합니다.
13. make
14. make install
15. cd ../php-4.0.5
16. cp php.ini-dist /usr/local/lib/php.ini
//php 환경 설정 파일을 lib 디렉토리에 카피합니다. 이파일은 php의 성능을 조절 할 수 있습니다.
17. /usr/local/apache/conf/httpd.conf에 다음 라인을 활성화 시킨다.
AddType application/x-httpd-php .php
//아파치는 php3과 php4를 모두 지원하도록 설계되었기 때문에 지금과 같이 PHP4를 설치 했으면 httpd.conf에서 위와 같이 php4와 관련된 곳만 찾아서 주석(#)을 제거합니다. 만약 php3부분도 주석 표시를 제거하면 동작이 되지 않을 수 도 있습니다.
18. apache 서버를 시작한다.
\"./apachectl start\"로 웹서버를 실행한다.
19. /usr/local/apache/htdocs/phpinfo.php 파일을 다음과 같이 작성한다.
phpinfo();
?>
20. 웹 브라우져에서 확인하세요. 제대로 동작된다면 php 설치가 제대로 된것입니다.
설치를 모두 끝마쳤습니다. 여러분 어떻습니까? 어렵지 않지요?
* 본 자료는 한컴리눅스 사용자 동호회에서 펀글입니다.
이번 강좌는 아파치 웹서버 옵션을 바꿀 수 있는 httpd.conf 파일에 대한 내용입니다.
이 파일은 /usr/local/apache/conf에 있습니다.
아파치 웹서버의 여러 기능에 변화를 주시려면 이 파일을 잘 수정하시면 많은 변화를 주실 수 있습니다. 옵션은 아주 많지만 자주 쓰는 내용만 알아보도록 하지요.
# ServerType is either inetd, or standalone.
ServerType standalone
서버의 타입을 지정하는 것으로 standalone은 httpd 데몬 프로세스가 사용자의
요청을 처리하는 것이고 inetd는 inetd 데몬 프로세스가 처리하게 하는 것입니다.
그러나 리눅스에서는 standalone 만 지원됩니다. 그리고 부하가 많이 걸리는 서버라면 standalone이 더 효과적입니다.
Timeout 300
데이터를 받고 보내는 타임아웃 시간을 설정합니다. 클라이언트의 요구와 대답에 걸리는 시간을 설정합니다. 이시간이 넘어가면 데이터의 전송을 중단합니다.
StartServers 10
아파치 웹서버가 동작하기 시작하면 기본적으로 자식 데몬을 만듭니다. 기본이 10개죠. 그래야만 웹서버가 많은 요구에 효과적으로 대답할 수 있으니까요.
MaxClients 150
동시에 접속할 수 있는 클라이언트 개수를 말합니다.
Port 80
시스템에 의해 미리 httpd를 위해 예약된 포트 번호는 80번이다. 0에서 1023
까지의 포트번호는 시스템에 의해 미리 예약되어 있다. 그 이상의 포트번호를
지정하여 일반사용자도 httpd을 설치, 운영 가능하다. http://www.kouh.net:8080/
등으로 사용할 수 있다. 참고로 telnet은 23번 ftp는 21번 입니다.
User nobody
Group nobody
웹서버 접근(실행) 권한에 대한 사용자 정의입니다. apache라고도 많이 설정합니다.
따라서 여러분의 리눅스의 각 계정을 보호하기 위해 각 계정의 디렉토리와 public_html 디렉토리의 권한을 '710'로 설정하고 그룹을 nobody로 설정하시면 웹서비스도 가능하고 디렉토리 보안도 됩니다. 정말 중요한 거지요!!!
ServerAdmin you@your.address
서버 관리자의 e-mail 주소를 지정한다. 서버에 문제가 발생했을 때 이 메일주소로 메일을 보내줍니다.
ServerRoot /usr/local/etc/httpd
서버의 Root 디렉토리를 지정합니다. 서버에 관련된 파일들이 저장되는 곳입니다. 다음의 로고 파일도 여기에 저장되지요.
ErrorLog logs/error_log
서버에서 발생하는 에러를 기록하는 로그 파일을 지정합니다.
TransferLog logs/access_log
서버에 대한 사용자들의 엑세스 정보를 기록하는 로그파일을 지정합니다.
잠시 쉬었다가 다음 섹션에서 계속 알아볼까요?
* 본자료는 한컴리눅스 사용자동호회에서 인용한 글입니다.
#ServerName new.host.name
서버의 도메인 네임을 지정하는 부분입니다. 자신의 서버가 도메인 네임을 가지지 않았다면
그냥 나두고 가졌다면 활성화 시켜주고 도메인 네임을 기입하면 됩니다. 아마도 정상적인
네트워크 설치를 하셨다면 주석을 지우실 필요가 없습니다.
DocumentRoot "/usr/local/apache/htodcs"
웹에서 html 파일을 제공하는 상위 디렉토리를 지정합니다.
UserDir public_html
nobody 권한의 아파치 프로세스가 홈 디렉토리에 접근할 수 있도록 허가 해주었을 때 사용
자의 홈 디렉토리에 만들어야할 디렉토리 이름입니다. 요즘은 www, html 등으로도 많이들
바꾸어 사용하고 있습니다.
#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps
이 부분은 앞에서 설명했지요? php를 사용하기 위한 부분입니다. php를 사용하시려면 이 부
분의 주석을 지워주셔야 합니다.
#ProxyRequests On
아파치 서버는 프락시 서버의 기능도 합니다. on으로 활성화 시켜주면 프락시 서버로 동작
합니다.
[출처] 리눅스 웹서버 구축|작성자 예감적중