Releases: stevepop/phpark
PHPark v1.1.0 - Daily use no longer requires root
Minimal sudo — daily use no longer requires root
Previously almost every PHPark command required sudo. This release reduces sudo to two commands:
| Command | Requires sudo | Reason |
|---|---|---|
setup |
Yes (once) | Installs packages, configures nginx and sudoers |
trust / untrust |
Yes | Writes to /etc/dnsmasq.d |
| Everything else | No |
park, link, unlink, use, rebuild, secure, unsecure, status, links all now run as your normal user.
How it works
sudo phpark setup now performs two one-time system changes:
- Writes
/etc/nginx/conf.d/phpark.conf— tells nginx to include configs from~/.phpark/nginx/*.confdirectly, removing the need to copy files into/etc/nginx/sites-available - Writes
/etc/sudoers.d/phpark— grants your user passwordless access to the specificsystemctlandupdate-alternativescalls that PHPark needs
Bug fixes
- SUDO_USER home detection —
setupnow correctly creates~/.phpark/in the real user's home directory instead of/rootwhen run via sudo - Directory ownership —
~/.phpark/and all files within it are now owned by the real user after setup, preventing permission denied errors onparkandlink - Binary installation —
setupnow installsphparkto/usr/local/bin/phparkautomatically; no manualsudo mvstep needed - DNS upstream config — dnsmasq upstream config now always includes explicit
server=8.8.8.8andserver=1.1.1.1fallback entries, preventing a complete DNS outage if the systemd-resolved file is stale or contains only loopback addresses after setup
Breaking changes
None — existing installations can re-run sudo phpark setup to gain the new behaviour.
PHPark v1.0.0 — Initial Stable Release
🐘 PHPark v1.0.0 — Initial Stable Release
PHPark is a modern PHP development environment manager for Linux, inspired by Laravel Valet and Herd. It brings the same zero-configuration, instant setup experience that macOS developers enjoy — natively to Linux.
From a bare Ubuntu install to fully running .test domains in under 2 minutes.
✨ What's Included
One-Command Setup
A single sudo phpark setup installs and configures nginx, dnsmasq, and PHP — no manual dependency management required.
Multi-Version PHP Support
Switch between PHP 7.4, 8.0, 8.1, 8.2, 8.3, and 8.4 globally or per-site. PHPark automatically installs any version you request on demand.
Automatic Nginx Configuration
Production-grade nginx configs are generated and deployed automatically for every parked or linked site, with built-in support for Laravel, Symfony, and standard PHP frameworks.
.test Domain Resolution
Automatic local domain routing via dnsmasq — no editing of /etc/hosts required.
SSL Support
Self-signed certificates for HTTPS development with a single command: phpark secure <site>.
Zero Manual Configuration
Automatic permission management, service orchestration (nginx + PHP-FPM), and instant CLI PHP version switching. It just works.
📋 Requirements
- Ubuntu 20.04+ or any Debian-based Linux distro
sudoaccess
That's it. PHPark handles the rest.
🚀 Quick Install
wget https://github.com/stevepop/phpark/releases/latest/download/phpark-linux
chmod +x phpark-linux
sudo mv phpark-linux /usr/local/bin/phpark
sudo phpark setup
sudo phpark trustFull usage instructions and workflow examples are in the [README](https://github.com/stevepop/phpark#readme).
🗺️ What's Next
v1.1.0 will bring database management (MySQL/PostgreSQL), Redis/Memcached support, custom domain support beyond .test, and site scaffolding templates.
v2.0.0 is planned to include Docker integration, multi-distro support (Arch, Fedora), and a web-based control panel.
🙏 Thanks
A big thank you to everyone who tested the release candidates and provided feedback — your input shaped this release. If PHPark saves you time, please consider starring the repo and sharing it with your team.
Built with ❤️ for the Linux/PHP community — [MIT License](https://github.com/stevepop/phpark/blob/master/LICENSE)
v1.0.0-rc7
What's New
When apt-get install is executed on Ubuntu,the postinstall scripts trigger resolvconf, which tells systemd to stop and restart dnsmasq as part of its network config update cycle. Since there's no Restart policy, when systemd stops it, it stays stopped.
This fix adds Restart=always drop-in to ensure that systemd will bring dnsmasq back within 3 seconds automatically, regardless of who stopped it.
Install from latest release
wget https://github.com/stevepop/phpark/releases/download/v1.0.0-rc7/phpark-linux
chmod +x phpark-linux
sudo mv phpark-linux /usr/local/bin/phpark
sudo phpark setup
v1.0.0-rc6 - Feature - Add Composer To Setup
What's New
- Added installation of composer to setup where it has not been installed
- On existing boxes where Composer is already installed, it's a no-op — just prints ✅ Composer already installed
Install from latest release
wget https://github.com/stevepop/phpark/releases/download/v1.0.0-rc6/phpark-linux
chmod +x phpark-linux
sudo mv phpark-linux /usr/local/bin/phpark
sudo phpark setup
v1.0.0-rc5 — Fix: Local DNS resolution for .test domains
What's New
- Fixed an issue where Dnsmasq domains were written into
/etc/dnsmasq.d/test but Ubuntu only loads.conf` files from that directory
Download Latest Release
wget https://github.com/stevepop/phpark/releases/download/v1.0.0-rc4/phpark-linux
chmod +x phpark-linux
sudo mv phpark-linux /usr/local/bin/phpark
sudo phpark setup
v1.0.0-rc4 - — Fix: untrust bug impacting DNS
Bug fix
phpark untrust was leaving the system without working DNS after removing
the .test domain configuration.
Root cause: dnsmasq binds to 0.0.0.0:53 (all interfaces), which includes
127.0.0.53. When reverting the systemd-resolved stub listener, dnsmasq was
still holding port 53 on 127.0.0.53, preventing systemd-resolved from
reclaiming it. All DNS queries then went to an address nothing was serving.
Fix: dnsmasq is now stopped before systemd-resolved is restarted, giving
it a clean port to bind its stub listener on 127.0.0.53:53.
Download latest release
wget https://github.com/stevepop/phpark/releases/download/v1.0.0-rc4/phpark-linux
chmod +x phpark-linux
sudo mv phpark-linux /usr/local/bin/phpark
sudo phpark setup
v1.0.0-rc3 — Naming fix
What's changed
- Binary and module renamed from
phpparktophparkto match the
product name PHPark (PHP + Ark). The previous namephpparkwas
PHP + park — a different word.
Upgrade from rc1/rc2
If you have an existing install, rename your config directory:
mv ~/.phppark ~/.phpark
Then replace the binary:
wget https://github.com/stevepop/phpark/releases/latest/download/phpark-linux
chmod +x phpark-linux
sudo mv phpark-linux /usr/local/bin/phpark
sudo rm -f /usr/local/bin/phppark # remove old binary if present
v1.0.0-rc2
PHPark is ready for community testing! This RC includes all planned features for the v1.0.0 release.
✨ What's New
Complete Automation:
- 🚀 One-command setup:
sudo phppark setup - 🐘 Auto-install PHP versions on demand
- ⚡ Instant CLI PHP switching
- 🔧 Auto-deploy nginx configs
- 🔐 Automatic permission fixes
- ⚙️ Auto-start services (nginx, PHP-FPM)
Zero Configuration:
From bare Ubuntu to working sites in under 2 minutes!
📦 Installation
# Download
wget https://github.com/stevepop/phppark/releases/download/v1.0.0-rc2/phppark-linux
chmod +x phppark-linux
sudo mv phppark-linux /usr/local/bin/phppark
# Setup everything
sudo phppark setup
# Create a site
mkdir -p ~/sites/demo/public
echo ' ~/sites/demo/public/index.php
cd ~/sites
sudo phppark park
sudo phppark trust
# Done! Site running at demo.test🧪 Testing Needed
Please test and report:
- ✅ Installation on different Ubuntu versions
- ✅ PHP version switching
- ✅ Multiple sites with different PHP versions
- ✅ SSL certificate generation
- ✅ Any bugs or unexpected behavior
📝 Feedback
Please open issues for:
- Bugs you encounter
- Feature suggestions
- Documentation improvements
- Installation problems
Goal: Gather feedback for 1 week, then release v1.0.0 stable!
🙏 Thank You!
Your testing and feedback will help make v1.0.0 rock solid!
Tested on: Ubuntu 22.04 LTS (AWS EC2)
Status: Release Candidate - feature complete, needs community validation
AV1.0.0-beta2
- New 'phppark setup' command installs everything
- Auto-installs nginx, dnsmasq, PHP 8.2-FPM
- Interactive confirmation
- Perfect onboarding for new users
- Updated install command to detect missing deps
🧪 Release Candidate for v1.0.0
PHPark is ready for community testing! This RC includes all planned features for the v1.0.0 release.
✨ What's New
Complete Automation:
- 🚀 One-command setup:
sudo phppark setup - 🐘 Auto-install PHP versions on demand
- ⚡ Instant CLI PHP switching
- 🔧 Auto-deploy nginx configs
- 🔐 Automatic permission fixes
- ⚙️ Auto-start services (nginx, PHP-FPM)
Zero Configuration:
From bare Ubuntu to working sites in under 2 minutes!
📦 Installation
# Download
wget https://github.com/stevepop/phppark/releases/download/v1.0.0-rc1/phppark-linux
chmod +x phppark-linux
sudo mv phppark-linux /usr/local/bin/phppark
# Setup everything
sudo phppark setup
# Create a site
mkdir -p ~/sites/demo/public
echo ' ~/sites/demo/public/index.php
cd ~/sites
sudo phppark park
sudo phppark trust
# Done! Site running at demo.test🧪 Testing Needed
Please test and report:
- ✅ Installation on different Ubuntu versions
- ✅ PHP version switching
- ✅ Multiple sites with different PHP versions
- ✅ SSL certificate generation
- ✅ Any bugs or unexpected behavior
📝 Feedback
Please open issues for:
- Bugs you encounter
- Feature suggestions
- Documentation improvements
- Installation problems
Goal: Gather feedback for 1 week, then release v1.0.0 stable!
🙏 Thank You!
Your testing and feedback will help make v1.0.0 rock solid!
Tested on: Ubuntu 22.04 LTS (AWS EC2)
Status: Release Candidate - feature complete, needs community validation