laravel 11 在凝思操作系统(neokylin 8.0)上可运行,但需同时满足 php ≥ 8.2、启用 mbstring/intl/openssl/pdo/tokenizer/xml/curl 等扩展(intl 依赖 icu 库)、composer 3.x 版本,并使用 --no-interaction 参数创建项目,进目录后立即执行 php artisan key:generate 及清缓存操作,同时配置 firewalld 放行 8000 端口并调整 mysql 认证方式以避免静默失败。

php artisan --version 都会直接报错退出。
确认 PHP 8.2+ 已安装且真实可用
凝思 8.0 默认源里的 PHP 通常仍是 7.4 或 8.0,不满足 Laravel 11 最低要求(PHP ≥ 8.2)。不能只看php -v 输出,要验证运行时加载的模块:
执行 php -m | grep -E "(mbstring|openssl|pdo|tokenizer|xml|curl|intl)",每项都必须有输出;缺 intl 是最常见失败原因(尤其国产系统默认不启)
- 若缺失,先查
php --ini显示的Loaded Configuration File路径,打开对应php.ini,取消注释extension=mbstring、extension=intl等行 - intl 依赖 ICU 库:执行
yum list installed | grep icu,若无则需手动安装yum install icu libicu-devel,再重编译或重启 PHP-FPM - 凝思 8.0 的 yum 源较旧,建议从 Remi 仓库安装 PHP 8.2:
yum install https://rpms.remirepo.net/enterprise/remi-release-8.rpm,然后yum-config-manager --enable remi-php82,再yum install php php-cli php-pdo php-mbstring php-xml php-intl php-opcache php-curl
必须用 Composer 3.x,2.x 会静默失败
Laravel 11 的 composer.json 显式依赖 Composer 3 的插件解析机制。用 composer --version 查,输出必须是 3.x。凝思默认 yum install composer 装的是 2.5.x,必卡在 Resolving dependencies 或报 Your requirements could not be resolved
- 卸载旧版:
yum remove composer - 用官方脚本安装(推荐):
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && php composer-setup.php --install-dir=/usr/local/bin --filename=composer - 验证:
composer --version输出应为类似Composer version 3.0.4 2026-07-12 14:22:31
创建项目必须加 --no-interaction
凝思是纯终端环境,无 TTY 交互能力。漏掉这个参数,composer create-project laravel/laravel myapp 表面成功,实则 .env 是空的、APP_KEY 是占位符,后续所有加密、Session、CSRF 全崩
- 正确命令:
composer create-project laravel/laravel myapp --no-interaction - 进目录后立刻执行:
cd myapp && php artisan key:generate && php artisan config:clear && php artisan cache:clear - 若提示
zlib_decode错误,说明 Composer 缓存损坏:清空~/.composer/cache后重试,并加内存限制COMPOSER_MEMORY_LIMIT=-1
Web 服务启动前绕过两个静默陷阱
用 php artisan serve 能看到欢迎页 ≠ 后端真正通了。凝思环境下两个高频静默故障:
-
防火墙拦端口:凝思默认开启 firewalld,
php artisan serve默认用 8000 端口,但未放行。执行firewall-cmd --permanent --add-port=8000/tcp && firewall-cmd --reload -
数据库驱动不匹配:MySQL 8.0+ 默认用
caching_sha2_password认证,而 PDO MySQL 扩展若未编译支持该插件,连接会静默超时。解决方法:进 MySQL 执行ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password'; FLUSH PRIVILEGES;,再改.env中DB_CONNECTION=mysql











