출처 : http://debianusers.org/DebianWiki/wiki.php/APM
(Sarge의 경우부터는, apache2로 바뀌고 조금 다를 수 있지만, 설치에 큰 어려움은 없으실 겁니다.)
apache2 apache2-common libapache2-mod-php4 php4 php4-common php4-gd php4-mysql libdbd-mysql-perl libdbi-perl mysql-client mysql-server mysql-common
2. Apache + PHP + ?MySQL 기본 설정
각종 파일 위치 및 기본 정보 #
Apache 설정파일 : /etc/apache/httpd.conf /etc/apache2/apache2.conf : 아파치 2.x 대웹문서루트 : /var/www /var/www/apache2-default/Apache 로그파일 : /var/log/apache /var/log/apache2Apache 데몬 계정과 그룹 : www-data www-dataPHP 설정파일 : /etc/php4/apache/php.ini /etc/php4/apache2/php.iniMySQL data 파일 위치 : /var/lib/mysql
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 .phps
각각 확인해 보세요.
(보안상 좀더 확실한 방법을 하고 싶으신 분들은 아래 관련문서의 cgiwrap 을 사용하는 방법을 참고하세요.)
<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
cgi 설정시에 /etc/apache2/Apache2.conf에서의 기본 설정외에도, /etc/apache2/sites-enabled/000-default 파일의 ?DocumentRoot (/var/www) 의 관련 설정에서, Options 항목에 ?ExecCGI 를 추가해 주어야 합니다.
: 우디에서는 ?ExecCGI를 /etc/apache/httpd.conf에 추가했었는데, 사지에서는 ?ExecCGI를 /etc/apache2/sites-enables/000-default에 추가
DocumentRoot /var/www/ <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews ExecCGI AllowOverride None ......suexec 파일은 /usr/lib/apache2/suexec2 로 변경됨.
다음명령을 써서 한글언어를 추가 시킵니다.
AddLanguage kr .krAddCharset 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 restart5. php 가 연동이 잘 되었는지 phpinfo.php 를 만들어 웹문서루트에 저장한뒤 웹브라우저에서 읽어봅니다.
vi /var/www/phpinfo.php<?phpinfo();?>
AddLanguage ko .ko----------LanguagePriority ko en da nl et fr de el it ......로 확인해 보세요.
-----------AddDefaultCharset EUC-KR -----------/etc/init.d/apache2 restart
3. MySQL root password 설정 및 사용자 추가
# mysqladmin -u root password 'new-password'
# mysql -u root -pEnter Password:
mysql> create database db_new; (세미 콜론을 꼭 입력하세요.)Query OK, 1 row affected (0.06 sec)
mysql> use mysql;Database changed.mysql> insert into db values ('localhost','db_new','userid','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');(Y는 모두 12개입니다.)Query OK, 1 row affected (0.04 sec)06/06/03 etch 의 경우 mysql은 4.1 패키지가 사라지고, 5.0만 남아 있더군요. Y의 갯수를 17개로 하시면 됩니다.
4. mysql에 새로운 사용자와 암호 등록을 합니다.
mysql> insert into user (host, user, password) values ('localhost','userid',password('userpasswd'));Query OK, 1 row affected (0.04 sec)
# /etc/init.d/mysql restart# mysql -u userid -p db_newEnter Password :mysql> show tables;당연히 아무런 값이 없다고 나옴mysql> exit
mysql> set password for id@localhost = password('newpasswd');
1. mysql 에서 한글을 사용하기 위해 euc_kr 로 설정한다. : default-character-set=euc_kr
2. 원격 mysql 에 접속하기 위해 주석 처리 한다. #skip-networking
3. 05' 12. testing을 업그레이드 했더니 ?MySQL version이 4.1 대로 올라갔습니다.
심지어 APM이 작동하지 않을 수도 있습니다.
내부적으로 유니코드를 기본으로 지원하고 서브쿼리등의기능이 추가되는등 바뀐사항이 많다고 합니다.
설정등을 바꿔줘야하는등 몇가지 고려사항이 있습니다.
1) 먼저 /etc/mysql/my.cnf 에서 ?mysqld section에
init_connect = 'set names euckr' 을 추가합니다.
그래서 먼저 한글 설정에 대해 고민해 보아야 합니다.
1) 한글 설정의 기본은, encoding과 decoding이 동일하다면 한글은 그대로 보일것이다 입니다.
그래서 character set을 utf8로 한다면 Apache, php 등의 설정도 utf8로 하는것이 옳겠고, Eterm등의 터미널도 한글 설정을 utf8로 바꿔줘야 하겠죠.
저의 경우는, 노트북에 APM이 설정되어 있고, 웹 호스팅 업체(Mysql 4.0)에 홈페이지를 운영중이며, 봉사 단체에 설정해 준 APM등이 모두 euckr로 되어 있어서
자료의 호환성을 위하여 euckr로 하기로 하였습니다. 유저스 여러분이 utf8을 원하신다면 그렇게 하셔도 됩니다.
둘째, 데비안유저스 홈페이지의 패키지 검색을 이용하여 stable version의 libdbd-mysql-perl, mysql-common-4.1, libmysqlclinet12_4.1, mysql-client-4.1,
db에 접속하여 한글이 깨지지 않은걸 확인한 후 mysqldump를 이용하여 자료를 백업받습니다.
한글이 깨진경우는 euckr대신 latin1으로 방금 한 과정을 반복하여 자료를 백업받습니다.
각 테이블 구조마다 TYPE=ISAM 혹은 ENGINE=ISAM 등을 ENGINE=?MyISAM DEFAULT CHARSET euckr; 로 바꿔줍니다.
mysql_convert_table_format --user='root' --password='password' DB_name
이 두 명령을 실행하여 테이블 구조를 5.0 버전에 맞게 고쳐주어야 합니다.
php.ini가 새로 쓰여져서 이 라인을 추가하셔야 할겁니다.)
/etc/mysql/my.cnf 의 ?mysqld section 에
default-character-set=euckr
mysql -u 'user' -p DB_name < BACKUP_file.sql
한글이 잘 보입니까?
Mysql 5.0 부터 예약어가 대폭 늘어서, 예전에는 잘 되던 query 가 작동되지 않을 수도 있습니다.
가령 select inout from DB_name 하면 inout 이라는 테이블 이름이 예약어로 지정되는 바람에 작동을 하지 않습니다.
이때는 인용부호(Tab 키 윗쪽의 ` )를 테이블 이름 앞뒤에 붙여줍니다.
mysqldump option 을 이용하여 character set을 지정하는 것 역시 잘 안되더군요.
mysql 에 접속한 후 set names euckr 을 실행하면 variable 들이 euckr 로 바뀌지만, 접속된 상태에서만 영향을 미치기 때문에 백업하는데는 아무런 도움이 되지
않는다는걸 무지~무지 많은 시행착오끝에 깨달았습니다. DB업그레이드시에 조금이나마 도움이 되시길 바랍니다.
--------------------------------------------------광고(Advertising)-------------------------------------------------------------------------------------