Laravel 11 安装与环境配置

在开始使用 Laravel 11 之前,需要先准备好运行环境。本章将详细介绍从零开始搭建 Laravel 开发环境的全过程, 包括版本要求、本地环境选择、Composer 安装、项目创建以及基础配置。

📋 环境要求

Laravel 11 对服务器环境有明确的要求,请确保系统满足以下条件:

组件 要求 说明
PHP ≥ 8.2 必须使用 PHP 8.2 或更高版本 [citation:1][citation:9]
必需 PHP 扩展 Ctype cURL DOM Fileinfo Filter Hash Mbstring OpenSSL PCRE PDO Session Tokenizer XML
Composer ≥ 2.8 PHP 依赖管理工具,建议使用最新稳定版 [citation:8]
数据库 MySQL ≥ 5.7 / MariaDB ≥ 10.3 / PostgreSQL / SQLite / SQL Server
Web 服务器 Nginx 或 Apache(需启用 mod_rewrite)
💡 版本选择建议: 生产环境建议使用 Laravel 的 LTS(长期支持)版本或当前最新稳定版。 Laravel 11 是包含新特性的稳定版本,适合新项目启动 [citation:5]。

🔧 本地开发环境搭建

根据你的操作系统,可以选择以下集成环境工具快速搭建 PHP 运行环境:

Windows
Laragon / XAMPP / WampServer

推荐使用 Laragon,它支持快速创建隔离环境、自动配置虚拟主机,且内置 PHP 8.2+ 支持。

macOS
Laravel Herd / Valet

Herd 是专为 Laravel 设计的 macOS 环境,一键安装 PHP、Nginx、dnsmasq。[citation:1]

Linux
LNMP / LAMP

手动安装 Nginx/Apache + MySQL + PHP 8.2,或使用 OneInStack 等管理工具。

此外,官方推荐使用 Laravel Sail(基于 Docker)作为开发环境,它提供了统一的容器化环境,适合团队协作。

📦 安装 Composer

Composer 是 Laravel 必须的依赖管理工具。如果尚未安装,请参照以下步骤:

  1. 1 下载安装程序

    访问 getcomposer.org 下载安装包,或使用命令行:

    php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
    php composer-setup.php
    php -r "unlink('composer-setup.php');"
  2. 2 全局安装(推荐)

    将 Composer 安装到系统路径,方便全局调用:

    # macOS / Linux
    sudo mv composer.phar /usr/local/bin/composer
    
    # Windows
    # 将 composer.phar 所在目录添加到系统环境变量 PATH 中
  3. 3 验证安装
    composer --version

    显示类似 Composer version 2.8.x 即表示成功 [citation:6]。

🌐 国内镜像加速: 安装完成后建议配置阿里云或腾讯云 Composer 镜像,加速依赖下载:
composer config -g repo.packagist composer https://mirrors.tencent.com/composer/

🚀 创建 Laravel 11 项目

有两种方式可以创建新的 Laravel 项目:通过 Composer 或 Laravel 安装器。

方法一:使用 Composer create-project(推荐)
composer create-project laravel/laravel example-app --no-interaction

参数说明:

  • example-app 是项目目录名称,可自定义
  • --no-interaction 可避免安装过程中的交互提示,确保自动生成 .env 文件 [citation:8]
方法二:使用 Laravel 安装器
# 先全局安装 Laravel 安装器
composer global require laravel/installer

# 然后创建项目
laravel new example-app

使用安装器时,可以选择是否安装 Starter Kit(Breeze / Jetstream)、测试框架、数据库引擎等选项 [citation:1]。

⚠️ 注意: Laravel 11 要求 Composer 3.x 版本。如果使用旧版本 Composer(2.5 以下), 安装时可能会卡在依赖解析阶段,请升级 Composer 后再试 [citation:8]。

⚙️ 项目基础配置

1. 环境变量文件 .env

Laravel 的配置通过项目根目录下的 .env 文件管理。如果安装时未自动生成,可以复制示例文件:

cp .env.example .env

主要配置项说明:

APP_NAME=Laravel
APP_ENV=local           # 环境:local/production
APP_DEBUG=true          # 调试模式:开发环境开启,生产关闭
APP_URL=http://localhost

# 数据库配置示例(MySQL)
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database
DB_USERNAME=your_user
DB_PASSWORD=your_password
2. 生成应用密钥 APP_KEY

APP_KEY 用于 Session 和加密服务,必须生成:

php artisan key:generate

执行后 .env 文件中的 APP_KEY 会自动填充 [citation:6]。

3. 目录权限设置

确保 storagebootstrap/cache 目录可写:

chmod -R 775 storage
chmod -R 775 bootstrap/cache

在生产环境中,通常将目录所有者设置为 Web 服务器用户(如 www-data)[citation:2]。

🌐 Web 服务器配置

开发环境:使用内置服务器

Laravel 提供了便捷的开发服务器,适用于本地开发:

php artisan serve
# 默认访问 http://localhost:8000
生产环境:Nginx 配置示例

将网站根目录指向项目的 public 文件夹,并配置 URL 重写:

server {
    listen 80;
    server_name example.com;
    root /var/www/example.com/public;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Content-Type-Options "nosniff";

    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.(?!well-known).* {
        deny all;
    }
}

Apache 用户需要启用 mod_rewrite,并在 public/.htaccess 中使用 Laravel 默认的重写规则 [citation:2]。

✅ 验证安装

完成以上步骤后,在浏览器中访问你的应用域名或 http://localhost:8000,应该看到 Laravel 的欢迎页面。

此外,可以通过 Artisan 命令查看版本:

php artisan --version
# Laravel Framework 11.x.x

❓ 常见问题排查

这通常是由于 Composer 版本过低或网络问题导致。请升级 Composer 到 3.x 版本,并尝试切换国内镜像 [citation:8]。

未生成 APP_KEY。在项目根目录执行 php artisan key:generate 即可 [citation:6]。

检查 .env 中的数据库配置是否正确,确认数据库服务已启动且用户权限无误。 如果是 MySQL 8.0,可能需要修改认证方式为 mysql_native_password [citation:8]。

设置正确的目录权限:chmod -R 775 storage bootstrap/cache,并确保目录所有者与 Web 服务器用户一致 [citation:2]。