我正在尝试在从 git 克隆的 Laravel 项目中进行作曲家安装。
但是我遇到了一些错误。
我解决的第一个问题是:
- phpunit/phpunit[8.5.0, ..., 8.5.x-dev] require ext-dom * -> it is missing from your system. Install or enable PHP's dom extension.
通过这样做:
sudo apt install php7-4-xml php7.4-mbstring
但是现在当我做
composer update
或 composer install
时,我得到这个答案:
PHP Fatal error: Uncaught Error: Class 'Normalizer' not found in /usr/share/php/Symfony/Component/Console/Helper/Helper.php:129
.
Stack trace:
#0 /usr/share/php/Symfony/Component/Console/Helper/ProgressBar.php(516): Symfony\Component\Console\Helper\Helper::strlenWithoutDecoration()
#1 /usr/share/php/Symfony/Component/Console/Helper/ProgressBar.php(576): Symfony\Component\Console\Helper\ProgressBar::Symfony\Component\Console\Helper\{closure}()
#2 [internal function]: Symfony\Component\Console\Helper\ProgressBar->Symfony\Component\Console\Helper\{closure}()
#3 /usr/share/php/Symfony/Component/Console/Helper/ProgressBar.php(589): preg_replace_callback()
#4 /usr/share/php/Symfony/Component/Console/Helper/ProgressBar.php(414): Symfony\Component\Console\Helper\ProgressBar->buildLine()
#5 /usr/share/php/Symfony/Component/Console/Helper/ProgressBar.php(323): Symfony\Component\Console\Helper\ProgressBar->display()
#6 /usr/share/php/Composer/Util/Loop.php(85): Symfony\Component\Console\Helper\ProgressBar->start()
#7 /usr/share/php/Compos in /usr/share/php/Symfony/Component/Console/Helper/Helper.php on line 129
Fatal error: Uncaught Error: Class 'Normalizer' not found in /usr/share/php/Symfony/Component/Console/Helper/Helper.php:129
Stack trace:
#0 /usr/share/php/Symfony/Component/Console/Helper/ProgressBar.php(516): Symfony\Component\Console\Helper\Helper::strlenWithoutDecoration()
#1 /usr/share/php/Symfony/Component/Console/Helper/ProgressBar.php(576): Symfony\Component\Console\Helper\ProgressBar::Symfony\Component\Console\Helper\{closure}()
#2 [internal function]: Symfony\Component\Console\Helper\ProgressBar->Symfony\Component\Console\Helper\{closure}()
#3 /usr/share/php/Symfony/Component/Console/Helper/ProgressBar.php(589): preg_replace_callback()
#4 /usr/share/php/Symfony/Component/Console/Helper/ProgressBar.php(414): Symfony\Component\Console\Helper\ProgressBar->buildLine()
#5 /usr/share/php/Symfony/Component/Console/Helper/ProgressBar.php(323): Symfony\Component\Console\Helper\ProgressBar->display()
#6 /usr/share/php/Composer/Util/Loop.php(85): Symfony\Component\Console\Helper\ProgressBar->start()
#7 /usr/share/php/Compos in /usr/share/php/Symfony/Component/Console/Helper/Helper.php on line 129
Normalizer 类附带 php 国际化扩展 (php-intl)。必须安装它才能使用 Normalizer 类
在 Debian 上我做到了
sudo apt install php-intl
应该可以解决问题
首先你可以尝试安装 php-intl 包
sudo apt install php-intl
如果没有帮助,您可以一一运行以下命令将php版本升级到8.1。 (适用于基于 Debian 的操作系统):
sudo apt update
sudo apt upgrade
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt install php8.1 php8.1-cli php8.1-fpm php8.1-apcu php8.1-opcache php8.1-common php8.1-curl php8.1-zip php8.1-mcrypt php8.1-mysql php8.1-mbstring php8.1-xml php8.1-gd php8.1-imagick php8.1-xmlrpc php8.1-maxminddb
sudo update-alternatives --set php /usr/bin/php8.1
然后检查php版本:
php --version
这帮助我修复了错误。
要解决这个问题,您需要安装较新版本的 php 8.1
我遇到了这个问题,并设法通过卸载 Composer,然后从正确的存储库正确地重新安装 Composer 来解决它。我正在使用
sudo-apt get composer
,这就是问题所在。
这可以通过直接从他们的网站安装 Composer 来解决。
删除随操作系统的包管理器安装的包,然后运行:
curl -sS https://getcomposer.org/installer | php && sudo mv composer.phar /usr/local/bin/composer
我尝试了上述所有方法,但仍然看到相同的错误。任何帮助,解决我的问题 我的PHP版本是8.1.27 操作系统是ubuntu 22.04 Composer版本是2.2.6