원본환경 : Fedora Core 6 X86 i386

lampp를 이용한 APM

목적지환경  Linux server4-166 2.6.18-164.11.1.el5 

Source Compile을 통한 APM

이 포스팅은 리눅스에서 리눅스로 서버이전한 것을 전제로 쓰여집니다.

XE의 서버이전이라 함은, 별로 대수롭지 않게 생각하였다. 하지만, 그리 녹녹한 작업은 아님을 밝혀둔다. 우선 테스트 환경이 원본은 자체도메인이 있는 상황이고, 타겟은 자체도메인이 없는 IP/~사용자계정 환경이었다.

도메인이 없는 환경에서는 단순한 사용자계정만 가지고 서버이전을 한다면, CSS가 적용되지 않으며, 게시글간의 이동이 불가능하다. 꼭 도메인이 적용된 Document Root에서 작업하거나 그런 여건이 되지 않는다면, Apache의 httpd.conf를 열어 Document Root를 계정디렉토리로 인식시키기 바란다.

웹호스팅 시스템 하에서는 도메인구입이 같이 이루어지니, 별탈없이 진행할수 있겠다.

1. 원본으로부터의 백업.

우선 mysqldump명령어가 실행되는지 확인하여 보자.

[root@localhost htdocs]# whereis mysqldump
mysqldump: /usr/local/mysql/bin/mysqldump
[root@localhost htdocs]# /usr/local/mysql/bin/mysqldump -uDB계정 -pDB비번 > 데이타베이스명.sql

데이타베이스가 백업되면 그다음으로 자신이 xe폴더의 바로앞 상위폴더로 이동하자.

#tar –cvvf  xe_backup.tar public_html/

이런식으로 다운받아 sql과 tar두 화일을 클라이언트에 내려받는다.

클라이언트에서 내려받는것이 구찮으면 tar와 sql파일을 httpd가 서비스될수 있는 디렉토리에 옮긴다음 타겟 콘솔에서 wget명령으로 내려받으면 ftp를 이용하지 않아도 무관하다.

이제 타겟 서버에서의 도메인의 root document의 상위 디렉토리에 두개의 파일을 업로드하여, tar화일의 압축을 풀어 도메인시작지점에 index.php가 오게한다.

두번째작업으로 타겟 서버의 db에서 원본서버와 같은 이름,같은 비번,같은 문자셋,같은 사용자로 DB를 만든다.

(SQL db명이 틀릴경우 xe폴더아래 file/config/db.config.php파일의 

$db_info->db_userid = '새로운디비유져';

$db_info->db_password = '새로운디비패스워드';

$db_info->db_database = '새로운디비명';

를 변경한다. )


mysql>create database 디비이름 default character set utf8 collate utf8_unicode_ci;

mysql>grant all on 디비이름.* to 사용자이름@localhost by identified by ‘디비비번’;

Mysql을 재가동시켜준후, 백업받은 sql파일을 생성된 DB에 이식시킨다. 

#mysql -u디비사용자 -p디비비번 디비명 < 데이타베이스명.sql

자 이제 DB의 백업은 끝났다.

도메인의 변경이 있는 시스템은 mysql에서 직접 도메인을 변경시켜주어야 한다.

mysql>select * from 식별자_sites;

mysql>update 식별자_sites set domain=”새로 쓰일 도메인이나 IP” where regdate=xxxxxxx;

식별자_sites는 전 서버의 설치시 다른이름으로 지정하지 않은 시스템은 보통 xe_sites가 되며, 지정을 aa로 하였다면 aa_sites가 된다.

select문으로 regdate를 확인하후 조건으로서 regdate문의 데이타를 이용하여 식별자_sites의 domain을 바꾼다.

/* 같은 도메인을 쓰는경우에는 이런 작업을 할필요가 없다.

 

xe디렉토리/files/config/로 이동하여

db.config.php을 vi나 gedit를 이용하여 편집한다.

[root@localhost config]# vi db.config.php
<?php if(!defined("__ZBXE__")) exit();
$db_info->db_type = 'mysql';
$db_info->db_port = '3306';
$db_info->db_hostname = 'localhost';
$db_info->db_userid = '디비계정';
$db_info->db_password = '디비비번';
$db_info->db_database = '디비이름';
$db_info->db_table_prefix = ‘테이블식별자';
$db_info->time_zone = '+0900';
$db_info->use_rewrite = 'N';
$db_info->default_url = 'https://해당domain이나 IP/';
$db_info->use_optimizer = 'Y';
$db_info->qmail_compatibility = 'N';
$db_info->use_ssl = 'none';
$db_info->use_db_session = 'Y';

위와같이 바꾸고 저장..

브라우져에서 https://해당domain이나 IP를 입력하여보자.

page에 CSS가 적용되지 않음을 알수있다!

브라우져에서 Admin모드로 입장한다. 메뉴와 레이아웃 페이지 세팅등을 체크한다.

아마도 레이아웃이 변형되어있을것이다. 상단메뉴,하단메뉴,로고,홈페이지url등을 고쳐주고 여러 설정중에 캐쉬화일 업그레이드를 실행한다.

다시 putty같은 터미널로 돌아와서 압축을 푼 해당디렉토리로 이동하여..

#chown –R nobody.nobody files

#chmod –R 777 files를 실행한다.

다시 클라이언트 브라우져로 돌아와서 F5 새로고침을 하면 자잘한 세팅외에 모두 제대로 이식했음을 알수있다.