尝试作曲家更新时,在 CentOs 上出现此错误

问题描述 投票:0回答:2

我正在尝试在 CentOs 系统上部署我的 laravel 项目。当我要运行作曲家更新命令时,我遇到了此错误。我无法找出解决方案,我在这个平台上搜索了解决方案。我找到了 Windows,但在我的 CentOs 系统上不起作用。

Windows 解决方案:

我打算在 php.ini 文件中添加这一行:

extension=php_fileinfo.dll
但没有用。

错误信息;

Continue as root/super user [yes]? yes
Loading composer repositories with package information
Info from https://repo.packagist.org: #StandWithUkraine
 Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - laravel/framework[v8.12.0, ..., 8.x-dev] require league/flysystem ^1.1 -> satisfiable by league/flysystem[1.1.0, ..., 1.x-dev].
    - league/flysystem[1.1.0, ..., 1.x-dev] require ext-fileinfo * -> it is missing from your system. Install or enable PHP's fileinfo extension.
    - Root composer.json requires laravel/framework ^8.12 -> satisfiable by laravel/framework[v8.12.0, ..., 8.x-dev].

To enable extensions, verify that they are enabled in your .ini files:
    - /opt/cpanel/ea-php74/root/etc/php.ini
    - /opt/cpanel/ea-php74/root/etc/php.d/20-bcmath.ini
    - /opt/cpanel/ea-php74/root/etc/php.d/20-calendar.ini
    - /opt/cpanel/ea-php74/root/etc/php.d/20-ctype.ini
    - /opt/cpanel/ea-php74/root/etc/php.d/20-curl.ini
    - /opt/cpanel/ea-php74/root/etc/php.d/20-dom.ini
    - /opt/cpanel/ea-php74/root/etc/php.d/20-ftp.ini
    - /opt/cpanel/ea-php74/root/etc/php.d/20-gd.ini
    - /opt/cpanel/ea-php74/root/etc/php.d/20-iconv.ini
    - /opt/cpanel/ea-php74/root/etc/php.d/20-imap.ini
    - /opt/cpanel/ea-php74/root/etc/php.d/20-json.ini
    - /opt/cpanel/ea-php74/root/etc/php.d/20-mbstring.ini
    - /opt/cpanel/ea-php74/root/etc/php.d/20-mysqlnd.ini
    - /opt/cpanel/ea-php74/root/etc/php.d/20-pdo.ini
    - /opt/cpanel/ea-php74/root/etc/php.d/20-phar.ini
    - /opt/cpanel/ea-php74/root/etc/php.d/20-posix.ini
    - /opt/cpanel/ea-php74/root/etc/php.d/20-simplexml.ini
    - /opt/cpanel/ea-php74/root/etc/php.d/20-sockets.ini
    - /opt/cpanel/ea-php74/root/etc/php.d/20-sqlite3.ini
    - /opt/cpanel/ea-php74/root/etc/php.d/20-tokenizer.ini
    - /opt/cpanel/ea-php74/root/etc/php.d/20-xml.ini
    - /opt/cpanel/ea-php74/root/etc/php.d/20-xmlwriter.ini
    - /opt/cpanel/ea-php74/root/etc/php.d/20-xsl.ini
    - /opt/cpanel/ea-php74/root/etc/php.d/30-mysqli.ini
    - /opt/cpanel/ea-php74/root/etc/php.d/30-pdo_mysql.ini
    - /opt/cpanel/ea-php74/root/etc/php.d/30-pdo_sqlite.ini
    - /opt/cpanel/ea-php74/root/etc/php.d/30-xmlreader.ini
    - /opt/cpanel/ea-php74/root/etc/php.d/zzzzzzz-pecl.ini
You can also run `php --ini` in a terminal to see which files are used by PHP in CLI mode.
Alternatively, you can run Composer with `--ignore-platform-req=ext-fileinfo` to temporarily ignore these required extensions.

Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
php linux composer-php centos7 php-extension
2个回答
1
投票

您所需的软件包之一需要在 CentOs 系统中具有特定的 php 扩展。

查看composer update抛出的第二行错误消息

- league/flysystem[1.1.0, ..., 1.x-dev] 
 require ext-fileinfo * -> it is missing from your system. 
 Install or enable PHP's fileinfo extension.

请通过在 CentOs php.ini 中取消注释来启用这个缺失的 php 扩展

缺少的扩展名是 ext-fileinfo

注意:在新环境中部署项目时运行“composer install”也是一个好主意,以尽量减少突然更新的软件包版本可能引发安装问题。 另外不要忘记上传您的composer.lock。 看看这里的文档: https://laravel.com/docs/9.x/deployment#autoloader-optimization


0
投票

我又遇到了这个问题,解决方法如下:

在WHM面板中通过EasyApache安装文件信息扩展和其他必要的软件包后,我的问题完全解决了。谢谢大家。

© www.soinside.com 2019 - 2024. All rights reserved.