ToggleAMP (토글앰프)
개발자를 위한 웹서버이빈다.
ToggleAMP.cmd 실행시 윈도우용 콘솔창은 뜨지 않습니다.
프로그램 종료는 Ctrl + C 누르면 실행중인서버의 자동종료후
Terminate batch job (Y/N)? Y 하시면 됩니다.
ToggleAMP.exe 실행하면 윈도우 콘솔창과 시스템트레이에 실행 됩니다.
프로그램 종료시 윈도우 콜솔에서 종료 버튼을 누르거나 시스템트레이에서 오른쪽 마우스누르고 안전종료 하시면
실행중인 서버가 자동종료후 프로그램 종료가 됩니다.
실행시 문제가 생기면 아래 방법으로 실행 하세요.
앞으로는 **ToggleAMP.cmd**를 더블 클릭하여 실행하시면 스마트 앱 컨트롤 경고 없이 깔끔하게 서버 가동, 웹 대시보드 제어, 콘솔 실시간 로그 확인까지 한 번에 이용하실 수 있습니다.
만약 C# 데스크톱 창 형태의
ToggleAMP.exe를 꼭 직접 띄우고 싶으시다면:Windows 보안→앱 및 브라우저 컨트롤→스마트 앱 컨트롤설정에서 개발자 모드에 맞게 '평가' 또는 '끄기'로 조정하시거나,가장 간편하고 안전한 **
ToggleAMP.cmd**를 실행하시는 것을 권장합니다.
## 📖 개요 (Overview)
ToggleAMP는 Windows 환경에서 복잡한 설치 과정 없이 압축 해제만으로 즉시 사용할 수 있는 **독립형 포터블 로컬 웹 개발 스택 관리자**입니다.
- **네이티브 C# Windows 데스크톱 앱 (ToggleAMP.exe) & 시스템 트레이 (NotifyIcon)**
- **트레이 우클릭 메뉴 및 데스크톱 창을 통한 웹서버, PHP, DB 1-클릭 실시간 스위칭 및 다국어 지원**
- **Nginx ⇄ Apache 웹 서버 실시간 전환**
- **PHP 5.2 (Legacy) ~ PHP 8.4 최신 버전 자유 전환**
- **MariaDB 11.4/10.11 및 MySQL 8.4/8.0/5.1 다중 데이터베이스 엔진**
- **5개 전체 서비스 (웹서버, PHP, DB, Redis, Mailpit) 실시간 포트 & 가동 상태 추적 및 [ 시작 ] ↔ [ 종료 ] 동적 제어**
- **듀얼 phpMyAdmin 아키텍처** (최신 v5.2.2 & 레거시 v3.1.3.1)
- **가상 호스트 (*.test) & 로컬 SSL 자동 발급 및 안전 영구 삭제 기능**
- **버전별 환경설정 편집기 & 대형 실시간 로그 스트리밍 콘솔**
- **시스템 전체 다국어 지원 (한국어 기본, English, 日本語)**
- **중앙 집중식 버전 관리 및 버전 불일치 무결성 검증 (VERSION.txt)**
## ✨ 핵심 기능 (Key Features)
### 1. 듀얼 웹 서버 엔진 (Nginx 1.26.1 & Apache 2.4.68)
- 1-클릭 또는 CLI 명령어로 Nginx와 Apache를 자유롭게 전환할 수 있습니다.
- 통일된 FastCGI(127.0.0.1:9000) 아키텍처를 적용하여 웹 서버 전환 시에도 PHP 설정과 프로젝트 연결이 완벽하게 유지됩니다.
### 2. 멀티 PHP 런타임 스위칭 (PHP 5.2 ~ 8.4)
- **지원 버전**: PHP 8.4.25, PHP 8.3.33, PHP 8.2.33, PHP 8.1.34, PHP 7.4.33, PHP 5.2.9 (Legacy).
- **데이터베이스 드라이버 완비**: mysqli, pdo_mysql, sqlite3, pdo_sqlite 내장 지원.
- 버전 전환 시 php-cgi.exe 프로세스를 안전하게 교체하며, 현재 활성화된 웹 서버가 자동으로 설정을 갱신합니다.
- 레거시 스택 자동 페어링: PHP 5.2 선택 시 MySQL 5.1로 자동 동기화.
### 3. 멀티 데이터베이스 엔진 (MariaDB & MySQL)
- **MariaDB**: 11.4 LTS, 10.11 LTS
- **MySQL**: 8.4 LTS, 8.0, 5.1.33 (Legacy)
- 각 엔진 및 버전별로 데이터 저장소(data/db/)가 격리되어 버전 간 충돌 없이 안전하게 보관됩니다.
- 초기 구동 시 데이터 디렉터리가 자동 초기화(mariadb-install-db.exe / mysqld --initialize-insecure)되며 로컬 개발용 권한이 기본 설정됩니다.
### 4. 듀얼 phpMyAdmin (phpMyAdmin Dual Engine)
- **phpMyAdmin (최신 v5.2.2)**: http://localhost/myadmin/ (PHP 7.x ~ 8.x MySQL/MariaDB 환경)
- **phpMyAdmin 3.1 (v3.1.3.1)**: http://localhost/phpmyadmin/ (PHP 5.2 레거시 환경)
### 5. 가상 호스트 (*.test) & 로컬 SSL 자동화 및 안전 삭제
- www/ 폴더 내 프로젝트 디렉터리를 실시간으로 자동 감지합니다.
- **프레임워크 자동 매핑**:
- Laravel / Symfony 프로젝트: public/ 디렉터리를 Document Root로 자동 라우팅
- PHP 표준 프로젝트: index.php 및 일반 스크립트 실행
- 정적 HTML 사이트: 불필요한 PHP 리라이트 없이 HTML 파일 직접 서빙
- **Hosts 관리자 권한 동기화**: [Hosts 관리자 권한 동기화] 버튼 클릭 시 UAC 권한 승인으로 Windows hosts 파일에 *.test 도메인을 1초 만에 자동 등록.
- **안전 삭제 기능 (Delete with Confirmation)**:
- 대시보드 가상 호스트 목록에서 [ 🗑️ 삭제 ] 버튼 클릭 시 경고 확인 모달이 노출됩니다.
- 사용자가 확인을 완료하면 www/프로젝트폴더 내 모든 파일, Nginx/Apache VHost 설정, SSL 인증서가 안전하게 영구 정리됩니다. (시스템 기본 루트인 default는 보호되어 삭제 불가)
- 도메인 설정 없이 http://localhost/프로젝트폴더명으로도 언제든지 직접 접속 가능.
### 6. Quick Tools & 패키지 매니저
- **미설치 패키지**: [ 📥 설치 ] 버튼으로 공식 바이너리를 원클릭 다운로드 및 압축 해제.
- **설치된 패키지**: [ 적용 ] 버튼으로 즉시 전환하거나, [ 🗑️ 삭제 ] 버튼으로 바이너리를 삭제하여 디스크 용량 절약.
- **안전 잠금(Safe Lock)**: 서버가 실행 중일 때는 오작동 방지를 위해 런타임 전환 및 패키지 삭제가 안전하게 차단됩니다.
### 7. 다국어 지원 (i18n)
- 상단 네비게이션 헤더의 드롭다운을 통해 실시간으로 언어를 변경할 수 있습니다.
- **지원 언어**: English (기본값), 한국어, 日本語
- language/*.lang 파일 기반으로 작동하며, ToggleAMP, Nginx, Apache, PHP, SQL, PostgreSQL, phpMyAdmin 등 시스템 고유명사는 보존됩니다.
### 8. 중앙 집중식 버전 관리 및 버전 무결성 검증 (VERSION.txt)
- 프로젝트 루트의 VERSION.txt 파일 하나로 시스템 전체(대시보드 UI, CLI 배너, API)의 버전을 통합 관리합니다.
- 변경 내역(Changelog & Release Notes)이 VERSION.txt에 누적 기록됩니다.
- **버전 불일치 무결성 검증 (Version Integrity Check)**: 실제 시스템 코드 버전과 VERSION.txt에 기재된 버전이 불일치할 경우 CLI 배너와 대시보드 상단에 경고 알림(Mismatch Detected)이 자동으로 표시되어 버전 동기화 실수를 방지합니다.
## 🚀 빠른 시작 및 실행/종료 방법 (Quick Start & Shutdown)
### 1. 프로그램 실행 (Launch)
- **ToggleAMP.exe** (또는 ToggleAMP.lnk 3D 방패 아이콘 / ToggleAMP.vbs)를 더블클릭합니다.
- 백그라운드에서 데몬이 즉시 시작되고 **웹 대시보드(http://localhost:4000)가 자동으로 브라우저에 열립니다.**
대시보드 주소: http://localhost:4000
### 2. 프로그램 완전 종료 (Shutdown)
ToggleAMP 및 실행 중인 모든 스택 서비스(Nginx/Apache, PHP, DB, Redis, Mailpit)를 종료하는 방법은 다음과 같습니다:
1. **윈도우 시스템 트레이에서 1-클릭 종료 (추천)**:
- 화면 우측 하단 트레이 아이콘 우클릭 ➡️ **❌ ToggleAMP 완전 종료 (Exit)**를 클릭합니다.
2. **통합 제어 센터 윈도우에서 종료**:
- ToggleAMP 제어 센터 창 상단 툴바의 **❌ 종료** 버튼을 클릭합니다.
3. **원클릭 종료 스크립트 실행**:
- c:\ToggleAMP\ToggleAMP-stop.cmd를 더블클릭합니다.
4. **터미널(CLI) 명령어 종료**:
- ToggleAMP.exe stop 또는 ToggleAMP stop 또는 ToggleAMP shutdown
## 💻 CLI 명령어 레퍼런스 (Command Reference)
| 명령어 | 설명 | 예시 |
|---|---|---|
| ToggleAMP / ToggleAMP.exe | 대시보드 서버를 시작하고 브라우저 열기 | ToggleAMP.exe |
| ToggleAMP status | 전체 서비스 가동 상태 및 활성 버전 출력 | ToggleAMP status |
| ToggleAMP start | 모든 활성 서비스 구동 | ToggleAMP start |
| ToggleAMP stop / shutdown | 모든 서비스 정지 및 ToggleAMP 데몬 완전 종료 | ToggleAMP stop |
| ToggleAMP webserver switch <nginx\|apache> | 웹 서버 엔진 전환 | ToggleAMP webserver switch apache |
| ToggleAMP php use <버전> | PHP 버전 전환 | ToggleAMP php use 8.3 |
| ToggleAMP db switch <mariadb\|mysql\|postgresql> [버전] | 데이터베이스 엔진/버전 전환 | ToggleAMP db switch postgresql 16 |
| ToggleAMP site list | www/ 폴더 내 프로젝트 및 도메인 목록 출력 | ToggleAMP site list |
| ToggleAMP vhost sync | Nginx/Apache VHost 및 Windows hosts 파일 동기화 | ToggleAMP vhost sync |
| ToggleAMP -v / --version | ToggleAMP 현재 버전 출력 (VERSION.txt 기준) | ToggleAMP -v |
## 📁 디렉터리 구조 (Directory Structure)
c:/ToggleAMP/
├── ToggleAMP.exe # C# 네이티브 데스크톱 제어 센터 & 시스템 트레이 앱 (Laragon 스타일)
├── ToggleAMP.lnk # 3D 방패 아이콘 바로가기
├── ToggleAMP.cmd # CMD 배치 스크립트 런처 (CLI 명령어)
├── ToggleAMP-stop.cmd # 1-클릭 서비스 정지 배치 스크립트
├── ToggleAMP.js # 멀티 스택 코어 엔진 & HTTP/SSE 데몬
├── ToggleAMP.ico # 멀티 해상도 Windows 아이콘 (16px ~ 256px)
├── ToggleAMP.png # 원본 3D 방패 로고 이미지
├── VERSION.txt # 마스터 버전 파일 (C:\ToggleAMP\VERSION.txt - 단일 기준)
│
├── version/ # 다국어 버전 히스토리 & 패치 아카이브 (소문자)
│ ├── version_en.txt # 영문 릴리즈 노트 & 패치 히스토리
│ ├── version_kr.txt # 국문 릴리즈 노트 & 패치 히스토리
│ └── version_jp.txt # 일문 릴리즈 노트 & 패치 히스토리
│
├── config/ # 엔진별 설정 파일
│ ├── ToggleAMP.json # 시스템 메인 설정
│ ├── nginx/ # nginx.conf 및 vhosts/*.conf
│ ├── apache/ # httpd.conf 및 vhosts/*.conf
│ ├── php/ # 버전별 php.ini (php-8.4.ini, php-8.3.ini ...)
│ ├── mysql/ # 엔진별 my.ini (my-mariadb-11.4.ini ...)
│ └── postgresql/ # PostgreSQL 설정 (postgresql-16.conf ...)
│
├── bin/ # 포터블 런타임 바이너리 디렉터리
│ ├── nginx/ # Nginx 바이너리
│ ├── apache/ # Apache HTTPD 바이너리
│ ├── php/ # PHP 버전별 폴더 (php-8.4, php-8.3, php-5.2 ...)
│ ├── db/ # DB 버전별 폴더 (mariadb-11.4, mysql-8.0, postgresql-16 ...)
│ ├── phpmyadmin/ # phpmyadmin-latest (v5.2) & phpmyadmin-3.1
│ ├── redis/ # Redis 서버
│ └── mailpit/ # Mailpit 바이너리
│
├── data/ # 데이터베이스 저장소 및 SSL 인증서
│ ├── db/ # DB 데이터 파일 (엔진/버전별 격리 디렉터리)
│ └── ssl/ # 가상 호스트용 .test.crt 및 .test.key
│
├── language/ # 다국어 번역 파일 (.lang)
│ ├── en.lang # English (기본)
│ ├── ko.lang # 한국어
│ └── ja.lang # 日本語
│
├── logs/ # 실시간 활동 및 서비스 로그
│ ├── activity/ # 일자별 활동 로그 (activity-YYYY-MM-DD.log)
│ ├── nginx/ # Nginx access & error 로그
│ ├── apache/ # Apache access & error 로그
│ ├── php/ # PHP error 로그
│ ├── mysql/ # MySQL / MariaDB error 로그
│ └── postgresql/ # PostgreSQL 로그
│
├── web/ # 웹 대시보드 프론트엔드 (Tailwind CSS, FontAwesome)
└── www/ # 사용자 웹 프로젝트 작업 공간
├── default/ # 기본 시작 페이지 (http://localhost)
├── my-laravel/ # Laravel 프레임워크 예제 (http://my-laravel.test)
└── php-info/ # phpinfo() 테스트 페이지 (http://php-info.test)
## 🌐 기본 포트 및 접속 주소 (Default Ports & URLs)
| 서비스 / 도구 | 기본 접속 주소 | 포트 (Port) | 계정 / 비고 |
|---|---|---|---|
| **ToggleAMP 대시보드** | http://localhost:4000 | 4000 | 웹 대시보드 GUI |
| **웹 서버 (Nginx / Apache)** | http://localhost / http://*.test | 80 (HTTP) / 443 (HTTPS) | 가상 호스트 자동 연결 |
| **PHP FastCGI** | 127.0.0.1:9000 | 9000 | MySQL/PGSQL 드라이버 완비 |
| **phpMyAdmin (최신)** | http://localhost/myadmin/ | 80 | MySQL / MariaDB (PHP 7~8) |
| **phpMyAdmin 3.1** | http://localhost/phpmyadmin/ | 80 | MySQL 5.1 (PHP 5.2 Legacy) |
| **MariaDB / MySQL** | 127.0.0.1:3306 | 3306 | User: root (암호 없음) |
| **PostgreSQL** | 127.0.0.1:5432 | 5432 | User: postgres (암호 없음, Trust) |
| **Mailpit Webmail** | http://localhost:8025 | 8025 (Web) / 1025 (SMTP) | 로컬 발송 메일 캡처 |
| **Redis** | 127.0.0.1:6379 | 6379 | 인메모리 캐시 서버 |
## 📄 라이선스 (License)
This project is licensed under the MIT License.
-
ZIPToggleAMP.zip318.7 MB · 다운로드 0회다운로드 불가 (Lv.2 필요)