웹마스터 팁

*************************************************************************
주제 : 리눅스 서버 설치 후 APM 설치 및 ZEROBOARD 복구
작성 : doogysp
참고 : eversun 님의 사이트에서 APM 설치부분 아주 많이(?) 참고
         http://eversun.gana4u.co.kr/bbs/zboard.php?id=es_linux

추신 : eversun 님 허락없이 내용을 가져와서 죄송합니다.
         많은 도움이 되었습니다.감사합니다.
*************************************************************************

----------------------
0. 서버 세팅
----------------------
- 리눅스 서버 설치시 제공되는  Apache PHP  MySQL 는 설치하지 않는게 좋음.

----------------------
1. 백업
----------------------
tar cvfpz 로 압축해야 퍼미션까지 압축가능(퍼미션 문제로 재설치시 고생하는 사람들이 많음)
ex> tar cvfpz public_html.tar.gz public_html/
백업 대상
- 홈페이지 디렉토리 (되도록 public_html 폴더통째로..)
- 만약 제로보드가 다른 디렉토리에 설치되어 있다면..
   설치된 디렉토리를 백업
- 제로보드 관리자 페이지에서 DB백업(sql파일이 생성된다.)

----------------------
2. APM 설치
----------------------
Apache       http://www.apache.org
PHP          http://www.php.net
MySQL        http://www.mysql.org
(MySQL의 경우 4.1. 버젼은 zeroboard와 호환문제 발생)


혹시, 아파치 서버가 있거나 작동중인지 확인하자
# ps -ef | grep httpd
root        1673        1    0  15:27  ?       ~~~
...

주루룩 정보가 나온다면 root 가 실해시킨 PID를 삭제하자
# kill 1673

기존 아파치가 있을때~
# rpm -e apache
...

의존 관계인 패키지들이 주루룩 나온다. 어짜피 다시 설치할 것이기 때문에
의존 관계를 무시하고 모두 삭제한다.

# rpm -e --nodeps 'httpd'          <-- --nodeps옵션은 no dependence ^^
# rpm -e --nodeps 'php'
# rpm -e --nodeps 'mysql'
# rpm -e --nodeps 'apache'

만약 아래같은 메시지가 뜨면
warning : ~~~ /etc/php.ini.rpmsave
# rm -f /etc/php.ini.rpmsave
생성 파일을 삭제해주면된다.

MySQL은 통상 설치되어있지 않다.
만약 MySQL이 설치 되어있다면 위와 같이 진행하고 소스 설치일경우
데몬을 실행중지 시킨후 폴더를 삭제하면 된다.

APM 까는 순서는 MySQL --> Apache configure --> PHP --> Apache


먼저 MySQL을 설치한다.
----------------------
3.  MySQL 4.0.
----------------------
먼저.
# groupadd mysql
# useradd -g mysql mysql    <-- mysql 그룹과 계정을 추가.

# cd /usr/local      

# tar zxvf mysql-standard-4.0.12-pc-linux-i686.tar.gz

푼다음 /usr/local로 옮기기
# mv mysql-standard-4.0.12-pc-linux-i686 /usr/local

# ln -s mysql-standard-4.0.12-pc-linux-i686 mysql        <-- mysql 디렉으로 링크걸기

# cd mysql

# scripts/mysql_install_db
-->만약, Sorry, the host ~~~ could not be ~~~ 'hostname' ~~~ ~~~  - force option 이라는
     메시지가 나오면,, hostname 을 localhost.localdomain으로 설정한 후에 실행한다.
     # hostname localhost.localdomain

그다음,,
권한설정.

chown -R root:mysql /usr/local/mysql
chown -R mysql /usr/local/mysql/data

데몬 실행.
# bin/safe_mysqld --user=mysql &

