데비안 패키지로 APM 설치하기 #
데비안에서 A.P.M 설치 및 활용(http://debianusers.org/seminar/seminar2/apm_debian.txt): 이 페이지 아래에 붙여야할지 고민하다가 여기 적습니다. 이 링크는 소스패키지를 받은 후 패키지 빌드해서 설치하는 과정에 대해 설명되어 있습니다.
데비안에서 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-server2. apache 설치시에 apacheconfig 를 실행시키겠냐고 물어보는데, 기본적인 설정을 해주는 작업입니다. y를 눌러 기본값을 입력해 줍니다.
(혹시, 시드에서 위와 같이 설치하다가, 아래와 같은 sed 관련 에러를 발생시키면, sed의 한버전 낮은 것으로 수동 설치한다.
3. php4-gd , php4-mysql 를 설치시에는 gd.so 와 mysql.so 를 php.ini 에 포함시킬 것인지 물어보는데, y를 눌러 포함시킵니다.
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 설치에 들어간다.
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.sophp 확장자가 가능하도록 주석을 풀고 확장자를 추가시킵니다.
AddType application/x-httpd-php .php .inc .php4 .html .htm (원하는 확장자들을 추가하십시오) AddType application/x-httpd-php-source .phps2. CGI 사용 가능하게 하기
데비안 아파치에서는 기본적으로 httpd.conf 파일에서 cgi 설정을 하여도 보안상 문제로 웹문서루트가 아닌 일반 사용자 디렉토리에서는 cgi 사용이 불가능합니다. suEXEC 라는 프로그램을 사용하여 일반사용자의 cgi 사용을 막아놨기 때문입니다. 그래서 편법이지만 suEXEC 프로그램이 작동을 못하도록 /usr/lib/apache 밑에 있는 suexec 프로그램의 이름을 바꿉니다.
(보안상 좀더 확실한 방법을 하고 싶으신 분들은 아래 관련문서의 cgiwrap 을 사용하는 방법을 참고하세요.)
(보안상 좀더 확실한 방법을 하고 싶으신 분들은 아래 관련문서의 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 ?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 의 주석을 제거합니다.
Options Indexes Includes ?FollowSymLinks ?MultiViews ?ExecCGI
?AllowOverride None
Order allow,deny
Allow from all
# ?AllowOverride ?FileInfo ?AuthConfig Limit?AllowOverride None
Order allow,deny
Allow from all
# 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 의 주석을 제거합니다.
다음명령을 써서 한글언어를 추가 시킵니다.
/etc/init.d/apache restart
5. php 가 연동이 잘 되었는지 phpinfo.php 를 만들어 웹문서루트에 저장한뒤 웹브라우저에서 읽어봅니다.
5. php 가 연동이 잘 되었는지 phpinfo.php 를 만들어 웹문서루트에 저장한뒤 웹브라우저에서 읽어봅니다.
vi /var/www/phpinfo.php
<?
phpinfo();
?>
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를 만듭니다.
Enter Password:
2. 새로 추가할 db를 만듭니다.
mysql> create database db_new; (세미 콜론을 꼭 입력하세요.)
Query OK, 1 row affected (0.06 sec)
3. mysql 기본 데이타 베이스인 mysql 를 선택하여 새로운 사용자 등록을 합니다.
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)
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)
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을 재시작 합니다.
(Y는 모두 10개입니다.)
Query OK, 1 row affected (0.04 sec)
5. 변경된 설정으로 ?MySQL을 재시작 합니다.
mysql> exit;
mysqladmin -u root -p reload
mysql>FLUSH PRIVILEGES;
(이렇게 해도, 적용됩니다)
6. mysql 비번 바꾸기
(이렇게 해도, 적용됩니다)
6. mysql 비번 바꾸기
mysql> set password for id@localhost = password('newpasswd');
1. mysql 에서 한글을 사용하기 위해 euc_kr 로 설정한다. : default-character-set=euc_kr
2. 원격 mysql 에 접속하기 위해 주석 처리 한다. #skip-networking
관련문서 및 사이트 #
APM 패키지로 연동하기 - http://debianusers.org/stories.php?story=00/08/31/9675788
mysql 사용자 추가방법 - http://www.phpschool.com/bbs2/inc_view.html?id=7003&code=tnt2]
Apache 에서 한글설정 - 데비안 위키 : 아파치팁