Getting Started with Laravel Sail: A Modern Installation Guide

Overview

is a robust PHP framework designed to streamline web development by handling repetitive tasks and providing a clear architectural foundation. Modern development requires consistency across different machines, which is why
Laravel Sail
has become the standard entry point. Sail uses
Docker
to create isolated environments, ensuring that your application runs the same way on your laptop as it does on a production server without manually installing web servers or databases.

Prerequisites

To follow this guide, you should have a basic grasp of PHP and command-line interfaces. Most importantly, you must have

installed and running. Windows users face an extra step: you must install and enable
WSL2
(Windows Subsystem for Linux) and configure Docker to use the WSL2 backend to ensure compatibility with Linux-based containers.

Key Libraries & Tools

  • Laravel Sail: A light-weight command-line interface for interacting with Laravel's default Docker configuration.
  • Docker: A platform that uses containers to package applications with all their dependencies.
  • cURL: A tool used to transfer data from or to a server, used here to fetch the installation script.
  • Laravel Valet: A macOS-specific development environment alternative for those who prefer a native setup over containers.

Code Walkthrough

Setting up a new project starts with a single command in your terminal. This script fetches a fresh installation and configures your local directory.

curl -s https://laravel.build/example-app | bash

This command pulls the latest Laravel skeleton. If you need specific services like PostgreSQL instead of the default MySQL, you can append a query string: ?with=postgres,redis. Once the downloader finishes, navigate into your folder and boot the environment:

cd example-app
./vendor/bin/sail up

The up command builds your containers. The first run takes time as it downloads base images for PHP, MySQL, and Redis, but subsequent starts are nearly instantaneous.

Syntax Notes

Notice the use of ./vendor/bin/sail. This points to the executable script within your project's local dependencies. It is a wrapper for docker-compose. Using the -d flag (e.g., sail up -d) runs the containers in "detached" mode, meaning they stay active in the background and free up your terminal for other commands.

Practical Examples

Once the containers are active, visiting http://localhost in your browser reveals the Laravel welcome screen. This environment is perfect for building RESTful APIs, e-commerce platforms, or SaaS applications. Because it includes Redis by default, you can immediately implement high-performance caching or real-time broadcasting features.

Tips & Gotchas

Avoid the common mistake of trying to run php artisan commands directly on your host machine. Since your PHP environment lives inside the container, you should prefix your commands with sail. For example, use sail artisan migrate instead of php artisan migrate. If you need to stop the environment while in detached mode, use sail stop to gracefully shut down the database and server containers.

3 min read