laravel 11在pop!_os 22.04上需手动安装php 8.2+(默认8.1不满足)、启用mbstring/xml/zip/curl等扩展、使用composer 2.5+并配置国内镜像,安装后须执行php artisan key:generate并确保storage与bootstrap/cache可写。

Pop!_OS 22.04 上可以直接运行 Laravel 11,但必须手动安装 PHP 8.2+、Composer 和扩展,系统默认的 PHP 版本(8.1)不满足 Laravel 11 最低要求。
确认 PHP 版本是否达标
Laravel 11 要求 PHP >= 8.2,而 Pop!_OS 22.04 默认源只提供 php8.1。直接运行 php -v 很可能显示 8.1.x,此时 composer create-project laravel/laravel 会报错:Your requirements could not be resolved to an installable set of packages.
- 检查当前 PHP:运行
php -v和which php - 查看可用版本:运行
apt list php* | grep cli,你会发现php8.2-cli不在默认源中 - 不要尝试用
ppa:ondrej/php(该 PPA 已停止维护 Ubuntu 22.04 支持)
安装 PHP 8.2 + 必需扩展
Pop!_OS 基于 Ubuntu,应使用官方推荐的 deadsnakes PPA 或更稳妥的方式:从 ubuntu:22.04 的 php backports 源启用 php8.2。实际验证可行的方法是:
- 添加 Ubuntu 官方 backports 源(安全且持续更新):
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu jammy-backports main universe" - 更新并安装:
sudo apt updatesudo apt install php8.2-cli php8.2-mbstring php8.2-xml php8.2-zip php8.2-curl php8.2-bcmath php8.2-opcache - 设为默认:
sudo update-alternatives --set php /usr/bin/php8.2 - 验证:
php -v应输出8.2.x,php -m | grep -E 'mbstring|xml|zip'应全部命中
安装 Composer 并创建 Laravel 11 项目
Composer 必须是 2.5+ 才能正确解析 Laravel 11 的依赖约束。Pop!_OS 自带的 composer 包版本太旧(常为 2.2),会导致 create-project 失败或降级到 Laravel 10。
- 卸载系统包:
sudo apt remove composer - 下载最新稳定版:
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer - 确认版本:
composer --version应 ≥2.5.8 - 创建项目:
composer create-project laravel/laravel myapp --prefer-dist
(--prefer-dist避免 git 克隆慢和权限问题) - 进入目录后首次运行:
php artisan serve—— 默认监听http://127.0.0.1:8000
常见运行失败点
即使环境装对了,Laravel 11 启动时仍可能黑屏或报 500 错误,多数因配置残留或权限导致:
-
storage/和bootstrap/cache/目录未可写:chmod -R 775 storage bootstrap/cache(不要用777) - APP_KEY 未生成:
php artisan key:generate必须在serve前执行 - 使用
php8.2运行但终端仍调用php8.1:
检查hash -r清缓存,或直接用完整路径:/usr/bin/php8.2 artisan serve - SQLite 驱动未启用(若用 SQLite):
sudo apt install php8.2-sqlite3
最易被忽略的是:Laravel 11 默认启用了 Route::middleware('web') 的自动绑定,如果 app/Http/Kernel.php 中 $middlewareGroups['web'] 被意外清空或改写,请求会静默失败——建议首次运行前不做任何 Kernel 修改。











