laravel telescope 安装失败主因是版本错配或未加 --dev 参数:laravel 8.x 用 ^3.0,9.x 用 ^4.0,10.4+ 推荐 ^5.0;需确认 app_env=local、telescope_enabled=true、已迁移数据库并清除缓存。

装不上 Telescope,90% 是版本错配或漏了 --dev;不是网络问题,也不是权限问题。
确认 Laravel 和 Telescope 版本是否兼容
Telescope 不是“装最新版就对”,它和 Laravel 主版本强绑定,且从 v4 起不再向下兼容:
- Laravel 8.x → 必须用
composer require laravel/telescope:^3.0 --dev(但注意:v3在 PHP 8.1+ 会报TypeError: Return value of LaravelTelescopeTelescope::record() must be an instance of LaravelTelescopeoid) - Laravel 9.x → 只能用
composer require laravel/telescope:^4.0 --dev - Laravel 10.4+ → 推荐
composer require laravel/telescope:^5.0 --dev,v5 已移除对旧 PHP/Laravel 的兼容包袱
查当前版本:运行 php artisan --version,别凭印象判断。Laravel 10.0 和 10.4 对 Telescope 的支持差异很大,不能混用。
telescope:install 命令不存在
这不是命令写错了,是服务提供者根本没注册进 Laravel 启动流程。常见原因:
-
composer.json里配置了"dont-discover": ["laravel/telescope"](除非你明确要手动注册,否则删掉) - 自动加载映射损坏:运行
composer dump-autoload强制重建 - 检查
vendor/composer/autoload_psr4.php是否包含'Laravel\Telescope\' => array($vendorDir . '/laravel/telescope/src') - 手动往
config/app.php的providers数组加过LaravelTelescopeTelescopeServiceProvider::class?v4+ 默认靠自动发现,加了反而冲突,删掉 - 执行
php artisan config:clear和php artisan cache:clear清掉残留缓存
访问 /telescope 返回 404 或 403
不是路由没发布,是环境或权限拦截了请求:
-
.env中必须是APP_ENV=local—— 其他值(如staging、dev)都不行,Telescope 的路由只在local下注册 - 必须已登录:未登录时会重定向到
/login,若项目没配登录逻辑,就卡在白屏或循环跳转 - 权限控制在
app/Providers/TelescopeServiceProvider.php的gate()方法里,默认只放行request()->user()存在的请求;临时调试可改成return true;,但上线前务必改回 - 确保数据库已迁移:
php artisan migrate,Telescope 需要telescope_entries等表才能启动数据采集
TELESCOPE_ENABLED=true 这个配置容易被忽略
即使环境、登录、权限都满足,如果 .env 里没显式设 TELESCOPE_ENABLED=true,Telescope 会静默禁用——它不依赖 APP_DEBUG,也不读 APP_ENV 的真假值,只认这个开关。v5 开始还新增了 TELESCOPE_WATCHER 控制具体模块(如 queries、models),但基础启用必须先过 TELESCOPE_ENABLED 这关。











