feat: PHP 8.2/8.4 동시 실행 지원 및 프로젝트 구조 개편

- docker-compose.yml 수정: PHP 8.2 (포트 80)와 8.4 (포트 8084) 동시 실행
- 웹루트 및 MariaDB 공유 설정
- 각 PHP 버전별로 로그 디렉토리 분리 (logs/apache/8.2, logs/apache/8.4 등)
- 필요한 폴더 구조 생성 및 .gitkeep 파일 추가
- README.md 업데이트: 접속 정보, 폴더 구조, 주요 특징 설명 추가
This commit is contained in:
2025-12-26 12:23:50 +09:00
parent 65d8cf7813
commit 0bbabc5b28
8 changed files with 67 additions and 24 deletions

View File

@ -1,43 +1,62 @@
# 퍼스트가든 사이트 테스트용 php-apache 이미지 # Cafe24 10G자이언트플러스 호스팅 환경 테스트 서버
- Cafe24 10G자이언트플러스 호스팅 유사한 개발 환경 구축을 목표로 Cafe24 10G자이언트플러스 호스팅 환경과 최대한 유사한 개발 환경 구축을 목표로 합니다.
## 지원 PHP 버전 ## 지원 PHP 버전
- PHP 8.2 - **PHP 8.2** (포트: 80) - 현재 운영 중인 버전
- PHP 8.4 - **PHP 8.4** (포트: 8084) - 추후 업그레이드 대비용
> 두 버전이 동시에 실행되며, 동일한 웹루트와 MariaDB를 공유합니다.
## 실행 방법 ## 실행 방법
```bash ```bash
cp .env.example .env cp .env.example .env
docker compose up -d --build docker compose up -d --build
```
## 접속 ## 접속 정보
http://localhost - **PHP 8.2**: http://localhost
DB: localhost:3306 - **PHP 8.4**: http://localhost:8084
- **MariaDB**: localhost:3306
## PHP 버전 변경 ## 설정 변경
`.env` 파일에서 `PHP_VERSION=8.4` `.env` 파일에서 다음 항목을 수정할 수 있습니다:
- `WEB_ROOT` - 웹소스 경로 (기본값: `./www`)
- `MYSQL_PORT` - MariaDB 포트 (기본값: 3306)
- `MYSQL_ROOT_PASSWORD` - MariaDB 루트 비밀번호
- `TZ` - 타임존 (기본값: Asia/Seoul)
--- ---
### 폴더 구조 ### 폴더 구조
```bash ```
. .
├── docker-compose.yml ├── docker-compose.yml
├── .env ├── .env # 환경설정 파일
├── .env.example # 환경설정 예제
├── README.md ├── README.md
├── logs/ ├── logs/ # 로그 디렉토리
│ ├── apache/ │ ├── apache/
│ │ ├── 8.2/ # PHP 8.2 Apache 로그
│ │ └── 8.4/ # PHP 8.4 Apache 로그
│ ├── php/ │ ├── php/
└── mariadb/ │ ├── 8.2/ # PHP 8.2 에러 로그
│ │ └── 8.4/ # PHP 8.4 에러 로그
│ └── mariadb/ # MariaDB 로그
├── data/ ├── data/
│ └── mariadb/ │ └── mariadb/ # MariaDB 데이터 볼륨
├── www/ ├── www/ # 웹 소스 (PHP 8.2/8.4 공유)
│ └── (웹소스) │ └── (웹소스)
├── 8.2/ ├── 8.2/
│ ├── Dockerfile │ ├── Dockerfile # PHP 8.2 이미지
│ └── entrypoint.sh │ └── entrypoint.sh
└── 8.4/ └── 8.4/
├── Dockerfile ├── Dockerfile # PHP 8.4 이미지
└── entrypoint.sh └── entrypoint.sh
```
``` ## 주요 특징
- **독립적인 PHP 버전**: 8.2와 8.4를 동시에 실행 가능
- **공유 웹루트**: 동일한 소스코드를 양쪽 PHP 버전에서 테스트
- **단일 MariaDB**: 하나의 MariaDB 인스턴스를 두 PHP 서버에서 공유
- **분리된 로그**: 각 PHP 버전별로 로그를 별도로 관리
- **Cafe24 환경 모의**: utf8mb4, 최대 연결수 100 등 Cafe24 기본값 적용

0
data/mariadb/.gitkeep Normal file
View File

View File

@ -1,9 +1,9 @@
services: services:
web: php82:
build: build:
context: . context: .
dockerfile: ${PHP_VERSION}/Dockerfile dockerfile: 8.2/Dockerfile
container_name: cafe24-php-${PHP_VERSION} container_name: cafe24-php-8.2
ports: ports:
- "80:80" - "80:80"
env_file: env_file:
@ -13,12 +13,36 @@ services:
PUID: ${PUID} PUID: ${PUID}
PGID: ${PGID} PGID: ${PGID}
volumes: volumes:
# 웹 소스 # 웹 소스 (공유)
- ${WEB_ROOT}:/var/www/html - ${WEB_ROOT}:/var/www/html
# 로그 분리 # 로그 분리
- ./logs/apache:/var/log/apache2 - ./logs/apache/8.2:/var/log/apache2
- ./logs/php:/var/log/php - ./logs/php/8.2:/var/log/php
depends_on:
- mariadb
restart: unless-stopped
php84:
build:
context: .
dockerfile: 8.4/Dockerfile
container_name: cafe24-php-8.4
ports:
- "8084:80"
env_file:
- .env
environment:
TZ: ${TZ}
PUID: ${PUID}
PGID: ${PGID}
volumes:
# 웹 소스 (공유)
- ${WEB_ROOT}:/var/www/html
# 로그 분리
- ./logs/apache/8.4:/var/log/apache2
- ./logs/php/8.4:/var/log/php
depends_on: depends_on:
- mariadb - mariadb
restart: unless-stopped restart: unless-stopped

0
logs/apache/8.2/.gitkeep Normal file
View File

0
logs/apache/8.4/.gitkeep Normal file
View File

0
logs/php/8.2/.gitkeep Normal file
View File

0
logs/php/8.4/.gitkeep Normal file
View File

0
www/.gitkeep Normal file
View File