The reliable pattern is to run WordPress inside a Vagrant-managed Ubuntu virtual machine, provision Apache or Nginx, PHP, and MariaDB or MySQL with a repeatable script, then finish the site installation with WP-CLI. Your project files stay in a checked-in directory, while the VM keeps local code and database changes away from production.
Antihost offers managed WordPress hosting with free migration, one-click staging and a 14-day free trial.
This guide uses the current WordPress baseline of PHP 8.3 or newer, MariaDB 10.11 or newer or MySQL 8.0 or newer, and HTTPS-ready web-server configuration. It uses VirtualBox as the provider and bento/ubuntu-24.04 as the example box; provider and box releases change, so pin a tested release for team work.
As an Amazon Associate I earn from qualifying purchases.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
What Vagrant contributes to a WordPress workflow
Vagrant is a command-line framework and configuration format for creating and managing portable development environments. The Vagrantfile records the machine definition, provider settings, network, shared folders, and provisioning steps. A new contributor can clone the project, install the prerequisites, and recreate the same class of environment instead of manually assembling a web stack.
Vagrant does not replace WordPress, PHP, a database, or a web server. It creates the guest machine and runs provisioners that install and configure those components. The first vagrant up runs the provisioner automatically; later runs can use vagrant provision or vagrant reload --provision. A provisioner should be idempotent: running it again must not drop the database, duplicate Apache directives, or overwrite a working wp-config.php.
#1 Best Overall
- BLUE LIGHT BLOCKING GLASSES: Our blue light glasses for women boast UV400 protection, blocking harmful blue rays from computer screens. With these bluelight glasses women, you can enjoy gaming, reading, or watching TV with no worries of eye strain.
- EYE RELIEF: Our blue light glasses are engineered to reduce blurry vision or strain caused by prolonged screen time. These womens blue light glasses aid in better sleep by preventing blue light from disrupting your natural sleep cycle, helping you fall asleep faster and enjoy a more restful night's sleep, making them the perfect christmas present.
- COMFORTABLE: Crafted from durable material, our trendy blue light glasses for woman or blue light glasses men ensure long-lasting comfort. The high-transmittance lenses accessories, gamer gifts for men, help keep your eyes relaxed. Perfect stocking stuffers, gifts for gamers men, christmas gifts for men, halloween costumes.
- LIGHTWEIGHT: These clear blue light glasses feature a lightweight frame, meaning they’ll stay comfy for long-term wear. Perfect as blue blockers glasses for women or mens blue light glasses, these non-prescription fake glasses for men can be worn throughout the day. The blue light blocking glasses women feature polycarbonate HD lenses, which are anti-reflective and restore true color.
- WORRY-FREE PURCHASE: If you experience any issues, our support team is ready to assist you quickly. These are the perfect costume glasses for cosplay dressing up.
Prerequisites and host checks
Install the command-line tools
Install the Vagrant CLI and a supported virtualization provider. HashiCorp’s quick-start example uses VirtualBox; the setup tutorial lists VirtualBox 7.1.4 as its prerequisite. Confirm the versions on the provider’s release pages before publishing or standardising a team image because both Vagrant and provider versions are volatile.
- Vagrant CLI installed and available as
vagrant. - VirtualBox installed, with hardware virtualization enabled in firmware.
- At least enough host memory and disk for an Ubuntu VM, WordPress files, and a database. The example allocates 2 GB RAM and two virtual CPUs; increase those values if your host can spare them.
- Permission to create a private network and mount a shared folder.
Check architecture and operating-system differences
Apple Silicon, Windows virtualization settings, antivirus software, filesystem-sharing implementations, and VirtualBox support can change the result. Treat them as checks, not guarantees. If the provider cannot start the selected box on your host architecture, choose a compatible box/provider combination and document that choice in the repository.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Repair Windows errors before they cause bigger problems3Fix the driver behind crashes, sound loss and screen glitchesCanonical describes its Ubuntu Vagrant boxes as local-development images rather than production images and stopped publishing Vagrant images directly beginning with Ubuntu 24.04 LTS. The bento/ubuntu-24.04 box used below is therefore a development base image, not a production operating-system recommendation. Record the exact box version that you tested and make replacement instructions part of your project documentation.
Create the project and Vagrantfile
Make a clean directory
- Create a repository directory and a folder that will hold the WordPress working tree:
mkdir -p wp-vagrant/wordpress. - Change into it:
cd wp-vagrant. - Download the WP-CLI Phar from the official WP-CLI installation documentation and place the file at
wp-cli.pharin this project directory. The provisioner below installs that local file in the guest, so no external download URL is embedded in the script. - Run
vagrant init bento/ubuntu-24.04. Inspect the generated Vagrantfile, then replace it with the project version below.
Use a private address and a shared WordPress directory
Vagrant.configure('2') do |config|
config.vm.box = 'bento/ubuntu-24.04'
config.vm.hostname = 'wp-vagrant'
config.vm.network 'private_network', ip: '192.168.56.10'
config.vm.synced_folder 'wordpress', '/var/www/html',
owner: 'www-data',
group: 'www-data',
mount_options: ['dmode=775', 'fmode=664']
config.vm.provider 'virtualbox' do |vb|
vb.memory = 2048
vb.cpus = 2
end
config.vm.provision 'shell', path: 'provision.sh'
end
Commit the Vagrantfile and provisioning script to version control. Do not commit production credentials or a database dump containing private data. The wordpress folder is shared with the guest, so edits made on the host appear at /var/www/html in the VM.
Start the machine
When more than one provider is installed, select VirtualBox explicitly:
vagrant up --provider=virtualbox
Enter the guest with vagrant ssh. A successful boot leaves the machine running and gives you a private address at 192.168.56.10. Add a local hostname on the host, using the hosts-file method appropriate to your operating system:
192.168.56.10 wp.local
At this stage Apache will be installed by the provisioner below. The hostname is convenient for WordPress URLs, cookies, REST requests, and HTTPS testing.
Rank #2
- WINDEX GAMING WIPES: effortlessly clean all your gaming gear and gaming electronics in one easy step with our new Windex Gaming Wipes
- AMMONIA FREE: our ammonia-free formula is safe to use on all of your favorite gaming equipment like consoles, headsets, controllers, screens, keyboards, and more
- PRE-MOISTENED WIPES: each wipe instantly removes dust, dirt, and stubborn smudges and fingerprints leaving a streak-free shine
- ANTI-STATIC: great for cleaning and wiping down your gaming gear and electronics leaving behind no visible residue
- COMPACT RESEALABLE PACKAGE: store your pack of Windex Gaming Wipes anywhere in your home for whenever a quick and easy wipedown is needed
Provision Apache, PHP, MariaDB, and the shared directory
Create provision.sh and make it executable with chmod +x provision.sh. This script installs the web stack, enables the Apache modules WordPress commonly needs, creates a simple virtual host, and installs the WP-CLI Phar that you placed in the project root. It deliberately does not delete an existing database or regenerate an existing WordPress configuration.
#!/usr/bin/env bash
set -euo pipefail
export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get install -y apache2 mariadb-server libapache2-mod-php php php-cli php-mysql php-curl php-gd php-mbstring php-xml php-zip php-intl unzip
a2enmod rewrite headers expires
systemctl enable --now apache2 mariadb
install -d -o www-data -g www-data /var/www/html
cat >/etc/apache2/sites-available/wordpress.conf <<'APACHE'
<VirtualHost *:80>
ServerName wp.local
DocumentRoot /var/www/html
<Directory /var/www/html>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/wordpress-error.log
CustomLog ${APACHE_LOG_DIR}/wordpress-access.log combined
</VirtualHost>
APACHE
a2dissite 000-default.conf || true
a2ensite wordpress.conf
systemctl reload apache2
if [ -f /vagrant/wp-cli.phar ]; then
php /vagrant/wp-cli.phar --info
install -m 0755 /vagrant/wp-cli.phar /usr/local/bin/wp
else
echo 'Place wp-cli.phar in the project root before provisioning.' >&2
exit 1
fi
if [ ! -f /var/www/html/index.php ]; then
echo 'Web stack ready. Run the WP-CLI installation commands in the guide.'
fi
The package names above use Ubuntu’s PHP packages, which follow the selected Ubuntu release. Verify that the resulting PHP version meets WordPress.org’s current recommendation of 8.3 or greater; do not silently keep an older PHP version just because an old tutorial used it.
Run the script on the first boot with vagrant up. To apply a changed package list or Apache configuration later, run vagrant provision. Because the script uses CREATE-free database operations and does not remove files, it is safe to rerun after you add your own idempotent steps.
Install WordPress with WP-CLI
Verify WP-CLI inside the VM
WP-CLI’s documented installation sequence downloads the Phar, checks it with php wp-cli.phar --info, makes it executable, and places it on the executable path. The provisioner performs the check and installs the Phar from /vagrant/wp-cli.phar. Confirm the result:
vagrant ssh -c 'wp --info'
If that command fails, run vagrant ssh, then check php /vagrant/wp-cli.phar --info and the permissions on /usr/local/bin/wp. Fix the Phar installation before attempting the WordPress download.
Download core files
Run the following from the host. Replace no paths unless you changed the shared-folder location:
vagrant ssh -c 'sudo -u www-data wp --path=/var/www/html core download'
The command is safe to repeat after a partial download, but do not use it as a way to overwrite a site that already contains custom changes. Check the host’s wordpress folder after it completes; the files should be visible there because it is the synced directory.
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteRank #3
- Ergonomic & Adjustable Design: Fight "text neck" and improve your posture. Designed for comfort, it offers an adjustable height (7.1in-8.5in) (1.4in adjustable range) and angle (5°-85°) Please note: cell phone stand is only 9 inches tall—the length of a standard pencil
- Without blocking subtitles Perfect for office desk Tiktok Face Time Zoom video—this is the ultimate kitchen desk essential for phones! Perfect viewing experience while reducing neck back strain, A must-have for gamers streamers desk, and anyone who values both style and support!
- Sleek & Stable Design fits Otterbox Case: Say goodbye to bent cables, tangles, and tip-overs! LISEN’s stylish adjustable desk phone holder features a built-in charging hole and smart cable management, keeping your phone secure and your workspace clutter-free cool gadgets for men
- ANTI-SLIP DESIGN free hands: The under 10.00 items easy gadgets back and the bottom of this kitchen essentials for women are fully covered by anti-skid silicone, which LISEN stand up desk decor can provide maximum protection device from any scratches and slides
- Your Perfect Viewing Companion:If your product arrives damaged or breaks within 365 days, reach out to LISEN for a quick and hassle-free solution. Struggling with assembly, like tightening the screw? We’ve got your back! Your experience matters to us. (Product including: phone Holder stand*1, screw*1, hexagon screwdriver*1, specification*1)
Create the configuration and database
Choose local-only values and replace every example before running the commands. The password strings below are placeholders, not credentials to reuse elsewhere. Keep any real local secrets out of version control.
DB_NAME='wp_local_db'
DB_USER='wp_local_user'
DB_PASS='replace-with-a-local-password'
vagrant ssh -c "sudo -u www-data wp --path=/var/www/html config create --dbname='${DB_NAME}' --dbuser='${DB_USER}' --dbpass='${DB_PASS}' --dbhost='localhost' --skip-check"
vagrant ssh -c 'sudo -u www-data wp --path=/var/www/html db create'
wp config create writes wp-config.php; wp db create creates the database named in that file. If your MariaDB installation requires a different administrative policy, create the database and user through the guest’s database client, then run wp config create with those values. Never point this configuration at production.
Run the core installation
WP_URL='http://wp.local'
WP_TITLE='Local WordPress'
ADMIN_USER='localadmin'
ADMIN_PASSWORD='replace-with-an-admin-password'
ADMIN_EMAIL='[email protected]'
vagrant ssh -c "sudo -u www-data wp --path=/var/www/html core install --url='${WP_URL}' --title='${WP_TITLE}' --admin_user='${ADMIN_USER}' --admin_password='${ADMIN_PASSWORD}' --admin_email='${ADMIN_EMAIL}'"
Use a reserved .test email address for a disposable local administrator, or your own development address if you need to receive local mail. Do not reuse a production administrator password. Visit http://wp.local/wp-admin/ after the command succeeds.
Use WP-CLI without opening an interactive shell
WP-CLI supports Vagrant as an SSH scheme. With WP-CLI installed on the host, the documented remote pattern is:
Recommended Free Tools
wp --ssh=vagrant:/var/www/html core version
wp --ssh=vagrant:/var/www/html plugin list
wp --ssh=vagrant:/var/www/html theme list
If your host-side WP-CLI version or provider setup does not accept that form, use the equivalent explicit command:
vagrant ssh -c 'sudo -u www-data wp --path=/var/www/html core version'
Add HTTPS when the site needs production-like behavior
WordPress.org recommends HTTPS. Starting with HTTP is useful for proving that the VM, web server, PHP, and database work, but HTTPS should be part of the local workflow when you are testing secure cookies, callback URLs, REST clients, redirects, mixed-content handling, or integrations that reject plain HTTP.
- Choose a local hostname such as
wp.localand keep it mapped to the VM’s private address. - Create a certificate for that hostname with a local certificate authority or another trusted development-certificate method. A self-signed certificate will work technically but produces browser warnings unless its authority is trusted.
- Enable Apache’s SSL module and an SSL virtual host, then reload Apache. Keep the HTTP virtual host available long enough to verify the redirect behavior.
- After HTTPS works, update WordPress’s URLs from inside the guest:
vagrant ssh -c "sudo -u www-data wp --path=/var/www/html option update home 'https://wp.local'"and the equivalentsiteurlcommand. - Check the dashboard, media URLs, REST requests, and any plugin callback settings. A database search-and-replace may be necessary if content contains hard-coded HTTP URLs; take a database export first.
Certificate tooling and trust-store steps differ by host operating system, so document the exact method your team supports rather than assuming a certificate generated on one workstation will be trusted on another.
Rank #4
- Easy Installation: Our gaming lights have been designed to enhance your entertainment experience. Simply position the led light bar next to your TV or game console to create a game room environment with ease. They come with USB power and a 60 inch cord for direct mounting and mobility
- Audio Syncing & Extensive Mode: The built-in high-sensitivity music sensor allows you to sync the TV led lights to your favorite music. Lights react and move to the beat of music, film and game audio, creating an incredible immersive sound and light experience – and all without the need for an additional hub. You can choose from 64+ patterns, including strobe, illusion, jump, energy, gradient, running, chasing, fluttering mode etc. Each mode can be applied to different scenes
- 64+ Chasing IC+RGB & W Effect: The independent control design of IC+RGB and white all-in-one multifunctional rgbw led bar lights monitor backlight allows you to easily switch the led lights for desk between IC+RGB and white to enjoy a variety of lighting effects, you can choose white lighting mode with high brightness for better illumination when working, etc. Choose IC+RGB lighting mode when you need to create an entertaining atmosphere for the light show, 16 million colours of Color changing rgb light bar let you dance to the beat and create a dynamic party atmosphere
- Dynamic and Dimmable Lights: 1%-full brightness free brightness adjustment gives you the flexibility to adjust dimmable led light bar for room decorations or a variety of occasions
- USB Powered: USB light bars for room can be powered by powernank, usb charger, TV, Monitor, laptop PC mainframe, making behind TV led lighting bar easy to install in any location.TV led lights are powered by the TV usb interface / PC mainframe, can be turned on/off synchronously with TV / PC
Keep provisioning repeatable
Separate machine setup from site data
Package installation, Apache modules, service enablement, and virtual-host creation belong in the checked-in provisioner. Database passwords, administrator passwords, mail settings, and private API keys belong in an ignored local environment file or an interactive command. This separation lets a teammate rebuild the machine without receiving your secrets.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Make every step safe to rerun
- Use package managers and
systemctl enable --now; they are naturally repeatable. - Use
install -dand conditional file creation rather than blindly copying overwp-config.php. - Use
a2ensiteanda2enmodfollowed by a reload; do not append the same Apache directives on every run. - Check whether WordPress core already exists before downloading it again.
- Never put
DROP DATABASEor destructive reset commands in the normal provision path.
Back up before destructive operations
The VM’s database lives on its virtual disk. vagrant destroy removes that disk, so export first:
vagrant ssh -c 'sudo -u www-data wp --path=/var/www/html db export /vagrant/wp-local.sql'
Import a saved dump into a newly provisioned machine with vagrant ssh -c 'sudo -u www-data wp --path=/var/www/html db import /vagrant/wp-local.sql'. Treat dumps as sensitive if they contain real user data, tokens, or customer content.
Keep local work isolated from production
A local environment is for updating, developing, and modifying a site without interrupting the live version. Use a separate database name and credentials, disable outbound email or route it to a local sink, and use synthetic accounts and media whenever possible. Never copy production credentials into the Vagrantfile, and never run a local database command against a production host simply because the two installations use the same table prefix.
When production data is needed for a bug reproduction, anonymise it, export only the required tables or records, and remove the dump from the shared project directory after import. Keep the local hostname distinct from the production domain so cookies and redirects cannot cross environments.
Free tools Windows power users keep installed
One-click scans. No signup required.
Vagrant, VVV, or DDEV?
Vagrant is a general-purpose VM workflow. It is a good fit when your team wants the machine definition and provisioning script under version control, needs a full Linux guest, or already uses Vagrant for other services. You are responsible for the stack choices and for maintaining the provisioner.
| Option | Positioning | Useful distinction |
|---|---|---|
| Vagrant | Portable development environments managed through a Vagrantfile and a provider such as VirtualBox | You assemble the WordPress stack with provisioners and can model a complete VM |
| VVV | Free, open-source, WordPress-focused local environment | More WordPress-specific automation than a blank Vagrant project |
| DDEV | Free, open-source alternative oriented toward containers | Includes a database editor, Xdebug support, and performance-profiling tools |
Compare the choices on the questions that affect your team: Is a full VM required, or are containers acceptable? How much setup automation do you want to inherit? Do developers need an integrated database editor, Xdebug, or profiling? How will filesystem sharing behave on each host operating system? How will a multi-site project be represented? Which option can every contributor reproduce without provider-specific exceptions?
Best Value
- Compatible with Wide Screens - To ensure compatibility with the dual monitor mount, your each monitor must meet three conditions at the same time: First, computer screens size range: 13 to 32 inches. Second, screen weight range: 4.4 to 19.8 lbs. Third, the back of the monitor screen must have VESA mounting holes with a pitch of 75x75mm or 100x100mm.
- Regarding the compatibility with desks - Your desk must meet three conditions at the same time: First, desk material: Only wooden desks are recommended, plastic or glass desks cannot be used. Second, desk thickness range: 0.59" - 3.54". Third, the bottom of the desk should not have any cross beams or panels, as this will interfere with installation. We recommend carefully checking that your desk and monitors meets all above conditions before purchasing.
- Dual C-Clamp Hold - Worried your dual monitors might wobble or slip? Our upgraded base uses a larger platform plus a dual C-clamp structure to lock the dual monitor arm firmly to your desk. Each arm safely keeps your screens steady while you type, click and game—no shaking, no sliding, just a clean and secure setup you can trust every day. It also provides Grommet Mounting installation choice, both options ensure stable and secure fixation for your 0.59" - 3.54" desk.
- Full-Motion Adjustment For Comfortable View - Pull the screen closer when you’re deep in a spreadsheet, push it back to watch videos, or rotate to portrait for coding — moving everything smoothly with just one hand. The monitor stand offers +85°/-50° tilt, ±90° swivel and 360° rotation. Raise your monitor up to 15.75″ to support a healthy sitting posture. Whether you’re working from home, gaming through the night, or switching between video calls and documents, getting the screens to your natural line of sight helps relieve neck, shoulder and back strain so you can stay focused longer with less fatigue.
- Keep Your Desk Organized: By lifting both screens off the desktop, this dual monitor stand opens up valuable space for your keyboard, notebook, docking station or a simple, clutter-free work area. Built-in cable management guides wires along the arms, keeping cords out of sight and out of the way. Enjoy a tidy, modern workstation that looks as good as it feels to use.
VVV is the shortest route when the project is specifically WordPress and its conventions match your team. DDEV is attractive when container workflows and built-in debugging tools matter. A hand-built Vagrant environment is the most transparent when you need to control every package, network, and provisioning decision.
Troubleshooting the first boot
vagrant up cannot find or start the provider
Run vagrant status and verify that VirtualBox is installed and its kernel or driver components are enabled. If several providers are present, repeat the command with --provider=virtualbox. On Windows, check hardware virtualization and conflicts with other hypervisors. On Apple Silicon, confirm that the selected box and provider support the host architecture; changing only the Vagrantfile’s CPU count will not fix an incompatible image.
The box downloads but the guest fails during boot
Check the exact box version, VirtualBox version, host architecture, and available disk space. Pin the last combination you tested instead of allowing an unreviewed box update. Destroying and recreating the VM can clear a corrupt guest, but export any database first because vagrant destroy deletes the VM disk.
Apache shows the wrong site or a 403 error
Confirm that wordpress.conf is enabled, the default site is disabled, and Apache was reloaded. Inside the guest, inspect /var/log/apache2/wordpress-error.log. Verify that /var/www/html is mounted and readable by www-data; shared-folder permission options vary by provider and host.
WordPress cannot connect to MariaDB
Check systemctl status mariadb, the database name and user in wp-config.php, and whether the host is localhost or another value required by your database setup. Run wp db check as the web user. Do not solve a local connection error by copying production database credentials.
WP-CLI is missing or runs as the wrong user
Run php /vagrant/wp-cli.phar --info to distinguish a missing installation from a PHP problem. Install the Phar at /usr/local/bin/wp with executable permissions, then run WordPress commands as www-data so generated files remain writable by the web server and the shared-folder owner.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →The browser cannot resolve wp.local
Check the host’s hosts file, confirm the VM’s private address with vagrant ssh -c 'ip addr', and test the web server by IP. Corporate VPNs and endpoint-security software can interfere with private networks; disconnecting the VPN briefly can identify that class of conflict.
Quick Recap
Operational checklist
- Vagrant and a supported provider are installed and their versions are recorded.
- The selected Ubuntu box is pinned to a tested release and treated as a development image.
- The Vagrantfile, provisioner, and directory layout are committed.
- PHP is 8.3 or newer, and the database is MariaDB 10.11 or newer or MySQL 8.0 or newer.
- Apache or Nginx, WordPress files, and WP-CLI are installed inside the guest.
- The local hostname resolves to the private VM address.
- HTTPS is configured when the feature under test requires it.
- Credentials and production data are excluded from version control.
- Database exports are taken before destroying or rebuilding the VM.
- The team has written down its host-architecture and filesystem-sharing exceptions.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