다음 메시지를 확인 된다면 오케`~
Starting mysqld daemon with databases from /usr/local/mysql/data
#

이왕 하는거
mysql> 이 커서도 확인해 보자
# ./bin/mysqladmin -u root password 'eversun00'    <-- 처음 접속시 서버관리자 암호 지정
#
이제 mysql에 접속해보자
# ./bin/mysql -p mysql
Enter password: *********
Reading~~~~~~~~~~~~~~~~~~~
...
...
...

mysql>    
성공

-----------------------------
4. Apache 살짝  apache 1.3.27
-----------------------------

일단, Apache 와 PHP 압축파일을 다 풀어놔보자.
압축파일이 있는 디렉으로 이동해서

# tar zxvf apache_1.3.27.tar.gz
# tar zxvf php-4.3.1.tar.gz

생성된 두개의 디렉을 /usr/local/ 로 옮기자

# mv apache_1.3.27 /usr/local/apache
# mv php-4.3.1 /usr/local/php

# cd /usr/local           확인..

# cd apache

# ./configure --prefix=/usr/local/apache  
--> 몇가지 설정파일과 최종 컴파일을 위해서 PHP가 아파치 설정부분을 인식하기 위해서 하는것~!

-----------------------------
5. PHP 4.3.1
-----------------------------

# cd /usr/local/php

# ./configure --with-apache=/usr/local/apache --with-mysql=/usr/local/mysql --with-zlib=/usr/local


************************************************************************************
* 여기서 잠깐 혹시 zlib 문제로 설치가 안된다면 아래 내용을 참조 바란다.
************************************************************************************
1). http://www.gzip.org/zlib/ 에서 zlib 을 다운 받는다.

2). zlib 설치

# tar -xvzf zlib-1.1.4.tar.gz
# cd zlib-1.1.4
# ./configure -s // libz.so 동적모듈생성
# make
# ./configure // libz.a 정적모듈생성
# make test
# make install

# cp libz.so* /usr/local/lib

# cd /usr/local/lib
# rm -rf libz.so
# rm -rf libz.so.1
# ln -s libz.so.1.1.4 libz.so
# ln -s libz.so.1.1.4 libz.so.1

# vi /etc/ld.so.conf
/usr/local/lib추가 // 라이브러리 경로 추가

# ldconfig // 라이브러리 경로 적용명령
************************************************************************************

다시 돌아와서..

# make
# make install

시간이 좀 걸린다.

-----------------------------
6. Apache 1.3.27 마무리
-----------------------------

# cd /usr/local/apache

# ./configure --prefix=/usr/local/apache --activate-module=src/modules/php4/libphp4.a  

--> --activate~~~ 옵션은 아파치와 연동하기 위해 php설치중 만들어진 모듈을 인식시켜 주는 옵션


만약 tatter tools 1.0x 이상의 버젼을 사용하고자 한다면 apache 의 rewite 모듈을 추가해야한다.
이것은 configure옵션에 한가지 옵션을 추가해주는 형태로 간단히 설정이 가능하다.

(tatter tools 1.0x 이상의 버젼 사용을 위한 configure 옵션)
# ./configure --prefix=/usr/local/apache --activate-module=src/modules/php4/libphp4.a --enable-module=rewrite  


# make
# make install

마무리 성공적으로 설치가 끝났다는 메시지 박스를 볼수 있다.

# cd /usr/local/php
# cp ./php.ini-dist /usr/local/lib/php.ini  <-- php.ini-dist 파일 php.ini로 복사

이렇게 APM의 모든 설치가 끝났다.
설치가 끝난 거다. 이제 환경설정이 기다리고 있다.

-----------------------------
7. APM 환경설정
-----------------------------

우선. 아파치 설정파일부터 보자 (httpd.conf)

# vi /usr/local/apache/conf/httpd.conf
...
...
ServerRoot  "/usr/local/apache"
..
ServerName  192.168.10.1        
...
DocumentRoot  "/usr/local/apache/htdocs"
...
<IfModule mod_dir.c>
     DirectoryIndex index.php index.php3 index.php4 index.html index.htm
</IfModule>
...
..
AddType application/x-httpd-php .php .php3 .ph
AddType application/x-httpd-php-source .phps    <-- 이 두 줄 찾기 힘들다. 없으면 추가~!
...
AddType application/x-tar .tgz
...

:wq


이제 아파치 웹서버를 돌려보자.
# /usr/local/apache/bin/apachectl start         <--- apachectl 이란걸.. 주의
/usr/local/apache/bin/apachectl start: httpd started
라는 메시지를 확인하고
데몬도 잘 돌아가나 확인한다.
# ps -aux | grep apache
...
...
주루룩.
#

다 된거 같다면. 웹 브라우저를 켜고 IP주소를 입력해 보자~
우리의 서버IP 192.168.10.1 를 주소창에 치고 엔터를 치면
(자기 서버IP를 써서 확인한다. 아니면 localhost라고 써도된다.
주의할것은 포트를 변경했을경우 예를들어 8088로 변경시
localhost:8088  또는
192.168.10.1:8088
라고 써야한다.)

먼가가 나올것이다. 국가를 고르라는 말이 나오고 kr를 선택하면
아파치 임시 페이지가 나온다..


php를 확인해 보자.
# vi /usr/local/apache/htdocs/phpinfo.php   <---phpinfo 파일을 만드는 거다.

<?
phpinfo();
?>

:wq

이제 웹브라우저 주소창에 이러케 입력하자.  
http://192.168.10.1/phpinfo.php

머가 보이나? 모든 정보가 보일것이다.

서버 시작시 이 APM이 돌아가게 만드는 거~

# vi /etc/rc.d/rc.local

다음 내용을 추가하자
...

/usr/local/apache/bin/apachectl start
/usr/local/mysql/bin/safe_mysqld &
:wq



-----------------------------
8. 제로보드 설치
-----------------------------
제로보드 설치는 www.nzeo.com 에 가서 보고 한다.

처음 설치라면 그대로 진행하면되고, 백업일경우에는 install하지 말고 DB설정만 하고
DB를 복구 시킨다. 아래 예제 참조..

install하게 되면 복구시에 admin계정이 중복되므로 설치가 안된다.

(제로보드 DB설정 예제)
mysql> use mysql;
mysql> insert into user (host,user,password) values ('localhost','doogysp', PASSWORD('abcd'));
mysql> create database zboard;
mysql> insert into db values ('localhost','zboard','doogysp','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y');

(Mysql5 사용자라면..
mysql> insert into db values ('localhost', 'zboard', 'doogysp', 'Y', 'Y', 'Y','Y', 'Y', 'Y','N', 'Y','Y','Y','Y','Y','Y','Y','Y','N','N');
)

mysql> FLUSH PRIVILEGES;
mysql> quit

제로보드 DB복구는 백업받았던 sql파일이 있는 디렉토리에서
/usr/local/mysql/bin/mysql -u doogysp -pabcd zboard < zboard_20041121.sql

여기서 -pabcd는 패스워드가 abcd임을 의미한다..즉 각자 설정한 password를 -p에 이어서
써주면 된다.

아래 예제는 DB를 잘못 설치했을때 다시 지우는 쿼리문이다. 이쿼리 실행후 다시 DB설정을 하면된다.

/usr/local/mysql/bin/mysqladmin -u root -pabcd drop zboard

mysql> use mysql;
mysql> delete from user where User='doogysp';
mysql> delete from db where User='doogysp';
mysql> FLUSH PRIVILEGES;
mysql> quit



백업해둔 압축파일들을 tar xzvf 명령으로 압축을 풀고 적절한 디렉토리에 옮긴다.
다만 미리 백업해둔 제로보드 재설치때 퍼미션에 문제가 있다고 뜨면 다음과 같이 한다.

제로보드를 설치한 폴더의 권한 707
제로보드 안에 data디렉토리 및 icon디렉토리는 755로 설정하고
chgrp -R nobody data
chown -R nobody data
chgrp -R nobody icon
chown -R nobody icon
으로 그룹과 사용자를 모두 nobody로 설정


새로 설치한 리눅스 서버가 Fedora core 3이상일 경우 방화벽 설정으로 포트를 열어야함
- iptables에서 사용할 포트를 열어야 접속가능

이상이다..
제목 글쓴이 날짜
winXP + APM + 제로보드 이용한 홈피제작(동영상강좌) [1] kim 2004.12.04
리눅스 서버 설치 후 APM 설치 및 제로보드 설치 또는 백업 후 복구 과정별 설명.. [1] 김기윤761 2004.11.25
공유기 환경에서 Serv-U 로 FTP 운영하기 [7] file 꿈바라기 2004.11.04
리눅스 네트워크 서버 및 웹서버 구축 방법을 강의 [10] 조영훈 2004.10.19
WINDOW에서 APM_SETUP 쓰시는 분들 Mysql 자동 백업하기 김수남 2004.10.15
사용자가 sh 명령어를 이용하여, 웹상에서 실행한번으로. 계정 백업하기 [3] 김동욱 2004.10.10
무단링크 방지설정 [12] 토토루 2004.10.09
도메인 주소에 www 자동으로 붙이기 [2] 토토루 2004.10.08
특정파일 엑세스 금지하기 [2] 토토루 2004.10.08
아파치 로그관리 팁이요 [4] 조정필 2004.10.01
[허접] turck-mmcache로 iis에서 php 빠르게하기 [3] file hanpedro 2004.09.23
(LAMPLinux,Apache,MySQL,PHP) 새로운 기능 및 설치 손상모 2004.09.15
[튜닝] apache에서 이미지 캐싱 처리(mod_expires) [1] 좋은진호 2004.09.02
DigiBBS 서버 이야기 2 - 서버 선택과 구매 박용구 2004.08.22
DigiBBS 서버 이야기 - IDC 방문 이야기 [2] 박용구 2004.08.22
sh명령어를 이용한 웹사이트 관리 김동욱 2004.08.09
명령수행 결과를 파일로 저장(초간단) [5] u2em 2004.08.02
윈도우즈용 메일서버 추천- NMail [3] u2em 2004.07.19
MySQL 백업과 복구 [11] u2em 2004.07.11
Windows 2003에서 유저.내아이디.dnip.net 셋팅 [3] u2em 2004.07.08