PHP7:ext-domの問題をインストール


168

PHP7を搭載したUbuntu 16.04サーバーでlaravel 5.4を実行しています。cviebrock/eloquent-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.

アプリのローカルバージョンにこのパッケージをインストールしても問題ありません。

回答:


363

まず、警告を読んでください!ルートとしてcomposerを実行しないでください!第二に、おそらくローカルでXammpを使用していて、デフォルトとして必要なphpライブラリがあります。

しかし、あなたのサーバーではあなたが行方不明ext-domです。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

感謝します。sudocomposerの実行に使用しない場合、このエラーが発生します:Could not read /home/pish/.composer/auth.json file_get_contents(/home/pish/.composer/auth.json): failed to open stream: Permission denied
amin

4
これは、chmodおよびchownコマンドのアクセス許可の問題を検索します。このフォルダのアクセス権と所有者を変更すると、問題ありません。
Anar Bayramov 2017

@rodrane php-mbstringパッケージをインストールするためのコードにタイプミスがありますsudo apt-get。それ以外; それは魅力のように機能します。ありがとう!
ロビンB

私は私のマシン上でphp7.0-XMLをインストールしますが、私はやるとき作曲はまだ私にこのエラーを投げるcomposer install
Salustianoムニーズ

@SalustianoMuniz PHPでモジュールを有効にする必要がある場合があります。たとえばsudo phpenmod xmlxmlreader&に対して同じことを行いますxmlwriter。次に、サーバーを再起動し(apache:の場合sudo service apache2 restart)、再度インストールを試みます。
TimVisée2017

112

PHP 7.1以降にext-domをインストールする場合は、次のコマンドを実行します。

sudo apt install php-xml

5
これは、Ubuntu 18.04を使用して私に働きました-はるかに良い答えです。
泡立て器

この回答の問題は、現在設定されているデフォルトのphpバージョンを使用することです。たとえば、私がそうするとsudo update-alternatives --set php /usr/bin/php7.0php-xmlダウンロードしますphp7.0-xml。したがって、このアプローチを使用するときは注意してください。@ anarのアプローチをお勧めします
natral

しかし、この例は、OPが、選択された回答に従わない7.0バージョンを要求したことを明確に示しています。これは異常です。バージョンを認識することは意味があります。
gkephorus

4

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

3

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 (latest)
sudo apt install php-xml

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.