Files
php-apache/README.md
KWON 28145032a6 feat: Git Submodule 추가 - firstgarden-web-gnu를 www 폴더로 관리
- www 폴더를 firstgarden-web-gnu 저장소의 Submodule로 설정
- .gitignore에서 www 규칙 제거 (Submodule이 자동 관리)
- README.md 업데이트: clone 방법, Submodule 관리 방법 설명 추가
- SourceTree에서도 메인 저장소와 Submodule 모두 표시됨
2025-12-26 13:13:47 +09:00

120 lines
3.6 KiB
Markdown

# Cafe24 10G자이언트플러스 호스팅 환경 테스트 서버
Cafe24 10G자이언트플러스 호스팅 환경과 최대한 유사한 개발 환경 구축을 목표로 합니다.
## 지원 PHP 버전
- **PHP 8.2** (포트: 80) - 현재 운영 중인 버전
- **PHP 8.4** (포트: 8084) - 추후 업그레이드 대비용
> 두 버전이 동시에 실행되며, 동일한 웹루트와 MariaDB를 공유합니다.
## 실행 방법
### 1. 저장소 클론 (Submodule 포함)
```bash
# Submodule을 함께 클론
git clone --recurse-submodules https://git.siane.kr/firstgarden/php-apache
cd php-apache
```
또는 기존 저장소가 있다면:
```bash
cd php-apache
git submodule update --init --recursive
```
### 2. 환경설정
```bash
cp .env.example .env
```
### 3-1. 첫 배포 시 (로컬에서 빌드 후 사설 저장소에 푸시)
```bash
docker compose up -d --build
```
빌드 완료 후, 빌드된 이미지를 사설 저장소에 푸시:
```bash
# Linux/Mac
./build-and-push.sh
# Windows PowerShell
.\build-and-push.ps1
```
### 3-2. 이후 배포 시 (사설 저장소에서 이미지 다운로드)
```bash
docker compose up -d
```
> **주의**: 사설 저장소에서 이미지를 받으려면 Docker 레지스트리 로그인이 필요합니다.
> ```bash
> docker login reg.firstgarden.co.kr
> ```
## 접속 정보
- **PHP 8.2**: http://localhost
- **PHP 8.4**: http://localhost:8084
- **MariaDB**: localhost:3306
## 설정 변경
`.env` 파일에서 다음 항목을 수정할 수 있습니다:
- `WEB_ROOT` - 웹소스 경로 (기본값: `./www`)
- `MYSQL_PORT` - MariaDB 포트 (기본값: 3306)
- `MYSQL_ROOT_PASSWORD` - MariaDB 루트 비밀번호
- `TZ` - 타임존 (기본값: Asia/Seoul)
---
### 폴더 구조
```
.
├── docker-compose.yml
├── .env # 환경설정 파일
├── .env.example # 환경설정 예제
├── README.md
├── logs/ # 로그 디렉토리
│ ├── apache/
│ │ ├── 8.2/ # PHP 8.2 Apache 로그
│ │ └── 8.4/ # PHP 8.4 Apache 로그
│ ├── php/
│ │ ├── 8.2/ # PHP 8.2 에러 로그
│ │ └── 8.4/ # PHP 8.4 에러 로그
│ └── mariadb/ # MariaDB 로그
├── data/
│ └── mariadb/ # MariaDB 데이터 볼륨
├── www/ # Git Submodule - firstgarden-web-gnu
│ └── (웹소스)
├── 8.2/
│ ├── Dockerfile # PHP 8.2 이미지
│ └── entrypoint.sh
└── 8.4/
├── Dockerfile # PHP 8.4 이미지
└── entrypoint.sh
```
## Git Submodule 관리
### www 폴더 업데이트
```bash
# 최신 웹소스 받기
cd www
git pull origin main
# 또는 메인 저장소에서 함께 업데이트
cd ..
git pull
git submodule update --recursive
```
### SourceTree에서 보기
SourceTree를 열 때 `--recurse-submodules` 옵션으로 Submodule이 자동으로 로드됩니다.
- **메인 저장소**: php-apache (관리 및 빌드 설정)
- **Submodule**: www (firstgarden-web-gnu, 웹소스 코드)
각각 독립적으로 커밋/푸시할 수 있습니다.
## 주요 특징
- **독립적인 PHP 버전**: 8.2와 8.4를 동시에 실행 가능
- **공유 웹루트**: 동일한 소스코드를 양쪽 PHP 버전에서 테스트
- **단일 MariaDB**: 하나의 MariaDB 인스턴스를 두 PHP 서버에서 공유
- **분리된 로그**: 각 PHP 버전별로 로그를 별도로 관리
- **Cafe24 환경 모의**: utf8mb4, 최대 연결수 100 등 Cafe24 기본값 적용