ติดตั้ง ext-zip สำหรับ Mac


55

ฉันกำลังพยายามเรียกใช้composer updateและฉันได้รับข้อผิดพลาดต่อไปนี้:

Problem 1
    - The requested PHP extension ext-zip * is missing from your system. Install or enable PHP's zip extension.
  Problem 2
    - maatwebsite/excel 3.1.10 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.11 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.12 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.13 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.14 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.15 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.16 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.17 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.7 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.8 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.9 requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.x-dev requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.2.x-dev requires phpoffice/phpspreadsheet ^1.6 -> satisfiable by phpoffice/phpspreadsheet[1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.0 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.1 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.2 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.3 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.4 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.5 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - maatwebsite/excel 3.1.6 requires phpoffice/phpspreadsheet ^1.4 -> satisfiable by phpoffice/phpspreadsheet[1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 1.9.0].
    - phpoffice/phpspreadsheet 1.9.0 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.8.2 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.8.1 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.8.0 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.7.0 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.6.0 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.5.2 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.5.1 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.5.0 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.4.1 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - phpoffice/phpspreadsheet 1.4.0 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - Installation request for maatwebsite/excel ^3.1.0 -> satisfiable by maatwebsite/excel[3.1.0, 3.1.1, 3.1.10, 3.1.11, 3.1.12, 3.1.13, 3.1.14, 3.1.15, 3.1.16, 3.1.17, 3.1.2, 3.1.3, 3.1.4, 3.1.5, 3.1.6, 3.1.7, 3.1.8, 3.1.9, 3.1.x-dev, 3.2.x-dev].

เมื่อทำงาน composer update

ค้างคืนฉันทำผิดพลาดในชีวิตของฉันและอนุญาตให้ Mac ของฉันอัปเดตระบบปฏิบัติการโดยอัตโนมัติดังนั้นฉันจึงอยู่ใน macOS Catalina ทันที

ฉันลองเพิ่มแล้ว

 "require": {
    "ext-zip": "*",
 }

ไปที่ผู้แต่งของฉัน .son แต่ไม่ได้ดาวน์โหลดส่วนขยายนั้น


1
ข้อผิดพลาดนั่นหมายความว่า PHP ของคุณไม่ได้php-zipติดตั้งส่วนขยาย
Latheesan

มีปัญหาเดียวกัน phpinfo บอกว่ามีการติดตั้ง ... แปลกมาก ... ขอบคุณ Apple ...
Jamie Robinson

@JamieRobinson จะแจ้งให้เราทราบหากคุณได้พบการแก้ไขโปรด!
อับดุล

@Abdul ดีที่สุดที่ฉันเคยใช้คือ "ผู้แต่งติดตั้ง --ignore-platform-reqs" ... มันไม่ใช่วิธีแก้ปัญหา แต่มันแก้ปัญหาได้ในระยะสั้น
Jamie Robinson

@JamieRobinson สำหรับข้อมูลของคุณมีคนตอบด้วยสิ่งที่เหมาะกับฉัน
อับดุล

คำตอบ:


129

ฉันมีปัญหาเดียวกันหลังจากอัปเดต Mac เป็น Catalina นี่คือสิ่งที่ใช้ได้ผลสำหรับฉัน

brew update
brew install php@7.3
brew link php@7.3

จากนั้นรีโหลดคอนโซลของคุณ

มันจะติดตั้ง php 7.3.10 พร้อมโมดูลซิป คุณสามารถใช้ php -v เพื่อตรวจสอบรุ่นและ php -m สำหรับโมดูล


ขอบคุณมาก! ที่ทำงานเหมือนจับใจ!
อับดุล

2
@Aldranor รู้สึกว่ามันเกือบจะใช้งานได้จริงใช้งานการติดตั้งก่อเสียงดูเหมือนแผนดี อย่างไรก็ตามตอนนี้ได้รับ "ข้อผิดพลาด: ไม่สามารถเชื่อมโยง sbin / php-fpm" "/ usr / local / sbin ไม่สามารถเขียนได้" ... ผู้ผลิตจะไม่เรียกใช้ sudo ... ความคิดใด ๆ
เจมี่โรบินสัน

8
ในที่สุดก็แก้ไขมัน! การเรียกใช้ "ชงหมอ" บอกว่าโฟลเดอร์นี้ไม่มีอยู่และไม่สามารถเขียนได้และให้คำสั่งให้คุณเรียกใช้ เรียกใช้คำสั่งเหล่านั้นเรียกใช้คำสั่งลิงก์อีกครั้งโหลดคอนโซลทั้งหมดกลับสู่ปกติ :)
Jamie Robinson

8
ใช้ 'brew link --force php@7.3' หากคุณเห็นคำเตือนนี้ "php@7.3 เป็น keg-only เท่านั้นและต้องเชื่อมโยงกับ --force"
leeCoder

