2007. 1. 4. 15:32

데비안 패키지로 APM 설치하기

데비안 패키지로 APM 설치하기 #
데비안에서 A.P.M 설치 및 활용(http://debianusers.org/seminar/seminar2/apm_debian.txt): 이 페이지 아래에 붙여야할지 고민하다가 여기 적습니다. 이 링크는 소스패키지를 받은 후 패키지 빌드해서 설치하는 과정에 대해 설명되어 있습니다.



1. Apache + PHP + ?MySQL + GD 설치 #


1. apt-get install 이나 dselect 를 사용하여 다음 패키지들을 설치합니다.


apt-get install apache apache-common php4 php4-gd php4-mysql libdbd-mysql-perl libdbi-perl mysql-client mysql-server
2. apache 설치시에 apacheconfig 를 실행시키겠냐고 물어보는데, 기본적인 설정을 해주는 작업입니다. y를 눌러 기본값을 입력해 줍니다.

(혹시, 시드에서 위와 같이 설치하다가, 아래와 같은 sed 관련 에러를 발생시키면, sed의 한버전 낮은 것으로 수동 설치한다.

 Fetched 13.4MB in 59s (227kB/s)
Preconfiguring packages ...
Setting up sed (4.1.2-2) ...

No `START-INFO-DIR-ENTRY' and no `This file documents'.
install-info(/usr/share/info/sed.info): unable to determine description for `dir' entry - giving up
dpkg: error processing sed (--configure):
 subprocess post-installation script returned error exit status 1
Errors were encountered while processing:
 sed
E: Sub-process /usr/bin/dpkg returned an error code (1)

 

   # wget http://ftp.de.debian.org/debian/pool/main/s/sed/sed_4.1.2-1_i386.deb
 # dpkg -i sed_4.1.2-1_i386.deb
 
수동으로 sed 를 설치해준후 다시 APM 설치에 들어간다.

3. php4-gd , php4-mysql 를 설치시에는 gd.so 와 mysql.so 를 php.ini 에 포함시킬 것인지 물어보는데, y를 눌러 포함시킵니다.



4. mysql 설치시에는 mysql 제거시 db 파일들도 제거할 것인가를 물어봅니다. 디폴트는 no 입니다. 깨끗한 삭제를 원하면, yes 를 선택합니다. (혹시, 버전업시 데이타들이 지워질 우려도 있으므로 no를 선택하는 것이 좋습니다.)



2. Apache + PHP + ?MySQL 기본 설정 #


각종 파일 위치 및 기본 정보 #


Apache 설정파일         : /etc/apache/httpd.conf
웹문서루트              : /var/www
Apache 로그파일         : /var/log/apache
Apache 데몬 계정과 그룹 : www-data www-data
PHP 설정파일            : /etc/php4/apache/php.ini
MySQL data 파일 위치    : /var/lib/mysql

httpd.conf 설정 (Apache + PHP + CGI) #


1. php 연동



설정파일 중에서 아래부분의 주석을 풀어줍니다.


LoadModule php4_module /usr/lib/apache/1.3/libphp4.so
php 확장자가 가능하도록 주석을 풀고 확장자를 추가시킵니다.


AddType application/x-httpd-php .php .inc .php4 .html .htm  (원하는 확장자들을 추가하십시오)
AddType application/x-httpd-php-source .phps
2. CGI 사용 가능하게 하기



데비안 아파치에서는 기본적으로 httpd.conf 파일에서 cgi 설정을 하여도 보안상 문제로 웹문서루트가 아닌 일반 사용자 디렉토리에서는 cgi 사용이 불가능합니다. suEXEC 라는 프로그램을 사용하여 일반사용자의 cgi 사용을 막아놨기 때문입니다. 그래서 편법이지만 suEXEC 프로그램이 작동을 못하도록 /usr/lib/apache 밑에 있는 suexec 프로그램의 이름을 바꿉니다.
(보안상 좀더 확실한 방법을 하고 싶으신 분들은 아래 관련문서의 cgiwrap 을 사용하는 방법을 참고하세요.)






Options에 ?ExecCGI 를 추가하여 웹문서루트에서 cgi 를 작동하게 합니다.


<Directory /var/www/>

#
# This may also be "None", "All", or any combination of "Indexes",
# "Includes", "FollowSymLinks", "ExecCGI", or "MultiViews".
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
    Options Indexes Includes FollowSymLinks MultiViews ExecCGI
사용자 디렉토리 부분도 기존 설정부분을 주석(#)처리하고 웹문서루트와 동일하게 설정을 합니다.


<Directory /home/*/public_html>
Options Indexes Includes ?FollowSymLinks ?MultiViews ?ExecCGI
?AllowOverride None
Order allow,deny
Allow from all
# ?AllowOverride ?FileInfo ?AuthConfig Limit
# Options ?MultiViews Indexes ?SymLinksIfOwnerMatch ?ExecCGI
# <Limit GET POST OPTIONS PROPFIND>
# Order allow,deny
# Allow from all
# </Limit>
# <Limit PUT DELETE PATCH PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
# Order deny,allow
# Deny from all
# </Limit>
</Directory>
cgi 확장자가 사용가능하도록 ?AddHandler 의 주석을 제거합니다.


?AddHandler cgi-script .cgi .sh .pl
3. 한글설정



다음명령을 써서 한글언어를 추가 시킵니다.


?AddLanguage kr .kr
?AddCharset ISO-2022-KR .iso-kr
언어순위에 한글을 첫번째로 지정합니다.


?LanguagePriority kr en da nl et fr de el it ja pl pt pt-br ltz ca es sv
기본 문자셋(ISO-8859)를 끕니다.


?AddDefaultCharset off (혹은 ?AddDefaultsCharset EUC-KR 로 해도 되는 것 같네요.)
4. 이제 아파치 데몬을 재가동합니다.


/etc/init.d/apache restart
5. php 가 연동이 잘 되었는지 phpinfo.php 를 만들어 웹문서루트에 저장한뒤 웹브라우저에서 읽어봅니다.


vi /var/www/phpinfo.php

<?
phpinfo();
?>


?MySQL root password 설정 및 사용자 추가 #


?MySQL root password 설정


mysqladmin -u root password 'new-password'


?MySQL db 사용자 추가방법



1. ?MySQL에 root로 로그인 합니다.


mysql -u root -p
Enter Password:
2. 새로 추가할 db를 만듭니다.


mysql> create database db_new; (세미 콜론을 꼭 입력하세요.)
Query OK, 1 row affected (0.06 sec)
3. mysql 기본 데이타 베이스인 mysql 를 선택하여 새로운 사용자 등록을 합니다.


mysql> use mysql;
Database changed
mysql> insert into user values ('localhost','userid',password('userpasswd'),'N','N','N','N','N','N','N'
,'N','N','N','N','N','N','N');
(N은 모두 14개입니다.)
Query OK, 1 row affected (0.04 sec)




mysql> use mysql;
Database changed
mysql> insert into user (host, user, password) values ('localhost','userid',password('userpasswd'));
(전..이렇게 합니다...아무튼 같은 결과임..)
Query OK, 1 row affected (0.04 sec)




4. 이번엔 mysql 에 userid 가 db_new라는 데이타 베이스를 이용한다는 정보를 넣어줍니다.


mysql> insert into db values ('localhost','db_new','userid','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
(Y는 모두 10개입니다.)
Query OK, 1 row affected (0.04 sec)
5. 변경된 설정으로 ?MySQL을 재시작 합니다.


mysql> exit;

mysqladmin -u root -p reload




mysql>FLUSH PRIVILEGES;
(이렇게 해도, 적용됩니다)
6. mysql 비번 바꾸기


mysql> set password for id@localhost = password('newpasswd');


?MySQL 응용 #
mysql 설정 화일 : /etc/mysql/my.cnf



1. mysql 에서 한글을 사용하기 위해 euc_kr 로 설정한다. : default-character-set=euc_kr



2. 원격 mysql 에 접속하기 위해 주석 처리 한다. #skip-networking



관련문서 및 사이트 #




Apache 에서 한글설정 - 데비안 위키 : 아파치팁