Apache 웹사이트를 Caddy로 이관하는 방법
ServBay는 웹 서버로 Caddy, Nginx, Apache를 제공하여, 사용자가 프로젝트 요구에 따라 자유롭게 선택할 수 있습니다. 대부분의 PHP 프레임워크와 CMS에 대해 ServBay는 이미 Caddy와 Nginx용 URL Rewrite 규칙이 기본 적용되어 있어, 별도의 추가 설정 없이 바로 사용할 수 있습니다.
이 문서는 기존 Apache 설정에 기반한 웹사이트를 ServBay의 Caddy 서버에서 실행하는 과정을 안내합니다. 일반적으로 많이 사용하는 Laravel 및 WordPress 프로젝트를 예시로 설명합니다.
ServBay의 Apache 지원에 대하여
ServBay는 웹 서버로 Apache를 완전하게 지원합니다. 만약 ServBay의 기본 웹 서버를 Apache로 전환하고 싶거나, ServBay에서 Apache 사이트 설정 방법을 알고 싶다면 다음 문서를 확인하세요: 기본 웹 서버를 Apache로 전환하는 방법.
이 글은 기존 Apache 설정의 웹사이트를 ServBay의 Caddy 환경으로 이관하는 데 중점을 두고 있습니다.
개요
웹사이트를 한 웹 서버에서 다른 서버로 이관할 때는 설정과 파일의 적절한 호환이 필요합니다. ServBay는 사용자가 Caddy를 웹 서버로 사용할 수 있도록 제공하며, 주요 PHP 프레임워크와 CMS에 “즉시 사용 가능한” 지원을 탑재하고 있습니다. ServBay가 Rewrite 규칙을 포함한 필요한 설정을 자동으로 처리하므로, Apache 기반의 웹사이트를 Caddy 환경으로 옮기는 일은 대체로 매우 간단합니다. 핵심 단계는 ServBay에 웹사이트를 올바르게 “추가”하는 것입니다.
이관 전 준비 작업
이관 작업을 시작하기 전 다음 사항을 반드시 확인하세요:
- 파일 백업: 웹사이트의 모든 파일(코드, 이미지, 업로드 파일 등)을 전체 백업하세요.
- 데이터베이스 백업: 사이트에서 사용되는 데이터베이스를 내보내기 및 백업하세요. ServBay는 MySQL, PostgreSQL, MongoDB 등 다양한 데이터베이스를 지원하므로, 해당 도구를 이용해 백업하면 됩니다.
- ServBay 설치 확인: macOS에 ServBay가 정상적으로 설치·실행되었는지 확인하세요.
- Caddy 패키지 활성화: ServBay 애플리케이션 내에서 Caddy 패키지가 활성화되어 있는지 확인하세요.
Laravel 웹사이트를 Caddy로 이관하기
임의의 Laravel 웹사이트가 있으며, 해당 Apache 설정은 다음과 같다고 가정합니다:
전형적인 Apache 설정 예시 (ServBay 미사용 환경)
아래는 ServBay를 사용하지 않는 환경에서 Laravel 사이트에 적용되는 전형적인 Apache VirtualHost 설정 예시입니다. DocumentRoot
가 public
디렉토리를 가리키고, .htaccess
의 Rewrite 규칙 사용을 위해 AllowOverride All
이 활성화되어 있습니다.
apache
<VirtualHost *:80>
ServerName laravel.demo
DocumentRoot /path/to/your/laravel/public
<Directory /path/to/your/laravel/public>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# 일반적으로 PHP 처리 방식도 별도 설정함 (예: FPM 또는 mod_php)
# FilesMatch \.php$>
# SetHandler "proxy:unix:/path/to/php-fpm.sock|fcgi://localhost"
# </FilesMatch>
</VirtualHost>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ServBay에서 해당 Laravel 웹사이트 실행(Caddy 사용)
ServBay에서는 위의 Apache 설정을 Caddy 설정으로 직접 편집하거나 변환할 필요가 전혀 없습니다.
ServBay는 로컬 개발환경 구성의 간소화가 핵심 목표입니다. Laravel 같이 널리 사용되는 프레임워크라면, 사이트 추가 시 ServBay가 public
디렉토리 지정과 Rewrite 규칙 포함, 모든 필수 Caddy 설정을 자동 생성해 줍니다.
실제 절차:
- Laravel 프로젝트 전체 파일을 ServBay의 사이트 루트 하위 폴더에 복사합니다. 추천 경로는
/Applications/ServBay/www/your-laravel-project
입니다.public
폴더가 해당 위치에 포함되어 있어야 합니다. - ServBay 애플리케이션을 실행합니다.
- '웹사이트(Websites)' 관리 화면으로 이동합니다.
- '사이트 추가' 버튼을 클릭합니다.
- 열리는 설정창에서:
- 도메인(Domain): 사이트 접속에 사용할 도메인 입력(예:
laravel.servbay.demo
). ServBay가 hosts 파일 등록을 자동 수행합니다. - 사이트 루트(Document Root): 파일 찾아보기 버튼을 통해 Laravel 프로젝트의
public
폴더(예:/Applications/ServBay/www/your-laravel-project/public
)를 지정합니다. - 웹 서버(Web Server):
Caddy
선택. - PHP 버전(PHP Version): 프로젝트에서 요구하는 PHP 버전을 선택.
- 애플리케이션 유형(Application Type): 반드시
Laravel
선택.
→ 이 단계가 자동 설정의 핵심입니다.
- 도메인(Domain): 사이트 접속에 사용할 도메인 입력(예:
- '저장' 혹은 '추가'를 클릭하세요.
모든 과정이 완료되면 ServBay가 laravel.servbay.demo
를 위한 Caddy 설정을 자동 생성하며, public
폴더 지정·URL Rewrite·PHP 요청 처리도 완료됩니다. 이제 브라우저에서 http://laravel.servbay.demo
로 접속하면 해당 Laravel 사이트가 정상 동작합니다.
Caddy 설정 예시(이론상, 참고용 / ServBay에서 자동 생성됨)
ServBay가 무슨 설정을 자동 생성하는지 참고용으로 제시합니다.
직접 이 설정파일을 만들거나 수정할 필요는 없습니다.
bash
laravel.servbay.demo {
# 사이트 루트(=public) 디렉토리 지정
root * /Applications/ServBay/www/your-laravel-project/public
# PHP FastCGI 처리 설정
# ServBay가 PHP 버전/설정에 따라 소켓 경로를 자동 지정
php_fastcgi unix//Applications/ServBay/tmp/php-cgi.sock
# 정적 파일 서비스 활성화
file_server
# Laravel 핵심 Rewrite 규칙: 요청이 실제 파일/폴더가 아닐 때 index.php로 rewite
@notStatic {
not {
file {
try_files {path} {path}/ /index.php?{query}
}
}
}
rewrite @notStatic /index.php
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
WordPress 웹사이트를 Caddy로 이관하기
임의의 WordPress 웹사이트가 있으며, 해당 Apache 설정은 다음과 같다고 가정합니다:
전형적인 Apache 설정 예시 (ServBay 미사용 환경)
아래는 ServBay 미사용 환경에서 WordPress를 위한 전형적인 Apache VirtualHost 예시입니다. WordPress는 주로 설치 폴더를 웹사이트 루트로 사용하며, .htaccess 기반 Rewrite로 퍼머링크(고정 링크) 등 다양한 기능을 구현합니다.
apache
<VirtualHost *:80>
ServerName wordpress.demo
DocumentRoot /path/to/your/wordpress
<Directory /path/to/your/wordpress>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# 일반적으로 PHP 처리 방식도 별도 설정함
# FilesMatch \.php$>
# SetHandler "proxy:unix:/path/to/php-fpm.sock|fcgi://localhost"
# </FilesMatch>
</VirtualHost>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ServBay에서 해당 WordPress 사이트 실행(Caddy 사용)
Laravel과 동일하게, ServBay에서 WordPress 사이트를 Caddy로 실행하는 경우 별도의 Caddy 설정 파일을 직접 작성할 필요가 없습니다.
ServBay가 WordPress 요구사항을 인식해서 필요한 Caddy 설정을 자동 생성합니다.
실제 절차:
- WordPress 프로젝트의 전체 파일을 ServBay 사이트 루트 하위 폴더로 복사합니다. 추천 경로는
/Applications/ServBay/www/your-wordpress-site
입니다.index.php
,wp-admin
,wp-includes
등 주요 파일 및 폴더가 모두 포함되어야 합니다. - ServBay 애플리케이션을 실행합니다.
- '웹사이트(Websites)' 관리 화면으로 이동합니다.
- '사이트 추가' 버튼을 클릭합니다.
- 설정창에서:
- 도메인(Domain): 사이트 접근용 도메인 입력(예:
wordpress.servbay.demo
) - 사이트 루트(Document Root): 찾아보기 버튼으로 WordPress 프로젝트의 루트 폴더(예:
/Applications/ServBay/www/your-wordpress-site
)를 지정. - 웹 서버(Web Server):
Caddy
선택. - PHP 버전(PHP Version): 프로젝트 요구 PHP 버전 선택.
- 애플리케이션 유형(Application Type): 반드시
WordPress
선택.
- 도메인(Domain): 사이트 접근용 도메인 입력(예:
- '저장' 혹은 '추가' 클릭.
ServBay가 자동으로 wordpress.servbay.demo
용 Caddy 설정을 생성하고, 사이트 루트·Rewrite(고정 링크 지원)·PHP 요청 처리까지 모두 세팅합니다. 이제 브라우저에서 http://wordpress.servbay.demo
로 WordPress 사이트를 접속하고, 퍼머링크 등도 정상 작동함을 확인할 수 있습니다.
Caddy 설정 예시(이론상, 참고용 / ServBay에서 자동 생성됨)
아래는 WordPress 요구에 부합하는 이론상 Caddy 설정 예시입니다.
직접 작성/수정할 필요는 없습니다.
bash
wordpress.servbay.demo {
# 사이트 루트 디렉토리 지정
root * /Applications/ServBay/www/your-wordpress-site
# PHP FastCGI 처리
php_fastcgi unix//Applications/ServBay/tmp/php-cgi.sock
# 정적 파일 서비스 활성화
file_server
# WordPress용 주요 Rewrite: 고정 링크 지원
# 파일/폴더가 실제로 없으면 index.php로 rewrite
@notStatic {
not {
file {
try_files {path} {path}/ /index.php?{query}
}
}
}
rewrite @notStatic /index.php
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
요약
기존 Apache 환경에 구축한 Laravel 또는 WordPress 사이트를 ServBay의 Caddy 서버로 쉽게 이관할 수 있습니다. ServBay가 널리 쓰이는 애플리케이션 유형에 대해 기본 지원을 제공하기 때문입니다. 별도로 Apache의 .htaccess
나 VirtualHost 설정을 Caddyfile로 변환할 필요 없이, ServBay 애플리케이션의 '웹사이트' 관리 화면에서 사이트 추가 시 도메인, 사이트 루트, Web 서버(Caddy), 애플리케이션 유형(Laravel, WordPress 등)만 지정하면, 필요한 모든 Caddy 설정(복잡한 Rewrite 포함)이 자동 완성됩니다.
이러한 자동화 덕분에 이관과 로컬 개발 설정이 매우 단순해지며, 서버 설정에 신경 쓸 필요 없이 코드 개발 자체에 집중할 수 있습니다.