The VIP Local Development Environment is a feature built into VIP-CLI for creating and controlling an environment on a supported local machine that mimics an environment running on the VIP Platform. This environment can be used for local development, quick testing, tutorials, or other activities where a local stack is more convenient than a pre-production environment.
To get started, follow the guide for creating a VIP Local Development Environment.
Though the VIP Local Development Environment is designed to be as identical to a VIP Platform environment as possible, some features are not yet available in the local environment.
Environment variables must be managed manually and cannot be managed with VIP-CLI.
VIP File System, Cron control, and Page cache services are not built-in. When developing features for an application that rely on these services, it is strongly recommended to stage changes and perform tests on a non-production VIP Platform environment.
Like VIP Platform environments, the VIP Local Development Environment has container-based services. Some service containers may expose ports on the local machine.
A list of running services and their accessible URLs can be retrieved with the
vip dev-env info command.
In addition to the web stack (NGINX, PHP) and VIP’s vip-go-mu-plugins codebase, the WordPress VIP Local Development Environment provides the following services:
WordPress core files are accessible for each local environment in a wordpress directory. For example, for a local environment named example-site, this directory can be found in:
Modifications made to WordPress core files, mapped mu-plugins files, or custom code that was
git cloned to the local machine will take immediate effect. The modifications will only affect the local environment associated with the wordpress directory, and will persist if the environment is stopped and restarted using the
vip dev-env stop and
vip dev-env start commands.
To revert changes made to the WordPress core code, run
vip dev-env destroy --soft. This command will also remove all volumes including the database state.
A newly created VIP Local Development Environment is provisioned with an empty MySQL (MariaDB) database. SQL database files can be imported with the
vip dev-env import sql command.
Changes made to the database will persist if the local environment or the host machine is restarted, but will disappear if the environment is destroyed with
vip dev-env destroy.
The local environment’s object cache can be flushed by running the WP-CLI command
wp cache flush. The local object cache for specific network sites on a WordPress multisite can be flushed by passing the site’s URL with the
exec -- must be utilized for the command to run against the local environment and not the host machine.
vip --slug=example-site dev-env exec -- wp cache flush
PHP error logs
Each local environment has a separate subdirectory in
~/.local/share/vip/dev-environment based on their
--slug value. The local environment’s subdirectory contains a config directory, a log directory, and a .lando.yml YAML file.
PHP debugging output is written to debug.log, found in the log directory: [LOCATION]/log/debug.log. Use
vip dev-env info --slug=<site-slug> to retrieve the value of
[LOCATION] for a specific local environment.
Raw logs for the local environment can be tailed from the log directory.
This example command demonstrates how to
tail the PHP logs for a local environment with the assigned slug
tail -f ~/.local/share/vip/dev-environment/example-site/log/debug.log
PHP error logs for a local environment can also be referenced in Query Monitor in a browser.
The same Elasticsearch service that supports Enterprise Search can be enabled in the
vip dev-env create setup wizard flow. Elasticsearch must be enabled to use Enterprise Search on a VIP Local Development Environment.
phpMyAdmin is disabled for local environments by default and can be enabled in the
vip dev-env create setup wizard flow.
dev-env info against a running environment to return the exposed port for the SQL database and a web URL for phpMyAdmin to access the database.
Last updated: November 29, 2022