一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Laravel 新手从零到上线完整路线图:小白向

时间:2026-07-10 10:17:02 编辑:袖梨 来源:一聚教程网

Laravel新手最短可行路径是「先跑通带数据库的CRUD页面→加用户登录→部署到真实服务器」,跳过花哨功能;需确保PHP≥8.1并启用pdo、mbstring、openssl、tokenizer扩展,用composer create-project创建项目,路由-控制器-视图闭环验证后再部署。

直接上结论:Laravel 新手从零到上线,最短可行路径是「先跑通一个带数据库的 CRUD 页面 → 加上用户登录 → 部署到真实服务器」,中间跳过所有花哨功能和理论堆砌。其他路线要么卡在环境配置,要么陷进文档迷宫。

PHP 和 Composer 装不对,后面全白搭

很多人卡在第一步,不是 Laravel 不会用,是 PHP 版本或扩展缺了关键项。Laravel 10+ 强制要求 PHP ≥ 8.1,且必须启用 pdombstringopenssltokenizer 四个扩展。

  • 运行 php -v 确认版本;若低于 8.1,别硬凑,重装 PHP(推荐用 phpbrew 或官方包)
  • 运行 php -m | grep -E 'pdo|mbstring|openssl|tokenizer',缺哪个就装哪个(Ubuntu 是 sudo apt install php-mbstring 类似)
  • Composer 必须全局可用:composer --version 要能输出;如果提示“command not found”,别用局部安装的 composer.phar,执行 sudo mv composer.phar /usr/local/bin/composer
  • 别用 XAMPP/MAMP 启动 Laravel —— 它们自带的 PHP 常年不更新,且扩展路径混乱,极易报 Class 'PDO' not found

创建项目时别碰 laravel new,用 composer create-project

laravel new 依赖全局安装的 Laravel Installer,而这个工具在 PHP 版本切换后经常失效,报错 Could not find package laravel/installer 或静默失败。

  • 统一用:composer create-project laravel/laravel blogblog 是目录名,可换)
  • --prefer-dist 参数提速:composer create-project --prefer-dist laravel/laravel blog
  • 如果卡在 Installing dependencies,大概率是 Composer 源被墙,临时切镜像:composer config -g repo.packagist composer https://packagist.phpcomposer.com
  • 项目生成后,立刻进目录跑 php artisan serve,看到欢迎页才算真正起步;如果报 Failed to open stream: Permission denied,说明 storage/bootstrap/cache/ 目录没写权限,手动 chmod -R 777 storage bootstrap/cache

路由 + 控制器 + Blade 这三样,必须一起练,不能拆开学

新手常把路由、控制器、视图当成三个独立模块去记,结果写完路由不知道怎么传数据,写了控制器不知道怎么渲染,最后抄来代码也跑不通。

  • 第一步:删掉 routes/web.php 里默认内容,写一条最简路由:Route::get('/posts', [AppHttpControllersPostController::class, 'index']);
  • 第二步:用 Artisan 生成控制器:php artisan make:controller PostController,然后在 index() 方法里写 return view('posts.index', ['posts' => []]);
  • 第三步:创建视图文件 resources/views/posts/index.blade.php,内容就一行:<h1>Posts List</h1>
  • 此时访问 /posts 就该出页面了;再往 ['posts' => [...]] 里塞点假数据,就能看到变量输出;别急着连数据库,先让这三角闭环跑起来
  • 容易踩的坑:view() 第一个参数是路径(不含 .blade.php),且自动转斜杠为点号,posts.index 对应 resources/views/posts/index.blade.php;写成 posts/indexposts.index.blade.php 都会报 View [xxx] not found

部署前只做三件事:改 .env、关 APP_DEBUG、预编译视图

本地能跑 ≠ 上线能用。很多新手把代码扔到服务器就以为完事,结果首页空白、登录 500、CSS 不加载——问题几乎全出在这三步漏做。

  • .env:数据库连接(DB_HOSTDB_DATABASE 等)、APP_URL(必须写真实域名,如 https://myapp.com,不能留 http://localhost
  • 关调试:APP_DEBUG=false,否则任何错误都暴露敏感路径和数据库密码
  • 预编译:php artisan view:cache(避免上线后首次访问慢)和 php artisan config:cache(防止 .env 读取失败导致配置为空)
  • 别忘了 Web 服务器权限:Nginx/Apache 的运行用户(如 www-data)必须对 storage/bootstrap/cache/ 有写权限,否则日志写不了、Session 存不上
  • 还有个隐形坑:APP_KEY 在部署时必须和本地一致,否则加密 Session 全乱;如果重生成了,旧用户全部登出,所以不要随便跑 php artisan key:generate

真正卡住新手的从来不是语法多难,而是环境链路上任意一环断掉——PHP 扩展、Composer 权限、视图路径拼写、.env 里一个空格,都会让整个流程停摆。与其反复查文档,不如把上面四步当检查清单,每走一步确认一次输出,比盲目堆功能靠谱得多。

热门栏目