웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
Apache 2.X 버전의 한글문제와 새로운 방식의 APM 셋팅
2003.12.17 16:49
이번에 웹서버 셋팅을 새로이 했다.
순전히 redhat 9.0 과 Apache 2.0을 적용해 보고 싶은 생각에서였다.
화근의 시작이었다 -_-
redhat9.0과 아파치2.0.48 + PHP 4..3.4 + MySQL 4.0.16 설치..
잘 되었다. 몇번의 시행착오는 격었지만(반드시 그래야만 하는 일처럼 -_-).
문제는 다 설치한 후 기존의 홈페이지 자료를 복구한 다음에 일어났다.
기존의 자료들은 다 이상없이 보였는데 문제는 새로운 글을 작성할때 였다.
일부글자(규칙성은 없다)가 깨져서 이상하고 희안한 문자로 대체되는것이었다.
쓰는 화면까지는 괜찮으나 완료를 하고 그 글을 읽을 때 깨지는 것이었다.
Apache 2.X 버전에서의 한글처리 문제로 나름대로의 결론을 내렸다
Apache2.X + PHP 참고 : http://www.php.net/manual/en/install.apache2.php
할수 없이 다시 redhat 7.2 + Apache 1.3.29(최신) + PHP4.3.4 + MySQL 4.0.16 으로 셋팅결정!!
Apache1.3.X + PHP 참고 : http://www.php.net/manual/en/install.apache.php
다음은 이번 작업의 대략적인 순서를 적었다.
자세한 설치사항은 http://www.nemosarang.net/zboard/view.php?id=webstudy&page=2&sn1=&divpage=1&category=4&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=22 를 참고하라.
1. 서버포맷 및 파티션 재설정( 80G + 8G 하드 )
/ 512M
/boot 30M
/home 30G
/usr 8G
/var 30G
SWAP 250M
/backup 나머지
리눅스 설치
2. MySQL 4.0.16 설치(configure -> make -> make install 순서)
[root@www /usr/local/src/mysql-4.0.16]./configure --prefix=/usr/local/mysql
--localstatedir=/var/lib/mysql -> MySQL데이터들이 쌓이는곳
--with-charset=euc_kr
make -> make install
후 몇가지 작업들 수행(위의 링크에 자세하게 설명되어 있음)
3. Apache 1.3.29 설치(configure -> make -> make install 순서)
[root@www /usr/local/src/apache-1.3.29]./configure --prefix=/usr/local/apache
--enable-module=so -> php를 DSO방식으로 설치하기 위한 옵션
--sysconfdir=/etc/httpd/conf -> httpd.conf파일 위치 지정
--htdocsdir=/var/www/html -> html파일이 있을곳 지정
make -> make install
후 /etc/rc.d/rc.local 파일에 다음줄 추가
/usr/local/apache/bin/apachectl start
이러면 자동으로 아파치가 실행된다.
지난번과 달라진 부분이다. 지난번에는 apache에서 한번 configure 작업만 하고 PHP를 설치하고 다시 apache로 와서 설치를 마무리 하는 과정을 밟았다. 이것은 static으로 설치하는 방식이고 이번에는 dynamic방식으로 설치하는것이므로 아파치를 완전히 설치한 다음 PHP를 설치한다.
해당하는 옵션이 바로 --enable-module=so 라는 옵션이다.
이것이 Apache 2.X일때는 --enable-so라는 옵션으로 주면 된다.
4. PHP 4.3.4 설치(configure -> make -> make install 순서)
[root@www /usr/local/src/php-4.3.4]./configure --prefix=/usr/local/php
--with-apxs=/usr/local/apache/bin/apxs Apache와의 연동을 위해
--with-mysql=/usr/local/mysql mysql의 위치 지정
--with-zlib
--enable-track-vars
--with-mod-charset
--with-language=korean
--with-charset=euc_kr
--disable-debug
--with-config-file-path=/etc php.ini파일의 위치 지정
make -> make install
php.ini파일을 만들기 위해 다음과 같은 작업을 한다.
cp /usr/local/src/php-4.3.4/php.ini-dist /etc/php.ini
5. php.ini파일과 httpd.conf파일 수정
먼저 httpd.conf파일을 vi로 연다. (위의 옵션대로 했다면 /etc/httpd/conf/ 밑에 있을거다. 만약 설치할 때 sysconfdir을 지정해 주지 않았다면 /usr/local/apahce/conf/ 밑에 존재한다.)
LoadModule php4_module modules/libphp4.so 부분을 찾아 아래에 다음을 추가하자.
AddType application/x-httpd-php .php .html .php3 .php4 .inc .htm .phtml .ph
AddType application/x-tttpd-source .phps
아 물론 httpd.conf파일 안에서 몇가지 수정해야 할 부분이 있는데 이것은 위의 링크된 문서를 읽어보라.
php.ini파일을 수정하기 위한 내용도 위의 링크를 읽어보면 자세하게 나온다.
6. 기존의 데이터 복구
재 설치 작업 이전에 html파일과 MySQL내의 모든 자료를 백업받아두었다고 가정하고 하는 얘기이다.
(제로보드의 관리자 모드에서의 백업이 아니라 mysqldump로 백업 받아야 아래의 내용이 맞아들어간다)
mysql로 접속한 다음 mysql 데이터베이스 내의 모든테이블들을 삭제한다.
다음 mysql을 빠져나온다음 프롬프트 상태에서 다음과 같이 명령을 내린다.
[root @www....] mysql mysql < mysql_db_bak_20031215.sql
(물론 백업받은 파일 이름은 각자 상황에 따라 다를 것이다)
처음에 mysql을 설치하면 아무 비밀번호도, 사용자도 지정되어 있지 않지만
위의 작업을 마치면 기존의 사용자들과 root의 비밀번호가 예전처럼 지정되게 된다.
다음으로 이 변경된 사용자와 비밀번호 등이 제대로 동작하기 위해 mysql을 restart하라.
/etc/rc.d/init.d/mysqld restart
다음으로 사용자별로 백업받은 mysql자료들을 복구한다.
mysql -uroot -pXXXXX yanemone < yanemone_db_bak_20031215.sql
mysql -uroot -pXXXXX sijiclub < sijiclub_db_bak_20031215.sql
이렇게 DB복구가 끝났으면 html파일을 복구한다.
이것은 기존에 tar로 묶어 두었던 파일을 그대로 풀어주면 된다.
/var/www/html 밑에
/home/사용자ID/public_html 밑에
이상으로 이번 작업에 대한 Documentation을 마칠까 한다.
순전히 redhat 9.0 과 Apache 2.0을 적용해 보고 싶은 생각에서였다.
화근의 시작이었다 -_-
redhat9.0과 아파치2.0.48 + PHP 4..3.4 + MySQL 4.0.16 설치..
잘 되었다. 몇번의 시행착오는 격었지만(반드시 그래야만 하는 일처럼 -_-).
문제는 다 설치한 후 기존의 홈페이지 자료를 복구한 다음에 일어났다.
기존의 자료들은 다 이상없이 보였는데 문제는 새로운 글을 작성할때 였다.
일부글자(규칙성은 없다)가 깨져서 이상하고 희안한 문자로 대체되는것이었다.
쓰는 화면까지는 괜찮으나 완료를 하고 그 글을 읽을 때 깨지는 것이었다.
Apache 2.X 버전에서의 한글처리 문제로 나름대로의 결론을 내렸다
Apache2.X + PHP 참고 : http://www.php.net/manual/en/install.apache2.php
할수 없이 다시 redhat 7.2 + Apache 1.3.29(최신) + PHP4.3.4 + MySQL 4.0.16 으로 셋팅결정!!
Apache1.3.X + PHP 참고 : http://www.php.net/manual/en/install.apache.php
다음은 이번 작업의 대략적인 순서를 적었다.
자세한 설치사항은 http://www.nemosarang.net/zboard/view.php?id=webstudy&page=2&sn1=&divpage=1&category=4&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=22 를 참고하라.
1. 서버포맷 및 파티션 재설정( 80G + 8G 하드 )
/ 512M
/boot 30M
/home 30G
/usr 8G
/var 30G
SWAP 250M
/backup 나머지
리눅스 설치
2. MySQL 4.0.16 설치(configure -> make -> make install 순서)
[root@www /usr/local/src/mysql-4.0.16]./configure --prefix=/usr/local/mysql
--localstatedir=/var/lib/mysql -> MySQL데이터들이 쌓이는곳
--with-charset=euc_kr
make -> make install
후 몇가지 작업들 수행(위의 링크에 자세하게 설명되어 있음)
3. Apache 1.3.29 설치(configure -> make -> make install 순서)
[root@www /usr/local/src/apache-1.3.29]./configure --prefix=/usr/local/apache
--enable-module=so -> php를 DSO방식으로 설치하기 위한 옵션
--sysconfdir=/etc/httpd/conf -> httpd.conf파일 위치 지정
--htdocsdir=/var/www/html -> html파일이 있을곳 지정
make -> make install
후 /etc/rc.d/rc.local 파일에 다음줄 추가
/usr/local/apache/bin/apachectl start
이러면 자동으로 아파치가 실행된다.
지난번과 달라진 부분이다. 지난번에는 apache에서 한번 configure 작업만 하고 PHP를 설치하고 다시 apache로 와서 설치를 마무리 하는 과정을 밟았다. 이것은 static으로 설치하는 방식이고 이번에는 dynamic방식으로 설치하는것이므로 아파치를 완전히 설치한 다음 PHP를 설치한다.
해당하는 옵션이 바로 --enable-module=so 라는 옵션이다.
이것이 Apache 2.X일때는 --enable-so라는 옵션으로 주면 된다.
4. PHP 4.3.4 설치(configure -> make -> make install 순서)
[root@www /usr/local/src/php-4.3.4]./configure --prefix=/usr/local/php
--with-apxs=/usr/local/apache/bin/apxs Apache와의 연동을 위해
--with-mysql=/usr/local/mysql mysql의 위치 지정
--with-zlib
--enable-track-vars
--with-mod-charset
--with-language=korean
--with-charset=euc_kr
--disable-debug
--with-config-file-path=/etc php.ini파일의 위치 지정
make -> make install
php.ini파일을 만들기 위해 다음과 같은 작업을 한다.
cp /usr/local/src/php-4.3.4/php.ini-dist /etc/php.ini
5. php.ini파일과 httpd.conf파일 수정
먼저 httpd.conf파일을 vi로 연다. (위의 옵션대로 했다면 /etc/httpd/conf/ 밑에 있을거다. 만약 설치할 때 sysconfdir을 지정해 주지 않았다면 /usr/local/apahce/conf/ 밑에 존재한다.)
LoadModule php4_module modules/libphp4.so 부분을 찾아 아래에 다음을 추가하자.
AddType application/x-httpd-php .php .html .php3 .php4 .inc .htm .phtml .ph
AddType application/x-tttpd-source .phps
아 물론 httpd.conf파일 안에서 몇가지 수정해야 할 부분이 있는데 이것은 위의 링크된 문서를 읽어보라.
php.ini파일을 수정하기 위한 내용도 위의 링크를 읽어보면 자세하게 나온다.
6. 기존의 데이터 복구
재 설치 작업 이전에 html파일과 MySQL내의 모든 자료를 백업받아두었다고 가정하고 하는 얘기이다.
(제로보드의 관리자 모드에서의 백업이 아니라 mysqldump로 백업 받아야 아래의 내용이 맞아들어간다)
mysql로 접속한 다음 mysql 데이터베이스 내의 모든테이블들을 삭제한다.
다음 mysql을 빠져나온다음 프롬프트 상태에서 다음과 같이 명령을 내린다.
[root @www....] mysql mysql < mysql_db_bak_20031215.sql
(물론 백업받은 파일 이름은 각자 상황에 따라 다를 것이다)
처음에 mysql을 설치하면 아무 비밀번호도, 사용자도 지정되어 있지 않지만
위의 작업을 마치면 기존의 사용자들과 root의 비밀번호가 예전처럼 지정되게 된다.
다음으로 이 변경된 사용자와 비밀번호 등이 제대로 동작하기 위해 mysql을 restart하라.
/etc/rc.d/init.d/mysqld restart
다음으로 사용자별로 백업받은 mysql자료들을 복구한다.
mysql -uroot -pXXXXX yanemone < yanemone_db_bak_20031215.sql
mysql -uroot -pXXXXX sijiclub < sijiclub_db_bak_20031215.sql
이렇게 DB복구가 끝났으면 html파일을 복구한다.
이것은 기존에 tar로 묶어 두었던 파일을 그대로 풀어주면 된다.
/var/www/html 밑에
/home/사용자ID/public_html 밑에
이상으로 이번 작업에 대한 Documentation을 마칠까 한다.
댓글 8
-
정지원
2005.03.13 23:50
-
임기선
2003.12.28 20:08
아파치 2.x로 웹서버를 돌릴때 1.3.x와 달리 제로보드등에서 한글이 깨져서 보이는것은 httpd.conf에서 AddDefaultCharset을 EUC-KR로 바꿔주면 해결이 되더라구요
이걸 몰라서 2.x깔았다 다시 1.3.x로 내렸었는데 ㅠ.ㅠ -
최종우
2003.12.29 14:20
예..저도 그 항목 조정했었지요. 기존 데이터를 보는것은 상관 없으나 새로 작성하는 한글에 대해서 문제가 생겼었구요
또한 한글 파일명... 특히 띄워쓰기 한 그래서 공백이 생긴 한글 파일명에 대해서는 모두 정상적으로 보이지 않고 링크가 되지 않는 치명적인 문제점이 발견되더라구요.
일단은 해결책을 찾지 못했고(해결책이 있지만 못찾았을수도 있고 해결책이 없어서 못 찾았을수도 있습니다)...
아직까지 2.0대 버전으로 가기는 힘들어 보입니다. -
이강명
2004.01.07 23:50
이런 방법이라기보다는 제 경험입니다...
레드헷 8 또는 9 이나...Sun Solaris 8 또는 9 에서도 모두
아파치 2.0.48 + php 4.3.3 + Mysql 3.23.55 + Zend 붙여서 사용하는데 한글 설정은 php.ini 에서만 euc_kr 설정만 해주면 아무 문제 없이 잘 돌아갑니다... 물론 제로보드 이상없이 잘 돌아갑니다..... -
박종철
2004.02.22 03:49
고민하던 문제의 해결점이 보이는 듯 합니다.
^_^ 감사합니다. -
채석
2004.04.21 12:50
아파치 한글 문제의 원인을 알아냈습니다.
문제는 아파치의 문제가 아니고, 문제가 있는 페이지의 코딩 자체의 문제였습니다.
아파치 1.xx 대에서는 별로 문제가 되지 않았던 이유가 utf-8 코드 보다 기본 코드 우선이었던 것 같습니다.
그래서 문제가 없었던 것 같은데,
아파치 2.xx 버전에서는 페이지 자체의 코딩이 우선시 되는 것 같습니다.
문제를 해결하려면 이렇게 하면 됩니다.
우선 저는 코딩하는데 에디터로 Editplus를 씁니다.
Editplus로 문제가 있는 페이지를 원격열기로 엽니다.
그런 다음에 원격 저장으로 다시 저장을 하는데,
저장할 때 보면 대화상자 하단부에 "변환기" 라는 목록 상자가 보이실 겁니다.
분명 문제가 있는 페이지는 그 변환기 선택상자에 "UTF-8"이 선택되어 있을 겁니다.
그 값을 "기본값"으로 바꾸어 주시면 됩니다.
그리고 업로드 해서 다시 페이지를 로드해 보십시요.
그럼 깔끔하게 한글이 잘 나올 겁니다.
제가 벼라별 짓을 다 해봤지만 해결이 안되더니 이렇게 해결되어서,
페이지 자체의 코딩 문제였던 것으로 판명이 나네요....
어이가 없네요, 참.... -
채석
2004.04.20 05:47
위에 쓰신 분들이 작성하신 것들 다 해봤는데도 안되는데요....
어떻게 해야 하죠?
httpd.conf에서 AddDefaultCharset을 EUC-KR ==> 해봤음
php.ini 에서만 euc_kr 설정 => 되어 있음
저는 제로보드의 문제가 아니라 제가 만든 페이지의 문제인데...
meta 태그도 붙여보고 AddDefaultCharset을 off 해보기도 해 보고 다 해보았으나,
결과는 동일 합니다....
저는 2.0.46 버전이구요... 소스 컴파일 설치 했는데, 이거 지우는 건 어떻게 하는 거죠?
누가 Documentation 해주시면 안될까요? -
tony chen
2009.06.14 11:38
Mayapple International Industrial Limited is a China clothing manufacturer that supplies men's clothing, women's clothing, baby clothing and children's clothing with more than ten years garment manufacturing experience.We have 420 sets of advanced sewing machines and other auxiliary equipment as well. There are 600 skilled employees in our company. Our efficient design center can provide our customers with samples in time.
#AddDefaultCharset ISO-8859-1
#AddDefaultCharset EUC-KR 이런식으로 '#' 을 넣어두세요..(혹시 모르니까..)
로 해보세요.. AddDefaultCharset 항목을 넣지 말란 얘기죠..
또 만약에 안되면요..
<php.ini> 에서 ( <--- c:windows 에 있는 파일 )
;default_charset = "iso-8859-1"
즉.. 여기도 default_chatset 항목을 넣지 마세요..
제가 이렇게 해 본 이유는..
php.ini 에 있는 다음과 같은 내용을 참조한 것입니다..
; As of 4.0b4, PHP always outputs a character encoding by default in
; the Content-type: header. To disable sending of the charset, simply
; set it to be empty.
어쨌거나.. 효과 있었습니다... ^^