2017-04-14 84 views
40

我在使用PHP7的Ubuntu 16.04服务器上运行laravel 5.4。要安装cviebrock/eloquent-sluggable包抛出一些错误:PHP7:安装ext-dom问题

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

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

回答

92

首先,阅读警告!它说做不是运行作曲者为! 其次,你可能在你的本地使用了Xammp,默认情况下需要php库。

但在您的服务器上,您缺少ext-domphp7.1-xml有你需要的所有相关软件包。所以,你可以简单地通过运行安装它:

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

最有可能你失踪mbstring太。如果你得到错误,安装该软件包以及与:

sudo apt-get install php-mbstring 

然后运行:

composer update 
composer require cviebrock/eloquent-sluggable 
+0

感谢。如果我不使用'sudo'来运行作曲家,可以得到这个错误:'无法读取/home/pish/.composer/auth.json file_get_contents(/home/pish/.composer/auth.json):无法打开流:权限被拒绝' – alex

+2

它的权限问题搜索chmod和chown命令。更改此文件夹的权限和所有者,你会没事的。 –

+0

@rodrane你的代码中存在一个用于安装'php-mbstring'软件包的错误,它应该是'sudo apt-get'。除此之外;它的作用就像一种魅力。谢谢! –