/valet-windows

Laravel Valet for Windows.

Primary LanguagePHPMIT LicenseMIT

Build Status Total Downloads Latest Stable Version License

Windows port of the popular development environment Laravel Valet.

Introduction

Valet is a Laravel development environment for Windows. No Vagrant, no /etc/hosts file. You can even share your sites publicly using local tunnels. Yeah, we like it too.

Laravel Valet configures your Windows to always run Nginx in the background when your machine starts. Then, using Acrylic DNS, Valet proxies all requests on the *.test domain to point to sites installed on your local machine.

Documentation

Before installation, make sure that no other programs such as Apache or Nginx are binding to your local machine's port 80.
Also make sure to open your preferred terminal (Windows Terminal, CMD, Git Bash, PowerShell, etc.) as Administrator.

  • If you don't have PHP installed, open PowerShell (3.0+) as Administrator and run:
Set-ExecutionPolicy RemoteSigned -Scope Process; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12; Invoke-WebRequest -Uri "https://github.com/cretueusebiu/valet-windows/raw/master/bin/php.ps1" -OutFile $env:temp\php.ps1; .$env:temp\php.ps1 "8.3"

(You can replace 8.3 with the PHP version you want to install: 7.4, 8.0, 8.1, 8.2, 8.3)

This script will download and install PHP for you and add it to your environment path variable. PowerShell is only required for this step.

  • If you don't have Composer installed, make sure to install it.

  • Install Valet with Composer via composer global require cretueusebiu/valet-windows.

  • Run the valet install command. This will configure and install Valet and register Valet's daemon to launch when your system starts.

  • If you're installing on Windows 10/11, you may need to manually configure Windows to use the Acrylic DNS proxy.

Valet will automatically start its daemon each time your machine boots. There is no need to run valet start or valet install ever again once the initial Valet installation is complete.

For more please refer to the official documentation on the Laravel website.

Known Issues

  • WSL2 distros fail because of Acrylic DNS Proxy (microsoft/wsl#4929). Use valet stop, start WSL2 then valet start.
  • The PHP-CGI process uses port 9001. If it's already used change it in ~/.config/valet/config.json and run valet install again.
  • When sharing sites the url will not be copied to the clipboard.
  • You must run the valet commands from the drive where Valet is installed, except for park and link. See #12.
  • If your machine is not connected to the internet you'll have to manually add the domains in your hosts file or you can install the Microsoft Loopback Adapter as this simulates an active local network interface that Valet can bind too.

Xdebug

To enable a debugging session you can use Xdebug helper or set a cookie with the name XDEBUG_SESSION.

Testing

Run the unit tests with:

composer test-unit

Before running the integration tests for the first time, you must build the Docker container with:

composer build-docker

Next, you can run the integration tests with:

composer test-integration

Changelog

Please see CHANGELOG for more information what has changed recently.

License

Laravel Valet is open-sourced software licensed under the MIT license.