지식 공유/IT, 인공지능 정보

하나의 호스팅으로 여러 홈페이지 효율적으로 관리하기

대대소소 2025. 5. 13. 16:55
728x90

웹사이트를 여러 개 운영해야 하는데 호스팅 비용이 부담되시나요? 혹은 그누보드를 이용해 다양한 사이트를 효율적으로 관리하고 싶으신가요? 이 글에서는 하나의 호스팅 서버에서 여러 개의 독립적인 웹사이트를 구축하고 관리하는 방법을 상세히 알려드립니다. 특히 그누보드(GNU Board)를 활용한 메뉴 관리 시스템을 복제하여 각기 다른 웹사이트를 운영하는 효율적인 방법을 단계별로 설명해 드리겠습니다.

 

💡 TIP: 하나의 호스팅으로 여러 웹사이트를 운영하면 비용 절감은 물론, 통합 관리로 인한 시간 절약까지 가능합니다!

📑 목차


🔍 멀티 호스팅의 개념과 장점

멀티 호스팅이란 하나의 서버나 호스팅 계정에서 여러 개의 웹사이트를 운영하는 방식을 말합니다. 이 방식은 다음과 같은 장점이 있습니다:

🔸 비용 절감: 여러 호스팅 계정 대신 하나의 계정으로 여러 사이트 운영 🔸 관리 효율성: 중앙 집중식 관리로 유지보수 시간 단축 🔸 리소스 공유: 데이터베이스 및 파일 시스템 공유로 효율성 증대 🔸 백업 용이성: 한 번의 백업으로 모든 사이트 보호 가능

그누보드를 사용하면 이러한 멀티 호스팅 구현이 더욱 쉬워집니다. 핵심은 메뉴 관리 시스템을 복제하여 각 사이트별로 독립적인 메뉴 구조를 가질 수 있게 하는 것입니다.

이미지 표시 그누보드 관리자 화면에서 메뉴 관리 섹션


⚙️ 준비 사항

멀티 호스팅 설정을 시작하기 전에 다음 사항들을 준비해주세요:

1️⃣ 그누보드가 설치된 호스팅 계정 2️⃣ 데이터베이스 접근 권한 (phpMyAdmin 접속 가능) 3️⃣ FTP 접속 정보 4️⃣ 기본적인 PHP와 MySQL 지식

💡 TIP: 작업 전 반드시 현재 사이트를 백업해두세요. 파일과 데이터베이스 모두 백업이 필요합니다!


📋 메뉴 관리 테이블 추가하기

먼저 phpMyAdmin에서 기존 메뉴 테이블을 복제하여 새로운 메뉴 테이블을 생성합니다.

1️⃣ phpMyAdmin에 접속하여 그누보드 데이터베이스로 이동합니다.

2️⃣ 새 테이블 생성: 기존 g5_menu 테이블과 동일한 구조의 g5_menu2 테이블을 생성합니다.

다음 SQL 쿼리를 실행하세요:

 
sql
CREATE TABLE g5_menu2 LIKE g5_menu;

3️⃣ 테이블 구조 확인: 생성된 테이블에 다음 필드가 있는지 확인합니다.

 
`me_id` int(13) NOT NULL AUTO_INCREMENT,     
`me_code` varchar(257) NOT NULL DEFAULT '',
`me_name` varchar(257) NOT NULL DEFAULT '',
`me_link` varchar(257) NOT NULL DEFAULT '',
`me_target` varchar(257) NOT NULL DEFAULT '0',
`me_order` int(13) NOT NULL DEFAULT '0',
`me_use` tinyint(4) NOT NULL DEFAULT '0',
`me_mobile_use` tinyint(4) NOT NULL DEFAULT '0',
phpMyAdmin에서 테이블 복제 및 확인하는 과정

 


🛠️ 관리자 메뉴 설정하기

이제 관리자 메뉴에 새로운 메뉴 관리 항목을 추가합니다.

1️⃣ admin.menu100.php 파일 수정:

/adm/admin.menu100.php 파일을 열고 다음 배열을 추가합니다:

 
php
$menu['menu100'][] = array('100290', '메뉴 관리2', G5_ADMIN_URL.'/menu_list2.php', 'menu2');

이 코드는 관리자 메뉴에 '메뉴 관리2'라는 새로운 항목을 추가합니다. 100290은 메뉴의 고유 ID로, 기존 메뉴 ID와 중복되지 않도록 설정해야 합니다.

💡 TIP: 관리자 메뉴 ID는 중복되면 문제가 발생할 수 있으니 반드시 고유한 값을 사용하세요!


📝 메뉴 관리 페이지 복제하기

다음으로 기존 메뉴 관리 페이지를 복제하여 새로운 메뉴 관리 페이지를 생성합니다.

1️⃣ menu_list.php 복제: /adm/menu_list.php를 복사하여 /adm/menu_list2.php를 생성합니다.

2️⃣ menu_list_update.php 복제: /adm/menu_list_update.php를 복사하여 /adm/menu_list2_update.php를 생성합니다.

3️⃣ 코드 수정: 복제한 파일들에서 다음 내용을 수정합니다:

menu_list2.php 파일:

 
php
$sub_menu = "100290"; // 관리자 메뉴에서 추가한 ID와 일치시킴
// 'menu' 관련 변수를 'menu2'로 변경
$g5['menu_table'] -> $g5['menu2_table']

