Composer安装失败主因是CentOS证书过期及PHP扩展缺失;需先更新ca-certificates,再安装php-mbstring、php-xml等依赖,最后配置权限与全局命令。

Composer 安装失败:curl: (60) SSL certificate problem
CentOS 默认的 OpenSSL 证书库老旧,curl 或 php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" 常卡在这一步。不是网络问题,是系统信任链缺失。
- 先更新证书:
sudo yum update ca-certificates -y,再执行sudo update-ca-trust force-enable - 临时绕过(仅调试):
curl -k https://getcomposer.org/installer -o composer-setup.php,但生产环境严禁用-k - 验证是否修复:
php -r "print_r(openssl_get_cert_locations());",看default_cert_file路径是否存在且可读
PHP 扩展缺失导致 Composer install 报错 ext-mbstring 或 ext-xml
ThinkPHP 6+ 强依赖 mbstring、xml、json、pdo(哪怕不用数据库也要装),CentOS 的最小化安装通常只带基础 PHP,缺一堆。
- 查当前缺失:
php -m | grep -E 'mbstring|xml|json|pdo',漏了哪个就补哪个 - 安装命令(PHP 7.4 示例):
sudo yum install php-mbstring php-xml php-json php-pdo php-opcache -y - 注意版本对齐:
php -v输出是 8.1?那就要装php81-php-mbstring这类 SCL 包,不能硬上php-mbstring - 改完重启 Web 服务:
sudo systemctl restart php-fpm(或httpd),否则phpinfo()里看不到新扩展
Composer 全局安装后提示 command not found
php composer-setup.php 成功后生成的是本地 composer.phar,不是系统命令。直接运行 composer --version 肯定报错。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 移进系统路径:
sudo mv composer.phar /usr/local/bin/composer - 加执行权限:
sudo chmod +x /usr/local/bin/composer - 验证:
which composer应输出/usr/local/bin/composer,再跑composer --version - 别用
sudo composer create-project—— 权限混乱会导致后续vendor/目录属主错乱,切到项目目录再用普通用户执行
ThinkPHP 部署时 vendor/autoload.php 无法加载
不是 Composer 没跑,而是 Apache/Nginx 用户(如 apache 或 nginx)没权限读取 vendor/ 下的文件,尤其当项目是 root 身份用 Composer 装的。
立即学习“PHP免费学习笔记(深入)”;
- 确认 Web 进程用户:
ps aux | grep -E '(httpd|nginx|php-fpm)',常见是apache或nginx - 修正权限:
sudo chown -R $USER:apache /path/to/your/project(Apache 场景),再sudo chmod -R 755 /path/to/your/project - 关键点:不要
chmod 777 vendor/,ThinkPHP 的runtime/目录才需要写入权限,vendor/只读即可 - 如果用 PHP-FPM,还要检查
www.conf里的user和group是否与目录属组一致
路径权限和 PHP 扩展这两块最容易被跳过,尤其是 php-xml 缺失时 Composer 会静默失败,只报“require failed”,得翻 composer diagnose 输出才能定位。


















