由于平台与某些工具和框架的兼容性,使用 Windows 机器的开发人员在 PHP 开发方面历来面临挑战。但是,如果您是 Windows 用户怎么办?随着适用于 Linux 2 (WSL2) 的 Windows 子系统的引入,Windows 上的 PHP 开发变得更加无缝和高效。在这篇文章中,我们将探讨 WSL2 是什么,为什么它易于用于 PHP 开发,以及如何在 WSL2 上使用 Laravel Sail 设置 PHP 项目。
WSL2 是 Microsoft 提供的兼容层,允许您在 Windows 计算机上本地运行成熟的 Linux 发行版。与其前身不同,WSL2 采用轻量级虚拟化技术,可提供更好的性能以及与各种 Linux 应用程序和工具的兼容性。它允许开发人员在熟悉的 Windows 生态系统中工作时利用 Linux 工具和环境的强大功能。简而言之,您只需在 Windows 机器上安装并运行Ubuntu 。
无缝集成:借助 WSL2,您可以直接在 Windows 计算机上运行 Ubuntu、Debian 或CentOS等 Linux 发行版。这种集成确保您可以访问 Linux 终端和包管理器,使您能够毫不费力地使用 PHP 及其相关工具。
兼容环境:WSL2为PHP开发提供了兼容环境。您可以像在 Linux 系统上一样安装 PHP、Composer 和其他必要的依赖项。这可确保跨开发环境的一致性,从而更轻松地与使用 Linux 或 macOS 的其他开发人员协作。
改进的调试功能:WSL2 无缝支持流行的 PHP 调试工具,例如 Xdebug。在 Linux 环境中运行 PHP 代码时,开发人员可以直接从其 Windows IDE 中利用强大的调试功能。这种集成确保了一致的调试体验并简化了故障排除过程。
您现在可以使用单个命令安装运行 WSL 所需的一切。通过右键单击并选择“以管理员身份运行”,以管理员模式打开 PowerShell 或 Windows 命令提示符,输入 wsl --install 命令,然后重新启动计算机。
wsl --install
此命令将启用运行 WSL 和安装 Linux 的 Ubuntu 发行版所需的功能。安装完成后,你只需打开CMD并输入wsl
,它就会自动启动Ubuntu,你就可以运行Linux命令了。
sudo apt-get update
sudo apt-get install -y php8.1-cli php8.1-common php8.1-mysql php8.1-zip php8.1-gd php8.1-mbstring php8.1-curl php8.1-xml php8.1-bcmath
curl -sS https://getcomposer.org/installer -o composer-setup.php sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
这就是安装部分。现在您可以在全新的 Ubuntu 下开发应用程序。但是,如果您使用 Laravel,我想向您展示如何使用 Docker 和 Laravel Sail 在计算机上轻松部署多个项目。
Laravel Sail 是 Laravel 的轻量级命令行界面 (CLI),可简化本地开发环境的设置。它利用 Docker 为 Laravel 项目创建统一、可移植且一致的环境。 Sail 简化了配置过程,使您可以专注于编写代码而不是处理复杂的设置过程。主要优点是您无需担心创建自己的 docker-compose 文件和处理图像,Sail 会为您做所有事情。以下是如何将 Sail 用于您的项目:
composer global require laravel/installer
laravel new my-project cd my-project
php artisan sail:install
它将创建 docker-compose.yml,其中包含 NGINX、MySQL、Redis 和其他非常有用的开发工具。
./vendor/bin/sail up
此命令将启动 Docker 容器,您的应用程序将上线!
您可以在 .env 文件中更改应用程序的端口;但是,默认情况下它应该与 localhost:80 一起使用。
多亏了 WSL2 和 Laravel Sail,Windows 机器上的 PHP 开发变得更加容易和易于访问。 WSL2 提供了 Linux 发行版在 Windows 环境中的无缝集成,而 Laravel Sail 则简化了 Laravel 项目本地开发环境的设置和配置。按照本文概述的步骤,您可以利用 WSL2 和 Laravel Sail 在 Windows 机器上享受舒适的 PHP 开发体验,而无需切换到 Ubuntu 或其他 Linux 发行版。