menu_list2_update.php 파일:

 
php
$sub_menu = "100290"; // 관리자 메뉴 ID 일치
goto_url('./menu_list.php'); -> goto_url('./menu_list2.php');
$g5['menu_table'] -> $g5['menu2_table']

 

관리자 페이지에 추가된 '메뉴 관리2' 항목

 


🔄 설정 파일 수정하기

이제 그누보드 설정 파일에 새 테이블 정보를 추가합니다.

1️⃣ config.php 수정: /data/dbconfig.php 파일을 열고 다음 코드를 추가합니다:

 
php
$g5['menu2_table'] = G5_TABLE_PREFIX.'menu2'; // 메뉴관리2 테이블 추가

이 설정으로 그누보드 시스템에서 새로 생성한 메뉴 테이블을 인식할 수 있게 됩니다.


🖥️ 프론트엔드 파일 설정하기

이제 프론트엔드에서 새로운 메뉴를 표시할 파일을 설정합니다.

1️⃣ head2.php 생성: /theme/테마이름/head.php를 복사하여 /theme/테마이름/head2.php를 생성합니다.

2️⃣ 코드 수정: 생성한 head2.php 파일에서 다음 내용을 수정합니다:

 
php
// 기존 메뉴 테이블을 새 메뉴 테이블로 변경
{$g5['menu_table']} -> {$g5['menu2_table']}

3️⃣ 모바일 지원: 모바일 테마를 사용하는 경우 다음과 같이 설정합니다:

 
php
include_once(G5_THEME_MOBILE_PATH.'/head2.php');
// 또는 기존 head.php를 사용하려면
include_once(G5_THEME_MOBILE_PATH.'/head.php');

📱 모바일 지원 설정하기

모바일 환경에서도 새로운 메뉴 시스템을 사용하려면 다음 단계를 따르세요.

1️⃣ 모바일 head2.php 생성: /theme/테마이름/mobile/head.php를 복사하여 /theme/테마이름/mobile/head2.php를 생성합니다.

2️⃣ 코드 수정: 마찬가지로 메뉴 테이블 참조를 변경합니다:

 
php
{$g5['menu_table']} -> {$g5['menu2_table']}

🔀 사이트 분리하기

마지막으로 각기 다른 사이트를 위한 인덱스 파일을 설정합니다.

1️⃣ index 파일 분리: 기존 index.php를 기반으로 index1.php, index2.php 등을 생성합니다.

2️⃣ 배너 및 콘텐츠 분리: 각 인덱스 파일에서 표시할 배너와 콘텐츠를 적절히 분리합니다.

3️⃣ 헤더 파일 연결: 각 인덱스 파일에서 적절한 헤더 파일을 호출합니다:

 
php
// index1.php에서는 기존 head.php 사용
include_once(G5_PATH.'/head.php');

// index2.php에서는 새로운 head2.php 사용
include_once(G5_PATH.'/head2.php');

이렇게 설정하면 동일한 호스팅에서 각기 다른 메뉴 구조와 디자인을 가진 여러 웹사이트를 운영할 수 있습니다.


❓ 자주 묻는 질문

🤔 여러 개의 메뉴 시스템이 데이터베이스 성능에 영향을 미치나요?

메뉴 테이블은 크기가 작고 조회가 빈번하지 않아 성능에 큰 영향을 미치지 않습니다. 하지만 너무 많은 사이트를 한 호스팅에서 운영할 경우 전체적인 서버 부하가 증가할 수 있습니다.

🤔 도메인 연결은 어떻게 하나요?

여러 도메인을 하나의 호스팅에 연결하려면 DNS 설정에서 각 도메인을 동일한 호스팅 IP로 연결하고, 웹 서버 설정에서 가상 호스트를 구성해야 합니다. 이 부분은 호스팅 제공업체에 문의하거나 서버 관리자의 도움을 받는 것이 좋습니다.

🤔 각 사이트별로 회원 시스템을 분리할 수 있나요?

기본적으로 그누보드는 회원 시스템이 통합되어 있습니다. 회원 시스템을 완전히 분리하려면 더 복잡한 설정이 필요하며, 이는 본 글의 범위를 벗어납니다. 필요하다면 전문가의 도움을 받는 것이 좋습니다.


✅ 마무리

이제 하나의 호스팅에서 여러 개의 웹사이트를 효율적으로 운영하는 방법을 알게 되셨습니다. 이 방법을 활용하면 호스팅 비용을 절감하면서도 각기 다른 목적의 웹사이트를 독립적으로 관리할 수 있습니다.

특히 그누보드의 메뉴 관리 시스템을 복제하는 방식으로 각 사이트별로 고유한 메뉴 구조를 가질 수 있게 되었습니다. 이 기법은 그누보드의 유연성을 극대화하는 좋은 예입니다.

💡 TIP: 처음 설정할 때는 복잡해 보일 수 있지만, 한 번 설정해두면 추가 사이트 확장이 매우 쉬워집니다. 꼭 백업을 생활화하세요!

이 가이드가 여러분의 웹사이트 관리에 도움이 되었기를 바랍니다. 질문이나 피드백이 있으시면 언제든지 댓글로 남겨주세요.

728x90