为什么当我运行Laravel项目时,我发现Laravel中的Composer错误。
为什么当我运行Laravel项目时,我发现Laravel中的Composer错误。
我正在尝试在我的Ubuntu电脑上使用composer安装laravel安装器,但在安装过程中出现了以下错误:`您的要求无法解析为可安装的软件包集。
问题1 - laravel/installer v1.4.1需要ext-zip * -> 您的系统缺少所需的PHP扩展zip。 - laravel/installer v1.4.0需要ext-zip * -> 您的系统缺少所需的PHP扩展zip。 - 安装请求laravel/installer ^1.4 -> 可满足laravel/installer[v1.4.0,v1.4.1]。 要启用扩展,请验证它们是否在这些.ini文件中启用: - /etc/php/7.0/cli/php.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-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-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 您还可以在终端中运行`php --ini`以查看PHP在CLI模式下使用的文件。 `
当我使用以下命令时出现错误:
composer global require "laravel/installer"
问题出现的原因是在CentOS 7上安装laravel项目时,运行Composer出现错误。解决方法是使用以下命令安装php-pecl-zip扩展:yum install php-pecl-zip
。其他解决方法都无效。需要注意的是,这个问题是关于Ubuntu而不是CentOS的。如果使用特定版本的php,可以使用以下包名之一:php54-php-pecl-zip php55-php-pecl-zip php56-php-pecl-zip php70-php-pecl-zip php71-php-pecl-zip php72-php-pecl-zip php73-php-pecl-zip php74-php-pecl-zip php80-php-pecl-zip
。感谢提供这个解决方法,安装php-zip无法在CentOS 7上工作。
当我运行laravel项目时,我发现Composer错误。错误信息显示需要zip扩展。解决方法是安装php-zip扩展。如果你正在运行特定版本的PHP,可以使用以下命令安装对应版本的php-zip扩展:
# For php v7.0 sudo apt-get install php7.0-zip # For php v7.1 sudo apt-get install php7.1-zip # For php v7.2 sudo apt-get install php7.2-zip # For php v7.3 sudo apt-get install php7.3-zip # For php v7.4 sudo apt-get install php7.4-zip
然而,这个问题应该由composer install解决,因为composer install是一个依赖管理器,而php7.0-zip是一个系统包。理论上,可以添加钩子来安装系统包,但这将需要sudo访问权限,这是非常糟糕的做法。
错误信息requires ext-zip
并不是很有帮助,至少应该提示requires php-zip or phpX.X-zip
。
对于Mac OS用户,请使用Homebrew代替。你不需要以root身份运行brew命令。例如,使用以下命令安装php7.0-zip:
brew install php7.0-zip