3
ใช้งานได้ แต่หลังจากที่ฉันเพิ่ม: export PATH="/usr/local/opt/php@7.3/bin:$PATH" export PATH="/usr/local/opt/php@7.3/sbin:$PATH"ไปยัง. zshrc ของฉัน
Loosie94


6

หากลิงก์ชงไม่ทำงานให้คุณตรวจสอบเวอร์ชัน php ของคุณที่ติดตั้งโดย:

ls /usr/local/opt/php*

ที่นี่คุณจะเห็นเวอร์ชันดังกล่าว:

/usr/local/opt/php@7.3/bin:$PATH

ควรให้ผลลัพธ์เช่น:

/usr/local/opt/php@7.3:
INSTALL_RECEIPT.json        include
LICENSE                     lib
NEWS                        pecl
README.md                   sbin
bin                         share
homebrew.mxcl.php@7.3.plist

ตอนนี้คุณเพียงแค่เชื่อมโยงไปยัง $ PATH ของคุณซึ่งสามารถทำได้ดังนี้:

echo 'export PATH="/usr/local/opt/php@7.3/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/usr/local/opt/php@7.3/sbin:$PATH"' >> ~/.zshrc
source ~/.zshrc

หมายเหตุ: ฉันกำลังใช้. zshrc เพราะนั่นคือการตั้งค่าเทอร์มินัลของฉัน หากคุณทุบตีให้ใช้

คุณสามารถตรวจสอบ php เวอร์ชันที่เชื่อมโยงกับ MacOS ของคุณได้ในขณะนี้โดยเรียกใช้:

which php

สิ่งนี้จะให้ผลลัพธ์ของ:

/usr/local/opt/php@7.3/bin/php

แค่นั้นแหละ. ตอนนี้ถ้าคุณลองอัพเดทผู้แต่งมันไม่ควรให้ปัญหาส่วนขยายแก่คุณ

แหล่งที่มา (ส่วนหนึ่ง): https://medium.com/@jjdanek/installing-php-extensions-on-mac-after-homebrew-acfddd6be602


6

ในวันที่ 10 มีนาคม 2020 มันได้ผลกับฉัน:

brew install php  

มันเป็นคำสั่งเดียวเกี่ยวกับ PHP ที่ทำงานได้ ดังนั้นฉันคิดว่าคำสั่งที่แสดงในโพสต์ล่าสุดเลิกใช้แล้ว


1
24 มีนาคม 2020 ได้รับการยืนยัน
Frank Leal

26 มีนาคม 2563 ยืนยัน
มูฮัมหมัดอาลี

7 เมษายนสอดคล้องกับ
PSN

14 เมษายน 2564 ยืนยันจากอนาคต
Pandem1c

4

ผมมีปัญหากับงูหลาม symlink brew install phpในช่วง

/usr/local/Frameworks ไม่มีตัวตนดังนั้นฉันต้องสร้างมันขึ้นมา: sudo mkdir /usr/local/Frameworks

cd /usr/local/

จากนั้นฉันก็ต้อง chown มัน: sudo chown -R myuser:admin Frameworks

/usr/localผมตามการตั้งค่าสิทธิ์ในส่วนที่เหลือของโฟลเดอร์ใน

จากนั้นฉันก็สามารถวิ่งbrew link pythonได้ จากนั้นฉันก็วิ่งbrew install phpอีกครั้งและเสร็จสิ้น

php -v ตอนนี้ให้ฉัน php 7.3.10 ก่อนที่มันจะเป็น php 7.3.18 ฉันคิดว่า


ฉันจะเสนอให้ใช้ ---> sudo chown -R $ (whoami) bin ฯลฯ รวมถึง lib sbin share var Frameworks <---- แทน ---> sudo chown -R myuser: ผู้ดูแลระบบกรอบ <---
Ben Spi

2

แทนที่จะเชื่อมโยงกำลังคุณสามารถแก้ไขปัญหาใน MacOS Catalina ได้

โดยการเพิ่มเส้นทางไบนารี php ไปยังโปรไฟล์ทุบตีของคุณเช่น:

echo 'export PATH="/usr/local/opt/php@7.3/bin:$PATH"' >> ~/.bash_profile
echo 'export PATH="/usr/local/opt/php@7.3/sbinbin:$PATH"' >> ~/.bash_profile

2

หากคุณไม่ต้องการext-zip(เช่นคุณเพียงต้องการแก้ไขด่วน ๆ ) คุณสามารถใช้--ignore-platform-reqsตัวเลือกเพื่อเพิกเฉยต่อข้อกำหนดนี้:

$ composer update --ignore-platform-reqs

1

สิ่งนี้ใช้ได้สำหรับฉัน

brew update brew install php@7.3 brew link php@7.3 brew link php@7.3 --force

หวังว่ามันจะช่วย


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.