根本原因是almalinux 9默认php 8.1与laravel 11要求的≥8.2不兼容,且composer需≥3.0、关键扩展未启用、全局bin路径未加入path、selinux阻止storage/cache写入。

laravel new 命令在 Linode 上的 AlmaLinux 9 环境中失败,根本原因不是 Laravel 本身有问题,而是 PHP 运行时环境与 Composer 工具链没对齐。AlmaLinux 9 默认带的是 PHP 8.1,而 Laravel 11 明确要求 PHP ≥ 8.2 —— 即使你用 dnf install php 装了,也大概率装的是 8.1.x,且关键扩展默认未启用。
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
php -v 显示 8.1.x 但 Laravel 11 要求 ≥ 8.2
- AlmaLinux 9 的 baseos 仓库只提供 PHP 8.1;Laravel 11 会直接拒绝启动(
composer create-project阶段就报错:Your requirements could not be resolved) - 正确做法是启用 Remi 仓库安装 PHP 8.2+:
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm sudo dnf module reset php sudo dnf module enable php:remi-8.2 sudo dnf install -y php php-cli php-common php-devel php-gd php-mbstring php-opcache php-pdo php-xml php-zip
- 安装完必须验证:
php -v输出应为PHP 8.2.x(不是 8.1),且php -m | grep mbstring有输出
composer create-project laravel/laravel 卡在 “Resolving dependencies”
- AlmaLinux 9 默认的 Composer 版本是 2.x(
composer --version输出2.5.x),但 Laravel 11 要求 Composer ≥ 3.0 - 不升级 Composer,
create-project会静默失败或报错Your Composer version is outdated - 升级命令(不用
sudo):php -d memory_limit=-1 /usr/bin/composer self-update --stable
- 升级后验证:
composer --version必须显示3.x(如3.5.6)
laravel new myapp 报错 “Could not find package laravel/installer”
- 这是全局安装器失效的典型表现,常见于:
-
~/.composer/vendor/bin不在$PATH中(AlmaLinux 默认 shell 是 bash,检查~/.bashrc) -
composer global require laravel/installer执行时用了sudo,导致权限混乱
-
- 正确操作顺序:
- 确认 Composer 全局 bin 路径:
composer global config bin-dir --absolute - 把它加进
~/.bashrc:echo 'export PATH="$(composer global config bin-dir --absolute):$PATH"' >> ~/.bashrc -
source ~/.bashrc,再运行composer global require laravel/installer
- 确认 Composer 全局 bin 路径:
- 若仍失败,跳过
laravel new,直接用 Composer 创建:composer create-project laravel/laravel myapp --no-interaction --prefer-dist
最关键的遗漏点往往在初始化之后:AlmaLinux 9 的 SELinux 默认启用,storage 和 bootstrap/cache 目录即使 chmod 775 也可能被阻止写入。不要关 SELinux,改用:
sudo setsebool -P httpd_can_network_connect 1 sudo setsebool -P httpd_can_network_connect_db 1 sudo chcon -R -t httpd_sys_rw_content_t storage/ bootstrap/cache/否则
php artisan key:generate 或后续请求会静默失败。










