Hướng dẫn mac enable php extension - mac kích hoạt tiện ích mở rộng php

Tôi đang cố gắng cài đặt Magento (2.3.0) trên MacOS Mojave. Magento cho thấy

Error: Class 'ZipArchive' not found
2 bị thiếu.

Tôi đã thử dưới đây để giải quyết:

  1. Đã tạo một bản sao của php.ini bằng cách sử dụng
    Error: Class 'ZipArchive' not found
    3
  2. Loại bỏ ";" trước
    Error: Class 'ZipArchive' not found
    4
  3. Khởi động lại Apache
    Error: Class 'ZipArchive' not found
    5

Nhưng những điều trên đã không giải quyết.

Khi kiểm tra

Error: Class 'ZipArchive' not found
6, tôi đang thấy lỗi dưới đây:

PHP Warning:  PHP Startup: Unable to load dynamic library 
'/usr/lib/php/extensions/no-debug-non-zts-20160303/php_intl.dll' - 
dlopen(/usr/lib/php/extensions/no-debug-non-zts-20160303/php_intl.dll, 
0x0009): dlopen(): file not found: /usr/lib/php/extensions/no-debug- 
non-zts-20160303/php_intl.dll in Unknown on line 0
PHP 7.1.19 (cli) (built: Aug 17 2018 20:10:18) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies

Chỉ có 2 tệp trong

Error: Class 'ZipArchive' not found
7 cụ thể là
Error: Class 'ZipArchive' not found
8 và
Error: Class 'ZipArchive' not found
9

Làm cách nào tôi có thể cài đặt hoặc bật "Php Extension Intl" trên macOS Mojave của tôi?

Ảnh của Don Graham và được sử dụng theo Giấy phép Creative Common 2.0-Sharealike.

Nghỉ ngơi sau một hoặc hai ngày và nâng cấp máy tính xách tay của tôi lên Catalina dường như là một cách tốt để khởi động năm mới.

Catalina nâng cấp phiên bản PHP hệ thống từ 7.2.x lên 7.3.9, đó là A & NBSP; Thay đổi Tôi rất háo hức muốn nhận được vì PHP 7.2 không còn được hỗ trợ tích cực bởi nhà phát triển PHP & NBSP; cộng đồng. Tuy nhiên, quy trình nâng cấp OS X luôn bao gồm một vài điều ngạc nhiên cho các nhà phát triển.

Một bất ngờ lớn trong bản nâng cấp này là Catalina cải thiện bảo mật bằng cách thêm một hệ thống tệp chỉ đọc cho các tệp hệ thống quan trọng mà bạn không muốn giả mạo. Điều đó rất có ý nghĩa, nhưng nó cũng làm phức tạp việc sử dụng PECL hoặc PHPize, bởi vì các đường dẫn bên dưới /usr mà họ tham khảo hiện chỉ đọc.

Sau khi nâng cấp, các trang web của tôi đã hoạt động tốt, nhưng trên một trang web, tôi đã gặp phải lỗi sau:

Error: Class 'ZipArchive' not found

Nó chỉ ra rằng PHP 7.3 được vận chuyển với Catalina không bao gồm hỗ trợ zip/ziparchive. Dự án này & nbsp; yêu cầu ziparchive, vì vậy tôi có thể chuyển sang một phương pháp cài đặt PHP khác, như sử dụng bia hoặc môi trường Docker hoặc Lando hoặc tôi có thể tìm ra cách hỗ trợ ZIP có thể tái tạo trong hệ thống PHP.

Tôi đã đi với cách tiếp cận sau.

Cá nhân, tôi yêu Lando cho các phiên bản PHP thứ cấp nhưng & nbsp; Tôi thấy hình phạt hiệu suất chạy Docker trên máy Mac quá cao để sử dụng nó cho môi trường chính của tôi. Dự án này, ví dụ & nbsp; yêu cầu xây dựng lại trang web thường xuyên, điều này làm cho hiệu quả đạt được từ việc tạo ra quá trình 10 phút thay vì gần một giờ quan trọng đối với năng suất của tôi.

Rất nhiều nhà phát triển tại Affinity Bridge sử dụng & NBSP; Brew để chạy nhiều phiên bản PHP trên máy tính xách tay của họ. Tôi cũng đã sử dụng phương pháp đó nhưng có & nbsp; đau đầu có kinh nghiệm khi quản lý các phụ thuộc theo cách đó, với những gì được dự định là một thay đổi nhỏ đối với ngăn xếp amp của tôi kích hoạt các bản cập nhật & nbsp; của các công cụ dường như không liên quan như Python3 gây ra sự phá vỡ ở nơi khác trong môi trường của tôi. Vì vậy, nếu tôi có thể tránh phương pháp này, tôi làm.

Tôi lượm lặt được & nbsp; thông tin từ một số nhà phát triển khác đã gặp phải các vấn đề tương tự và & nbsp; Tôi đã đưa ra giải pháp A & nbsp;

Bước 1: Cài đặt hỗ trợ PEAR/PECL

cd /tmp
curl -s -O https://pear.php.net/install-pear-nozlib.phar
sudo php install-pear-nozlib.phar -d /usr/local/lib/php -b /usr/local/bin 

(tín dụng)

Bước 2: Tải xuống nguồn mở rộng zip

Tôi đã thử cài đặt ZIP với PECL, nhưng điều đó không thành công vì các tệp tiêu đề PHP bị thiếu. Vì vậy, tôi đã tải xuống nguồn cho phần mở rộng zip từ PECL.

