Set Up Valet on macOS for Local WordPress Development

This is a guide on how to set up Laravel Valet on macOS for a WordPress local development environment. Using Valet as a WordPress local development solution has the main benefits of speed, being lightweight and using fewer configurations to go wrong than say a solution like Vagrant.

Valet runs only on macOS and runs directly on top of the operating system, not in a virtual container.

The key software components needed are Homebrew; a package manager and Laravel; a PHP framework.

Valet itself has an Nginx, PHP 7.2, MariaDB or MySQL, DnsMasq and by default uses the .test domain name. Once the software is all installed Valet itself will launch automatically on startup.

Set Up Local Development Environment

Install Homebrew

First up is to install Homebrew so the key parts of the web stack such as PHP and MySQL/MariaDB  can get installed easily.

/usr/bin/ruby -e "$(curl -fsSL"

This will install the Homebrew package manager and Xcode command line tools if not already installed.

Install composer with Homebrew

brew install composer

Get PHP and MySQL set up

Install PHP

brew install homebrew/core/php

Install MySQL/MariaDB – background service works after restart

brew install mariadb

Start it as background service

brew services start mariadb

MySQL/MariaDB installs as user root with no password.

Get Laravel and Valet set up

Install Laravel

composer global require "laravel/installer"

Install Valet with composer

composer global require laravel/valet

Make sure your macOS shell path has the following location, this will allow you to easily use valet commands on the command line – if you don’t include it you will need to prefix all valet commands with ~/.composer/vendor/bin/


Install valet

valet install

Now it will install dnsmasq and set up Nginx and PHP and start valet, some basic valet commands below…

valet stop
valet restart
valet --version
ping blah.test for

A responding ping will verify dnsmasq and the other components have been successfully set up.

To update Laravel Valet

composer global update
valet install
valet restart

Webroot & park

Probably the best method for a webroot directory is to use the Sites folder in your home, this was a traditional webroot in the past of the macOS user account filing system – if one is not there either make one in the Finder or via the Terminal

mkdir ~/Sites

Register the Sites folder with Valet, so any top level folders will be treated as a serving site – use the park command

cd ~/Sites
valet park

There is also a valet link command that allows a directory somewhere else in the filing system to serve its content as a webroot, it does so by putting a symbolic link in the park directory – Sites.

To set up new Laravel project sites you can use the command

laravel new sitename

The first site created this wat takes a while with a number of downloads when it is done a new http://sitename.test is viewable in the browser – but what about with an actual WordPress install?  – see next.


WordPress and Valet

So the best code to serve up ready made WordPress sites is wp-cli-valet-command it can spin up sites very quickly and can be further enhanced taking advantage of bash scripting.

First of all, you need to have wp-cli installed, this guide can cover that process.

Increase your PHP memory size, especially if you installed PHP with Homebrew – otherwise, a fatal error will occur when installing wp-cli-valet-command package, find your PHP memory limits .ini config file

php --ini
nano /usr/local/etc/php/7.2/conf.d/php-memory-limits.ini

Change limits to 512M in all 3 places

Also, make sure your MySQL or mariadb is running…

brew services start mariadb

Once you have wp-cli add the wp-cli-valet-command package

wp package install [email protected]:aaemnnosttv/wp-cli-valet-command.git

Once this is installed you are ready to create some WordPress sites…

To install a new site, move into your Sites folder and run a wp valet command

cd ~/Sites
wp valet new newsitename

This will set up https://newsitename.test ready to go WP-Admin defaults are admin/admin for username and password.

All new sites are by default set up with https – to set one up just as http – run…

wp valet new newsitename --unsecure

To remove a site…

wp valet destroy newsitename

For more commands and options check out the GitHub repo for wp-cli-valet and also you can create custom sites with a certain theme, plugins, etc by rolling your own bash scripts.

Toggle SSL

To toggle between whether or not a site uses an SSL cert..

valet unsecure mysitename


valet secure mysitename

Terminal output

Restarting nginx...
The [mysitename.test] site has been secured with a fresh TLS certificate.



To deal with MySQL via phpmyAdmin – create a new site

cd ~/Sites
wp valet new phpmyadmin

So now you have a https://phpmyadmin.test – remove all the WordPress files and download and move into the folder the latest phpmyadmin files – if your MySQL install is no password then change the config file as prompted to AllowNoPassword. Now all your databases are easily accessible.

You can take WordPress site installation further with Valet by adding a bash script that includes further refining the install with plugins and themes tailoring – see the next article on Valet, wp-cli and bash scripting.


Install valet

Install wp-cli-valet-command

Install wp-cli

Install Homebrew


  1. Constant Solutions on May 2, 2019 at 4:44 pm

    I had a small migrene running into memory leak issues, and intially I thought memory limits were not being changed to 512megabytes, only to learn that it actually was set, but 512megabytes was not enough.

    Setting memory limits to 1024 megabytes solved the issue.

  2. Conaba on May 2, 2019 at 3:13 pm

    I needed to run `composer self-update` before running `composer global require “laravel/installer”`

  3. Kash on February 27, 2019 at 12:56 pm

    Thank you for sharing this.
    It helped me twice! once on ubuntu and now on Mac OS

  4. Martin on August 13, 2018 at 5:15 pm

    Thanks for taking the time to document this, very helpful!

    Just in case it helps others, I got the message “valet install” command not found. Used the command below instead
    test -d ~/.composer && bash ~/.composer/vendor/bin/valet install || bash ~/.config/composer/vendor/bin/valet install

    This is on a fairly fresh install of High Sierra so I’m guessing others will have the issue?

    • Tom on July 2, 2019 at 6:11 pm

      Had this same issue and this seems to be working, thanks!

Leave a Comment