最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
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,且必须启用 pdo、mbstring、openssl、tokenizer 四个扩展。
- 运行
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 blog(blog是目录名,可换) - 加
--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/index或posts.index.blade.php都会报View [xxx] not found
部署前只做三件事:改 .env、关 APP_DEBUG、预编译视图
本地能跑 ≠ 上线能用。很多新手把代码扔到服务器就以为完事,结果首页空白、登录 500、CSS 不加载——问题几乎全出在这三步漏做。
- 改
.env:数据库连接(DB_HOST、DB_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 里一个空格,都会让整个流程停摆。与其反复查文档,不如把上面四步当检查清单,每走一步确认一次输出,比盲目堆功能靠谱得多。