pecl download https://pecl.php.net/get/zip
tar -xzvf zip 

Bước 3: Tải xuống các tệp PHP/tiêu đề PHP/tiêu đề

Để xây dựng các tiện ích mở rộng PHP, bạn cần các tệp tiêu đề cho phiên bản PHP bạn đang nhắm mục tiêu. Trên OS X, điều này được thực hiện với xcode (tín dụng).

 xcode-select --install 

Để xác minh rằng các tệp tiêu đề hiện có sẵn và tìm đường dẫn của chúng:

$ sudo find /Library -name php.h
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/php/main/php.h
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/php/main/php.h

Bước 4: Sao chép/Sửa đổi PHPSize và PHP-Config

Để tạo PHPize và PHP-Config, hãy tìm các tệp tiêu đề PHP ở vị trí mà Xcode đặt chúng thay vì IN/usr/bao gồm/PHP-một vị trí chỉ đọc ngay bây giờ-Tôi đã làm theo một số mẹo tôi tìm thấy ở nơi khác và sao chép và sao chép và Phpize đã sửa đổi và PHP-config để thay đổi thư mục bao gồm trong mỗi thư mục.

cp /usr/bin/phpize /usr/local/bin/phpize 
cp /usr/bin/php-config /usr/local/bin/php-config 

Sau đó, tôi chỉnh sửa đường dẫn bao gồm trong mỗi người trong số họ. Đây là những khác biệt:

 local:/tmp/zip-1.15.5/modules $ diff /usr/bin/phpize /usr/local/bin/phpize
8c8
< includedir="`eval echo ${prefix}/include`/php"
---
> includedir="`eval echo /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include`/php"
local:/tmp/zip-1.15.5/modules $ diff /usr/bin/php-config /usr/local/bin/php-config
9c9
< include_dir="${prefix}/include/php"
---
> include_dir="/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/php" 

Bước 5: Xây dựng tiện ích mở rộng ZIP PHP

Với tất cả những thay đổi đó, bây giờ tôi có thể xây dựng tiện ích mở rộng zip.

cd zip-1.15.5
phpize
 ./configure -with-php-config=/usr/local/bin/php-config 
make 

Bước 6: Cài đặt tiện ích mở rộng ZIP PHP

Làm cho cài đặt không thể cài đặt phần mở rộng, một lần nữa do hệ thống tệp chỉ đọc. Vì vậy, thay vào đó tôi đã tạo một thư mục mở rộng theo/usr/local/PHP.

mkdir -p /usr/local/php/extensions 
cp modules/zip.so /usr/local/php/extensions/zip.so 

Bước 7: Cập nhật Php.ini của bạn

Cuối cùng, chúng ta cần nói với PHP để tải tiện ích mở rộng này.

Error: Class 'ZipArchive' not found
0

Thêm dòng sau:

Error: Class 'ZipArchive' not found
1

Khởi động lại Apache với

sudo apachectl khởi động lại

Và bạn sẽ thấy tiện ích mở rộng zip đang được tải ngay bây giờ.

Hướng dẫn mac enable php extension - mac kích hoạt tiện ích mở rộng php

Tôi hy vọng cộng đồng phát triển PHP và MAC sẽ giải quyết các vấn đề với hệ thống tập tin chỉ đọc khiến cài đặt MADE và PECL không thành công, nhưng biết cách biên dịch các phần mở rộng PHP của riêng bạn và sử dụng chúng với hệ thống PHP trên OS X là siêu hữu ích. Có lẽ quá trình này có thể được sử dụng cho các tiện ích mở rộng PHP hữu ích khác như XDebug.

Mã hóa hạnh phúc!

Làm cách nào để kích hoạt phần mở rộng PHP?

Để cho phép mở rộng PHP Intl, hãy làm theo các bước ....

Mở XAMPP/PHP/PHP. Tệp INI trong bất kỳ trình soạn thảo nào ..

Tìm kiếm "; phần mở rộng = php_intl.dll".

Vui lòng loại bỏ dấu chấm phẩy bắt đầu (;) như:; extension = php_intl.dll. đến. tiện ích mở rộng = php_intl.dll ..

Lưu XAMPP/PHP/PHP. Tệp Ini ..

Khởi động lại xampp/wamp của bạn ..

Làm thế nào để tôi có được PHP để làm việc trên máy Mac của tôi?

Cách cài đặt PHP trên máy Mac..

của 04. Bật Apache trên MacOS. Để bật Apache, hãy mở ứng dụng, được đặt trong thư mục Ứng dụng Mac> Tiện ích. ....

của 04. Kích hoạt PHP cho Apache. Tạo bản sao lưu của cấu hình Apache hiện tại trước khi bạn bắt đầu. ....

của 04. Xác minh rằng PHP được bật. ....

của 04. Các lệnh Apache bổ sung ..

Làm cách nào để kích hoạt tiện ích mở rộng INTL trên Mac?

Re: Cài đặt php_extension intl vào máy chủ Mac OS X..

.

. Debug-non-zts-20090626 ..

Làm cách nào để thay đổi PHP mặc định của tôi trên Mac?

Thực hiện theo các bước đơn giản sau:..

Trong thiết bị đầu cuối, chạy vim ~/.bash_profile ..

Loại I và sau đó dán các phần sau ở đầu tệp: Path xuất =/Ứng dụng/MAMP/BIN/PHP/PHP5.4.10/BIN: $ PATH ..

Nhấn ESC, Loại: WQ, và nhấn Enter ..

Trong thiết bị đầu cuối, chạy nguồn ~/.bash_profile ..