laravel 11在arch linux上安装必须满足php≥8.2、composer 3.x及全部必需扩展(mbstring/openssl/pdo/tokenizer/xml/curl/json/ctype/bcmath/fileinfo)三者精准对齐,缺一则create-project卡在依赖解析;需手动启用php.ini扩展、卸载pacman版composer并安装官方3.x、强制加--no-interaction参数、创建后立即执行key:generate,并修复storage与bootstrap/cache写权限。

Arch Linux 上安装 Laravel 11 不能直接套用 Ubuntu/Debian 的 apt 安装逻辑,它要求你手动确保 PHP 版本、扩展、Composer 版本三者全部精准对齐,缺一不可——尤其是 php 必须 ≥ 8.2.0,composer 必须是 3.x,否则 composer create-project 会卡在依赖解析阶段,报错但不提示真实原因。
确认 PHP 8.2+ 及必需扩展已启用
Arch 默认仓库的 php 包已升级至 8.3.x(截至 2026 年 9 月),但扩展默认不全启用。执行以下命令验证:
php -v php -m | grep -E '^(mbstring|openssl|pdo|tokenizer|xml|curl|json|ctype|bcmath|fileinfo)$'
若漏掉任一模块(尤其 mbstring 和 fileinfo),需编辑 /etc/php/php.ini,取消对应行前的分号注释,例如:
;extension=mbstring ;extension=fileinfo
→ 改为:
extension=mbstring extension=fileinfo
改完后无需重启服务(php artisan serve 是独立进程),但必须重新运行命令确认生效。
强制使用 Composer 3.x,禁用系统包管理器安装的旧版
Arch 的 community/composer 包仍为 2.5.x(截至 2026 年 9 月),无法解析 Laravel 11 的 composer.json。必须卸载并手动安装官方 3.x:
- 卸载系统版:
sudo pacman -R composer - 下载并安装最新稳定版:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer - 验证:
composer --version输出必须是Composer version 3.x.x
如果看到 2.x,说明旧二进制仍在 $PATH 中,检查 which composer 并删除残留文件。
运行 create-project 时必须加 --no-interaction
Laravel 11 的初始化流程已移除交互式提示,但 Composer 在无 TTY 环境下仍会尝试等待输入,导致项目看似创建成功、实则 .env 为空、APP_KEY 未生成。正确命令只有一条:
composer create-project laravel/laravel myapp --no-interaction
进入目录后立刻执行:
cd myapp && php artisan key:generate
漏掉这步,后续所有加密操作(Session、CSRF、Cookie 签名)都会失败,且错误不显式抛出,只表现为登录跳转异常或表单提交 419。
启动前检查 storage 和 bootstrap/cache 权限
Arch 默认用户无权写入这些目录,php artisan serve 虽能启动,但日志、缓存、视图编译会静默失败。执行:
chmod -R 755 storage bootstrap/cache
如果用 systemd 用户服务托管 Laravel(如长期运行队列),还需确保运行用户对 storage/logs 有写权限,否则 php artisan queue:work 启动即退出,无任何日志输出。
最易被忽略的是:Arch 的 php-fpm 默认以 http 用户运行,而本地开发常用当前用户执行 php artisan serve ——两者权限模型不同,别把生产环境的 chown 逻辑照搬到本地调试中。











