Laravel怎么安装配置环境_Laravel快速搭建开发环境步骤【基础】

5次阅读

laravel 项目启动失败主因是php版本/扩展不达标、Web服务器配置错误或.env未生效;需确认PHP≥8.1并启用mbstring等扩展,DocumentRoot指向public目录,且执行key:generate与config:clear。

Laravel怎么安装配置环境_Laravel快速搭建开发环境步骤【基础】

直接用 laravel/installercomposer create-project 能跑起来,但多数人卡在 PHP 版本、扩展缺失、apache/nginx 配置或 .env 未生效上。

确认 PHP 环境是否达标

Laravel 10+ 要求 PHP ≥ 8.1,且必须启用 mbstringopensslpdotokenizerxmlctypejson 这些扩展。windows 用户常漏掉 php.ini 中的 extension=opensslextension=mbstring —— 注释没去掉就报 class "Mbstring" not found

  • 运行 php -v 看版本,再执行 php -m | grep -E "(mbstring|openssl|pdo)"linux/macos)或 php -m(Windows,手动扫一遍)
  • 如果缺扩展,Linux 用 sudo apt install php-mbstring php-xml php-zip;macOS 用 brew install php@8.2 后注意 echo 'export PATH="/opt/homebrew/opt/php/bin:$PATH"' >> ~/.zshrc
  • Windows 下改 php.ini 后必须重启 Web 服务(不是浏览器),否则 phpinfo() 里看不到变化

用 Composer 创建项目时绕过权限和路径坑

别在系统根目录或带空格/中文路径下运行 composer create-project laravel/laravel myapp —— Windows 上容易因路径解析失败导致 vendor/autoload.php 找不到,报错 Failed to open stream: No such file or Directory

  • 先确保 Composer 已全局安装且可用:composer --version
  • 切换到干净英文路径,例如 D:laravelmyapp~/Sites/myapp
  • 运行 composer create-project laravel/laravel:^10.0 myapp(显式指定版本避免拉到 dev 分支)
  • 如果卡在 Installing dependencies,加 --no-interaction --prefer-dist 参数提速

Web 服务器配置最容易忽略的两点

php artisan serve 只适合本地调试;真要配 Apache/Nginx,核心是让请求全部落到 public/index.php,而不是项目根目录。很多人把整个 Laravel 文件夹扔进 htdocs,结果一访问就看到满屏文件列表或 403。

  • Apache:确保 mod_rewrite 已启用,并在虚拟主机配置里设置 DocumentRoot "/path/to/myapp/public",同时允许 .htaccess 覆盖: AllowOverride All
  • Nginx:在 server 块里写 root /path/to/myapp/public;,并加上 try_files $uri $uri/ /index.php?$query_string;
  • Windows 上用 XAMPP/WAMP,记得点开控制面板 → Apache → Config → httpd-vhosts.conf 手动加虚拟主机,不能只改 DocumentRoot

.env 文件不生效?检查这三处

.env 是 Laravel 启动时读取的第一份配置,但它不会自动重载。改完不生效,90% 是因为缓存没清、APP_KEY 没生成,或文件权限不对。

  • 首次安装后必须运行 php artisan key:generate,否则会报 The only supported ciphers are AES-128-CBC and AES-256-CBC
  • 修改 .env 后,执行 php artisan config:clear(不是 cache:clear);如果用了 OPcache,还得加 opcache_reset() 或重启 PHP-FPM
  • Linux/macOS 下检查 .env 权限:ls -l .env 应显示可读,若为 ---------- 就得 chmod 644 .env

环境变量和 Web 服务器路由规则这两块,改一次就要验证一次——Laravel 不会告诉你哪行配置被忽略了,它只会安静地返回 500 或空白页。

text=ZqhQzanResources