当我运行一个作曲器更新时,我得到这个错误消息:
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
我需要做什么才能启用zip和unzip命令,以便编写器可以下载依赖项?
在docker上使用image php:7.2-apache,我只需要zip和unzip。不需要php-zip:
安装zip解压
或 Dockerfile
RUN ["apt-get", "update"]
RUN ["apt-get", "install", "-y", "zip"]
RUN ["apt-get", "install", "-y", "unzip"]
后运行
apt install php-zip
再跑一遍
composer require ...
我得到了下一个警告和建议
由于没有“unzip”或“7z”命令,安装的zip文件正在使用PHP zip扩展名进行解压缩。
这可能导致已损坏档案的无效报告。此外,在存档中定义的任何UNIX权限(例如可执行文件)都将丢失。
安装'unzip'或'7z'(21.01+)可以修复它们。
由于没有“unzip”或“7z”命令,安装的zip文件正在使用PHP zip扩展名进行解压缩。
这可能导致已损坏档案的无效报告。此外,在存档中定义的任何UNIX权限(例如可执行文件)都将丢失。
安装'unzip'或'7z'(21.01+)可以修复它们。
所以我建议先安装unzip。
apt install unzip
请先检查你的作曲状态
composer diagnose
如果状态显示
zip: extension not found, unzip not available, 7-Zip not available
then
打开XAMPP服务器
>点击“PHP(PHP .ini)”
找到“zip”
extension = zip将显示
删除分号并保存文件
重新启动XAMPP Apache
Now
composer create-project laravel/laravel <<project_name>>
or
laravel new <<project_name>>