# Cafe24 10G자이언트플러스 호스팅 환경 테스트 서버 Cafe24 10G자이언트플러스 호스팅 환경과 최대한 유사한 개발 환경 구축을 목표로 합니다. ## 지원 PHP 버전 - **PHP 8.2** (포트: 8082) - 현재 운영 중인 버전 - **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 > ``` ## 접속 정보 | 서비스 | URL | 포트 | |--------|-----|------| | **PHP 8.2** | http://localhost:8082 | 8082 | | **PHP 8.4** | http://localhost:8084 | 8084 | | **phpMyAdmin** | http://localhost:8888 | 8888 | | **MariaDB** | localhost:3306 | 3306 | ### phpMyAdmin 접속 - **URL**: http://localhost:8888 - **사용자명**: `.env`의 `MYSQL_USER` 값 - **비밀번호**: `.env`의 `MYSQL_PASSWORD` 값 - **데이터베이스**: `.env`의 `MYSQL_DATABASE` 값 ## 접속 정보 - **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 루트 비밀번호 - `MYSQL_USER` - MariaDB 사용자명 (phpMyAdmin 로그인에도 사용됨) - `MYSQL_PASSWORD` - MariaDB 사용자 비밀번호 (phpMyAdmin 로그인에도 사용됨) - `MYSQL_DATABASE` - 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 데이터 볼륨 ├── backup/ # 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 기본값 적용