b85*_*411 113 php composer-php
当我运行时,composer update我收到此错误消息:
Loading composer repositories with package information
Updating dependencies (including require-dev)
Failed to download psr/log from dist: The zip extension and unzip command are both missing, skipping.
The php.ini used by your command-line PHP is: /etc/php/7.0/cli/php.ini
Now trying to download from source
Run Code Online (Sandbox Code Playgroud)
我需要做什么来启用zip和unzip命令,以便作曲家可以下载依赖项?
Arr*_*sar 259
根据您的Linux和PHP版本的不同,这些可能会有所不同.
(sudo) yum install zip unzip php-zip
(sudo) apt install zip unzip php-zip
Run Code Online (Sandbox Code Playgroud)
这是一个非常常见的问题,您将能够通过搜索在以太中找到更多有用的信息<distro> php <version> zip extension.
Gen*_*r ツ 94
对于 Windows,如果您使用的是 XAMPP 等语言环境开发环境,只需找到 php.ini 文件(在本例中为 C:\xampp\php),将其打开并删除以下行中的分号。
;extension=zip
Run Code Online (Sandbox Code Playgroud)
重新启动您的 Apache 网络服务器,它就会正常工作。
小智 41
适用于PHP 5.6的服务器
sudo apt-get install zip unzip php5.6-zip
Run Code Online (Sandbox Code Playgroud)
小智 22
对于Debian Jessie(这是Docker Hub上PHP图像的当前默认值):
apt-get install --yes zip unzip php-pclzip
Run Code Online (Sandbox Code Playgroud)
你可以省略--yes,但是当你在Dockerfile中运行它时它很有用.
Gok*_*asa 21
对于较旧的Ubuntu发行版,即16.04,14.04,12.04等
sudo apt-get install zip unzip php7.0-zip
Run Code Online (Sandbox Code Playgroud)
DJ *_*ipe 20
不是要强调这一点,但如果您在 . 中工作Dockerfile,您可以通过安装该unzip实用程序来解决 Composer 的这个特定问题。下面是一个使用官方 PHP 映像安装unzip和zipPHP 扩展的示例。
FROM php:7.4-apache
# Install Composer
COPY --from=composer /usr/bin/composer /usr/bin/composer
# Install unzip utility and libs needed by zip PHP extension
RUN apt-get update && apt-get install -y \
zlib1g-dev \
libzip-dev \
unzip
RUN docker-php-ext-install zip
Run Code Online (Sandbox Code Playgroud)
这是一个有用的 GitHub 问题,上面的内容被亲切地摘录了。
小智 17
请先检查您的作曲家状态
composer diagnose
Run Code Online (Sandbox Code Playgroud)
如果状态显示
zip: extension not found, unzip not available, 7-Zip not available
Run Code Online (Sandbox Code Playgroud)
然后
现在
composer create-project laravel/laravel <<project_name>>
Run Code Online (Sandbox Code Playgroud)
或者
laravel new <<project_name>>
Run Code Online (Sandbox Code Playgroud)
Aqi*_*hef 13
我在Ubuntu 16.04服务器上安装了PHP7.2,它解决了我的问题:
sudo apt-get install zip unzip php-zip
更新
为Ubuntu 18.04试过这个并且工作得很好.
对于 Windows 用户:
找到 php.ini 并使用文本编辑器打开它。
搜索“zip”。如果您使用 PHP 8.2,您可能会在第 952 行找到这样的写法: ;extension=zip
去除 ';' 所以它看起来像这样 -> 扩展名 =zip 保存,然后就可以开始了!
对于 PHP8.2(Windows)
如此处所述: https: //www.php.net/manual/en/zip.installation.php#zip.installation.new.windows
从 PHP 8.2.0 开始,必须在 php.ini 中启用 php_zip.dll DLL。以前,此扩展是内置的。
您需要在 php.ini 中手动启用此扩展,方法是添加extension=php_zip.dll
要获取已安装扩展的列表,您可以运行:
php -m
Run Code Online (Sandbox Code Playgroud)
或者如果你grep安装得更简单的话:
php -m | grep "zip"
Run Code Online (Sandbox Code Playgroud)
在带有图像的 docker 上,php:7.2-apache我只需要 zip 和解压缩。不需要 php-zip :
apt-get install zip unzip
或 Dockerfile
RUN ["apt-get", "update"]
RUN ["apt-get", "install", "-y", "zip"]
RUN ["apt-get", "install", "-y", "unzip"]
Run Code Online (Sandbox Code Playgroud)