Laravel PHP7:安装外部dom问题

Laravel PHP7:安装外部dom问题,laravel,composer-php,laravel-5.4,php-7,Laravel,Composer Php,Laravel 5.4,Php 7,我正在Ubuntu 16.04服务器上用PHP7运行Laravel5.4。试图安装cviebrock/Elount sluggable程序包时抛出一些错误: pish@let:/home/sherk/ftp/www$ sudo composer require cviebrock/eloquent-sluggable Do not run Composer as root/super user! See https://getcomposer.org/root for details Using

我正在Ubuntu 16.04服务器上用PHP7运行Laravel5.4。试图安装
cviebrock/Elount sluggable
程序包时抛出一些错误:

pish@let:/home/sherk/ftp/www$ sudo composer require cviebrock/eloquent-sluggable
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Using version ^4.2 for cviebrock/eloquent-sluggable
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - phpunit/php-code-coverage 4.0.7 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - phpunit/php-code-coverage 4.0.7 requires ext-dom * -> the requested PHP extension dom is missing from your system.
    - Installation request for phpunit/php-code-coverage (installed at 4.0.7) -> satisfiable by phpunit/php-code-coverage[4.0.7].

  To enable extensions, verify that they are enabled in those .ini files:
    - /etc/php/7.0/cli/php.ini
    - /etc/php/7.0/cli/conf.d/10-mysqlnd.ini
    - /etc/php/7.0/cli/conf.d/10-opcache.ini
    - /etc/php/7.0/cli/conf.d/10-pdo.ini
    - /etc/php/7.0/cli/conf.d/20-calendar.ini
    - /etc/php/7.0/cli/conf.d/20-ctype.ini
    - /etc/php/7.0/cli/conf.d/20-exif.ini
    - /etc/php/7.0/cli/conf.d/20-fileinfo.ini
    - /etc/php/7.0/cli/conf.d/20-ftp.ini
    - /etc/php/7.0/cli/conf.d/20-gd.ini
    - /etc/php/7.0/cli/conf.d/20-gettext.ini
    - /etc/php/7.0/cli/conf.d/20-iconv.ini
    - /etc/php/7.0/cli/conf.d/20-json.ini
    - /etc/php/7.0/cli/conf.d/20-mbstring.ini
    - /etc/php/7.0/cli/conf.d/20-mcrypt.ini
    - /etc/php/7.0/cli/conf.d/20-mysqli.ini
    - /etc/php/7.0/cli/conf.d/20-pdo_mysql.ini
    - /etc/php/7.0/cli/conf.d/20-phar.ini
    - /etc/php/7.0/cli/conf.d/20-posix.ini
    - /etc/php/7.0/cli/conf.d/20-readline.ini
    - /etc/php/7.0/cli/conf.d/20-shmop.ini
    - /etc/php/7.0/cli/conf.d/20-sockets.ini
    - /etc/php/7.0/cli/conf.d/20-sysvmsg.ini
    - /etc/php/7.0/cli/conf.d/20-sysvsem.ini
    - /etc/php/7.0/cli/conf.d/20-sysvshm.ini
    - /etc/php/7.0/cli/conf.d/20-tokenizer.ini
  You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

Installation failed, reverting ./composer.json to its original content.

在本地版本的应用程序上安装此软件包没有问题。

首先,请阅读警告!它说不要以root身份运行composer! 其次,您可能在本地服务器上使用Xammp,该服务器默认使用所需的php库

但是在您的服务器中缺少
extdom
php-xml
包含您需要的所有相关软件包。因此,您只需运行以下命令即可安装:

sudo apt-get update
sudo apt install php-xml
很可能您也缺少
mbstring
。如果出现错误,请使用以下软件包安装此软件包:

sudo apt-get install php-mbstring
然后运行:

composer update
composer require cviebrock/eloquent-sluggable

要在php 7.1上安装ext dom并向上运行以下命令的用户:

sudo apt install php-xml

对于CentOS、RHEL、Fedora:

