A lightweight tool to create isolated PHP virtual environments, inspired by Python's venv.
It allows you to create a local environment with its own configuration (php.ini) and local Composer home, without affecting the system-wide PHP installation.
- Isolated
php.iniand configuration directory (conf.d). - Environment-specific
COMPOSER_HOME. - Support for Bash, Zsh, Command Prompt (CMD), and PowerShell.
- Automatic wrapper scripts to ensure the correct configuration is used.
- Supports multiple installed PHP versions. The virtual environment automatically uses the same PHP interpreter that was used when running
phpvenv.
You can install this tool globally using Composer:
composer global require rindow/phpvenvEnsure your global composer bin directory is in your PATH.
phpvenv myenvOn Unix (Bash/Zsh):
source myenv/bin/activateOn Windows (Command Prompt):
myenv\Scripts\activate.batOn Windows (PowerShell):
. \myenv\Scripts\Activate.ps1Simply run:
deactivateIf your system has multiple PHP versions installed, phpvenv can create environments tied to a specific PHP interpreter.
The generated virtual environment stores the path to the PHP executable used during creation (PHP_BINARY) and always uses that interpreter inside the environment.
Example:
php8.2 /installed/dir/phpvenv env82
php8.4 /installed/dir/phpvenv env84After activation:
source env82/bin/activate
php -v
# PHP 8.2.x
source env84/bin/activate
php -v
# PHP 8.4.xThe environment does not bundle PHP itself. Instead, it creates wrapper scripts that forward execution to the PHP binary used at environment creation time.