PHP7: ติดตั้งปัญหา ext-dom


168

ฉันใช้ laravel 5.4 บนเซิร์ฟเวอร์ Ubuntu 16.04 ด้วย PHP7 พยายามติดตั้ง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

ก่อนอื่นอ่านคำเตือน! มันบอกว่าจะไม่เรียกนักแต่งเพลงเป็นราก ! ประการที่สองคุณอาจใช้ 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

ขอบคุณ ถ้าฉันไม่ใช้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และทำเช่นเดียวกันสำหรับ&xmlreader xmlwriterจากนั้นรีสตาร์ทเซิร์ฟเวอร์ของคุณ (หาก apache:) sudo service apache2 restartแล้วลองติดตั้งอีกครั้ง
Tim Visée

112

สำหรับผู้ที่ต้องการติดตั้ง ext-dom บน php 7.1 ขึ้นไปให้รันคำสั่งนี้:

sudo apt install php-xml

5
สิ่งนี้ใช้ได้กับฉันโดยใช้ Ubuntu 18.04 - โดยคำตอบที่ดีที่สุด
ตี

ปัญหากับคำตอบนี้คือใช้รุ่น php เริ่มต้นที่ตั้งไว้ในปัจจุบัน ยกตัวอย่างเช่นบอกว่าผมไม่sudo update-alternatives --set php /usr/bin/php7.0, จะดาวน์โหลดphp-xml php7.0-xmlดังนั้นระวังเมื่อใช้วิธีนี้ฉันจะแนะนำวิธีการของ
@anar เสมอ

แต่ตัวอย่างแสดงให้เห็นชัดเจนว่า 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-xml ที่ตรงกับรุ่น php ของคุณ:

# 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.