$ yum search php-xml
============================================================================================================ N/S matched: php-xml ============================================================================================================
php-xml.x86_64 : A module for PHP applications which use XML
php-xmlrpc.x86_64 : A module for PHP applications which use the XML-RPC protocol
php-xmlseclibs.noarch : PHP library for XML Security
php54-php-xml.x86_64 : A module for PHP applications which use XML
php54-php-xmlrpc.x86_64 : A module for PHP applications which use the XML-RPC protocol
php55-php-xml.x86_64 : A module for PHP applications which use XML
php55-php-xmlrpc.x86_64 : A module for PHP applications which use the XML-RPC protocol
php56-php-xml.x86_64 : A module for PHP applications which use XML
php56-php-xmlrpc.x86_64 : A module for PHP applications which use the XML-RPC protocol
php70-php-xml.x86_64 : A module for PHP applications which use XML
php70-php-xmlrpc.x86_64 : A module for PHP applications which use the XML-RPC protocol
php71-php-xml.x86_64 : A module for PHP applications which use XML
php71-php-xmlrpc.x86_64 : A module for PHP applications which use the XML-RPC protocol
php72-php-xml.x86_64 : A module for PHP applications which use XML
php72-php-xmlrpc.x86_64 : A module for PHP applications which use the XML-RPC protocol
php73-php-xml.x86_64 : A module for PHP applications which use XML
php73-php-xmlrpc.x86_64 : A module for PHP applications which use the XML-RPC protocol
然后选择与您的php版本匹配的php xml版本:

# php -v
PHP 7.2.11 (cli) (built: Oct 10 2018 10:00:29) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

# sudo yum install -y php72-php-xml.x86_64

只需运行

sudo apt install php-xml

它对我来说很有用

sudo apt install php xml也可以,但问题是它会下载最新php版本的插件

如果您的PHP版本不是最新版本,则可以在其中添加以下版本:

# PHP 7.1
sudo apt install php7.1-xml

# PHP 7.2:
sudo apt install php7.2-xml

# PHP 7.3
sudo apt install php7.3-xml


# PHP 7.4
sudo apt install php7.4-xml

# PHP 8
sudo apt install php-xml

我在Ubuntu20上遇到了与Laravel8.x完全相同的问题。 我在项目目录中运行:
sudo-apt-install php7.4-xml
composer-update
。这解决了问题。

第一次安装

sudo apt install php-xml
然后,如果遇到问题,请安装mbstring

sudo apt-get install php-mbstring

它工作正常

谢谢。如果我不使用
sudo
运行composer,则会出现以下错误:
无法读取/home/pish/.composer/auth.json文件\u获取内容(/home/pish/.composer/auth.json):无法打开流:权限被拒绝
这是一个权限问题搜索chmod和chown命令。更改此文件夹的权限和所有者即可。@rodrane安装
php mbstring
包的代码中有一个输入错误,它应该是
sudo apt get
。除此之外,;它就像一个符咒。谢谢我在我的机器上安装了php7.0-xml,但是当我安装
composer
@SalustianoMuniz时,composer仍然会向我抛出这个错误。您可能必须启用PHP中的模块。例如,使用
sudo phpenmod xml
,并对
xmlreader
xmlwriter
执行相同的操作。然后重新启动服务器(如果apache:
sudo service apache2 restart
),并尝试再次安装。这对我来说使用Ubuntu18.04是最好的答案。这个答案的问题是它使用了当前设置的默认php版本。例如,假设我做
sudo更新备选方案--set php/usr/bin/php7.0
php-xml
将下载
php7.0-xml
。所以在使用这种方法时要小心,我总是推荐@anar的方法,但是这个例子清楚地表明OP要求的是一个7.0版本,而选择的答案没有遵循。这是一种反常现象。尽管版本意识是有道理的。使用Ubuntu20.04 LTS,这个唯一的命令解决了这个问题。我正在运行7.3,其他人说要安装“php xml”,所以我这么做了,但我仍然遇到了完全相同的问题。一旦你看到它是多么简单,就很容易理解,但直到看到这个答案之前,我完全错过了它。安装php7.3-xml解决了我的问题。谢谢,这就是解决方案。错误地安装了PHP8扩展。如何删除它?您可以尝试
sudo apt get remove php xml
@MrEduar