PHP7 : ext-dom 문제 설치


190

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.

이 패키지를 로컬 버전의 앱에 설치하는 데 문제가 없습니다.

답변:


404

우선 경고를 읽어보세요! composer를 루트 로 실행 하지 마십시오 ! 둘째, 기본적으로 필요한 PHP 라이브러리가있는 로컬에서 Xammp를 사용하고있을 것입니다.

그러나 서버에는 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

감사 . 내가 sudo작곡가를 실행하는 데 사용하지 않으면 다음 오류가 발생합니다.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

@rodrane php-mbstring패키지 설치 코드에 오타 가 있습니다 sudo apt-get.. 그 이외의; 그것은 매력처럼 작동합니다. 감사!
Robin B

내 컴퓨터에 php7.0-XML을 설치하지만 난 할 때 작곡가가 아직도 날이 오류가 발생composer install
Salustiano Muniz

@SalustianoMuniz PHP에서 모듈을 활성화해야 할 수도 있습니다. 예를 들어 &에 sudo phpenmod xml대해 동일하게 사용 하고 수행하십시오 . 그런 다음 서버를 다시 시작하고 (아파치 인 경우 :) 다시 설치해보십시오. xmlreaderxmlwritersudo service apache2 restart
Tim Visée

116

php 7.1 이상에 ext-dom을 설치하려면 다음 명령을 실행하십시오.

sudo apt install php-xml

5
이것은 Ubuntu 18.04를 사용하여 저에게 효과적이었습니다.
털다

이 답변의 문제는 현재 설정된 기본 PHP 버전을 사용한다는 것입니다. 예를 들어 I do sudo update-alternatives --set php /usr/bin/php7.0, php-xmlwill download php7.0-xml. 이 방법을 사용하는 경우 그래서 조심, 난 항상 접근 @anar의 권 해드립니다 것
natral

그러나 예제는 OP가 선택한 답변이 따르지 않는 7.0 버전을 요청했음을 명확하게 보여줍니다. 이것은 비정상입니다. 버전을 인식하는 것은 의미가 있습니다.
gkephorus

16

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

6

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

그것은 나를 위해 일했다


1
Ubuntu 20.04 LTS를 사용하는이 유일한 명령은 문제를 해결했습니다
swaraj

1
우분투 18.04 LTS에 근무
uneeb 미어
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.