A lightweight Windows PHP development environment that launches Apache + PHP without bundling MySQL or other databases.
Powered by Python, WinAPDev makes it easy to spin up a minimal PHP server with virtual host management, service control, and SSL certificate support.
- 🚀 Quick launch of Apache + PHP on Windows
- 🐍 Python-powered control (start/stop/manage)
- ⚡ Lightweight compared to full stacks like XAMPP/WAMP/Laragon
- 🎯 Focused only on PHP development (no MySQL or extra services)
- 🖥️ CLI commands for managing services & virtual hosts
- 🔒 Supports self-signed SSL certificates for HTTPS projects
- 📂 Virtual host manager with auto
hostsfile update
- Windows 10/11
- Python 3.8+
- Apache HTTP Server
- PHP (any supported version)
-
Clone this repository:
git clone https://github.com/your-username/WinAPDev.git cd WinAPDev -
Create and activate a virtual environment:
uv venv .venv\Scripts\activate
-
Install dependencies:
uv pip install -r requirements.txt
Navigate to the project root folder and activate the virtual environment:
.venv\Scripts\activate| Command | Description |
|---|---|
python run dev:setup |
Setup Apache + PHP environment server |
python run dev:clear |
Remove Apache + PHP environment server |
python run service:start |
Start all services |
python run service:stop |
Stop all services |
python run service:restart |
Restart all services |
python run service:install |
Install all services as Windows services |
python run service:remove |
Remove all services |
python run vhost:add |
Add a new project to Apache virtual hosts |
python run vhost:remove |
Remove an existing virtual host configuration |
- Apache & PHP Path → configure in
config/settings.json - Virtual Hosts → managed under
conf/httpd-vhosts.conf - Certificates → stored in
cert/folder (auto-generated if SSL is enabled)
Add a new project with virtual host:
python run vhost:add --hostname=project.local --dir=C:\Projects\myapp --port=8080WinAPDev/
│── src/ # Core Python source code
│── run # CLI entry script
│── requirements.txt # Python dependencies
│── README.md # Documentation
- Fork the repo
- Create a new branch (
feature/my-feature) - Commit your changes
- Submit a Pull Request
- Add PHP version switcher
- Add GUI management tool
- Add MySQL or any other database (optional, separate package, configuration based, command based)
- Add project templates for Laravel / WordPress
Contributions are welcome! Please check the issues page or open a new one for feature requests and bug reports.
This project is licensed under the MIT License. See LICENSE for details.