Occasionally you might need to run a script from the command line in Vagrant (VVV)

I needed to do this when setting up a local version of a site for testing upgrades. Normally I do a search and replace on the domain name to change it to the .test equivalent but in this case the web based version of the script was timing out with the popup suggesting using the cli version of the script instead.

 

Requirements

Time to complete: 10 minutes

Contents

  1. Log into the VagrantBox via ssh
  2. Locate php
  3. Determine which version of PHP your script requires
  4. Update the path th the PHP runtime in the script
  5. Run your script

1. Log into the VagrantBox via ssh

Run the following command to log into the vagrant box via ssh, you must be in a terminal in your vagrant root directory

vagrant ssh

2. Locate php

Run which to locate the directory where php is installed

which php

This will output something like

/usr/bin/php

3. Determine which version of PHP your script requires

You may have to complete this step after trying your script out via the command line. It will probably throw errors that it requires a specific minimum version of PHP in order to run.

You can see which versions of PHP are installed in VVV by browsing to the directory in the previous step and listing the directory contents. The path for other versions is something like:

/usr/bin/php7.3

4. Update the path th the PHP runtime in the script

My script needed a different version of PHP in order to run, so I had to update the script to use a specific version

#!/usr/bin/php7.3

5. Run your script

For Search & Replace DB I needed to run the following:

./srdb.cli.php -h localhost -u root -p root -n soy -s "https://domain.com" -r "http://soy.test"

Initially it complained about the PHP version being too low, so I had to go back to step 4 and update the shebang to use the correct version