laravel 11 在统信 uos 20 上跑不起来,90% 是因 php 版本或扩展未真实启用;必须确保 php -v ≥8.2.0 且 php -m 输出全部必需扩展(mbstring、openssl、pdo 等),并使用 composer 3.x + 国内镜像、--no-interaction 创建项目后立即执行 key:generate。

Laravel 11 在统信 UOS 20 上跑不起来,90% 是因为 PHP 版本或扩展没真正启用,不是“装了就行”,而是必须让 php -m 实时输出全部必需模块。
确认 PHP 8.2+ 及核心扩展已真实加载
UOS 20 自带的 PHP 通常为 8.1 或更低,php -v 输出必须 ≥8.2.0;光装不行,得验证运行时加载:
- 执行
php -m | grep -E "(mbstring|openssl|pdo|tokenizer|xml|ctype|json|curl)"—— 每项都必须有输出,缺mbstring或openssl会直接卡在composer create-project第一步 - Linux 下常见问题:PHP 包已安装,但
/etc/php/*/cli/php.ini里extension=mbstring还被注释着;用php --ini找到实际加载的 ini 文件路径,手动编辑并取消注释 - UOS 默认源不提供
php-intl,需先加全量源:sudo nano /etc/apt/sources.list替换为统信官方全量源(含non-free),再sudo apt update && sudo apt install php-intl
必须用 Composer 3.x + 国内镜像源
Composer 2.x 在 UOS 上执行 create-project laravel/laravel:^11.0 会卡死在 “Resolving dependencies”,这不是网络慢,是解析器不兼容。
- 验证版本:
composer --version必须输出3.x;UOS 自带的apt install composer默认仍是 2.x,别用 - 正确安装方式:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"→php composer-setup.php --install-dir=/usr/local/bin --filename=composer - 立刻配国内镜像(腾讯云最稳):
composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/
创建项目必须加 --no-interaction 并立即生成密钥
UOS 终端无 TTY,漏掉这个参数会导致 .env 空白、APP_KEY 是默认占位符,后续所有 Session、CSRF、加密都会静默失效。
- 唯一安全命令:
composer create-project laravel/laravel blog --no-interaction - 进目录后立刻执行:
cd blog && php artisan key:generate - 别跳过缓存清理:
php artisan config:clear && php artisan cache:clear,否则旧配置可能残留
数据库连接失败常因认证插件或端口未放开
启动 php artisan serve 能看到欢迎页 ≠ 数据库通。UOS 上 MySQL 8.0+ 默认用 caching_sha2_password,而 Laravel 的 PDO 默认不支持该插件。
- 检查 MySQL 用户认证方式:
SELECT user,host,plugin FROM mysql.user WHERE user='homestead'; - 若 plugin 是
caching_sha2_password,改回兼容模式:ALTER USER 'homestead'@'%' IDENTIFIED WITH mysql_native_password BY 'secret'; - UOS 默认开启防火墙,确认
sudo ufw status或sudo firewall-cmd --list-ports是否放行3306;桌面版用户尤其注意,ufw常默认 deny
最易忽略的一点:UOS 服务器版和桌面版对 systemd 服务路径、SELinux/AppArmor 策略不同,用桌面版装宝塔或 Laravel,MySQL/Nginx 常因权限拦截静默退出——部署前务必 lsb_release -a | grep Description 确认是 “Server Edition”。











