Laravel新手最短可行路径是「先跑通带数据库的CRUD页面→加用户登录→部署到真实服务器」,跳过花哨功能;需确保PHP≥8.1并启用pdo、mbstring、openssl、tokenizer扩展,用composer create-project创建项目,路由-控制器-视图闭环验证后再部署。
直接上结论:Laravel 新手从零到上线,最短可行路径是「先跑通一个带数据库的 CRUD 页面 → 加上用户登录 → 部署到真实服务器」,中间跳过所有花哨功能和理论堆砌。其他路线要么卡在环境配置,要么陷进文档迷宫。
很多人卡在第一步,不是 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 --version 要能输出;如果提示“command not found”,别用局部安装的 composer.phar,执行 sudo mv composer.phar /usr/local/bin/composer
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
新手常把路由、控制器、视图当成三个独立模块去记,结果写完路由不知道怎么传数据,写了控制器不知道怎么渲染,最后抄来代码也跑不通。
routes/web.php 里默认内容,写一条最简路由:Route::get('/posts', [AppHttpControllersPostController::class, 'index']);
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 读取失败导致配置为空)www-data)必须对 storage/ 和 bootstrap/cache/ 有写权限,否则日志写不了、Session 存不上APP_KEY 在部署时必须和本地一致,否则加密 Session 全乱;如果重生成了,旧用户全部登出,所以不要随便跑 php artisan key:generate
真正卡住新手的从来不是语法多难,而是环境链路上任意一环断掉——PHP 扩展、Composer 权限、视图路径拼写、.env 里一个空格,都会让整个流程停摆。与其反复查文档,不如把上面四步当检查清单,每走一步确认一次输出,比盲目堆功能靠谱得多。