2017-04-14 65 views
40

Używam laravel 5.4 na serwerze Ubuntu 16.04 z PHP7. próbuje zainstalować pakiet cviebrock/eloquent-sluggable rzucić jakiś błąd:PHP7: install ext-dom issue

[email protected]:/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. 

nie mam problemu z zainstalowaniem tego pakietu na lokalnej wersji aplikacji.

Odpowiedz

92

Przede wszystkim przeczytaj ostrzeżenie! Mówi się, że należy nie prowadzić kompozytor jako root! Po drugie, prawdopodobnie używasz Xammp na komputerze lokalnym, który ma wymagane biblioteki php jako domyślne.

Ale na twoim serwerze brakuje Ci ext-dom. php7.1-xml ma wszystkie powiązane pakiety, których potrzebujesz. Można go po prostu zainstalować, uruchamiając:

sudo apt-get update 
sudo apt-get install php7.1-xml 

Najprawdopodobniej również brakuje mbstring. Jeśli pojawi się błąd, należy zainstalować ten pakiet, a także z:

sudo apt-get install php-mbstring 

Następnie uruchom:

composer update 
composer require cviebrock/eloquent-sluggable 
+0

dzięki. jeśli nie używam 'sudo' do uruchamiania kompozytor, otrzymuję ten błąd:' Nie można odczytać /home/pish/.composer/auth.json file_get_contents (/home/pish/.composer/auth.json): nie udało się otworzyć strumienia : Odmowa dostępu ' – alex

+2

to problem z uprawnieniami wyszukiwania dla poleceń chmod i chown. Zmień uprawnienia i właściciela tego folderu, wszystko będzie w porządku. –

+0

@rodrane W twoim kodzie jest literówka z instalacją pakietu 'php-mbstring', powinna to być' sudo apt-get'. Inne niż to; To działa jak urok. Dzięki! –