2012-06-22 30 views
5

Tôi muốn phiên bản PHP mới nhất để làm việc trên Macbook mới, nhưng cài đặt php không bao gồm chức năng imap theo mặc định. Có một hàm cụ thể mà tôi cần - cụ thể là hàm "imap_rfc822_parse_headers", nhưng tôi không cảm thấy muốn biên dịch lại, xây dựng và cài đặt PHP (chưa kể đến nỗ lực cần thiết để cài đặt c-client và imap.so trước) chỉ cho điều đó . Tôi sợ rằng các thủ tục phức tạp (trong đó mỗi thủ tục mà tôi đã tìm thấy là hơi khác nhau) có thể làm hỏng cài đặt hiện tại của tôi mà không có nghĩa là dễ dàng để thiết lập.Sử dụng chức năng imap trong PHP mà không cần xây dựng lại và cài đặt lại

Có cách nào khác, dễ dàng hơn để cài đặt imap vào PHP không? Trên một lưu ý liên quan, có lẽ là một sự thay thế dựa trên lớp học cho chức năng tôi cần?

Trả lời

11

Cuối cùng tôi đã tìm được giải pháp. Hầu hết mọi thứ đều ở đây: http://www.september28.co.uk/blog/2011/11/24/php-imap-support-in-mac-os-x-lion-without-recompiling-php/

Máy của tôi là Macbook Pro cuối năm 2011 với MacOSX 10.7.4, PHP 5.4. cài đặt qua các hướng dẫn: http://www.hirmet.com/mac-os-x-lion-upgrade-to-php-5-4

Dưới đây là một bước-by-step cho những người có một thiết lập tương tự hoặc giống hệt nhau:

Tải nguồn imap từ url này, tập trung vào một với ngày gần đây nhất mà doesn' t kết thúc trong "Z": ftp://ftp.cac.washington.edu/imap/

Không lưu trữ, hãy vào thư mục, chạy các lệnh sau:

$ make osx EXTRACFLAGS="-arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp" 

lệnh trên sẽ ném một loạt các cảnh báo vào bạn, nhưng phải hoàn thành thành công, không giống như các lệnh ban đầu được đề xuất trong bài đăng trên blog của september28.

Tiếp theo, thực hiện như sau:

$ sudo cp c-client/*.h /usr/local/include/ 
$ sudo cp c-client/*.c /usr/local/lib/ 
$ sudo cp c-client/c-client.a /usr/local/lib/libc-client.a 

Một khi điều này được thực hiện, đi vào thư mục nguồn php tải về nếu bạn đã thực hiện nâng cấp một tùy chỉnh như tôi đã làm (theo liên kết thứ hai trong câu trả lời) và xây dựng phần mở rộng imap.so cho hệ thống của bạn. Nếu bạn không xây dựng một phiên bản tùy chỉnh, chỉ cần tải về nguồn PHP cho phiên bản bạn đã cài đặt và sử dụng nó, nó không quan trọng.

$ cd ~/Downloads/Php-5.4.4/ext/imap 
$ phpize 
$ ./configure --with-imap==/usr/local/imap-2007 --with-kerberos --with-imap-ssl 
$ make 

Sau khi thực hiện, làm như sau:

$ sudo cp modules/imap.so /usr/lib/php/extensions/no-debug-non-zts-20100525/ 

... hoặc nếu thư mục mở rộng PHP của bạn là khác nhau, đặt đó (bạn sẽ nhìn thấy vị trí trong phpinfo();)

Khởi động lại apache và bạn sẽ sẵn sàng sử dụng.

$ sudo apachectl restart 
+0

Khi tôi cố gắng làm: làm OSX EXTRACFLAGS = "- vòm i386 -arch x86_64 -g -os -pipe -no-cpp-precomp" trên OS X Mountain Lion của tôi, tôi nhận được lỗi này: - bash: $: lệnh không tìm thấy Tôi nên làm gì để tiếp tục? –

+0

bỏ qua $ từ mọi lệnh bạn nhập, đó chỉ là biểu tượng đầu vào bash. – Swader

+0

Tôi phải làm thêm một bước, trong php.ini của tôi, tôi đã phải thêm phần mở rộng bằng tay. $ sudo nano php.ini -> tìm kiếm phần mở rộng động -> add extension = "/ usr/lib/php/extensions/no-debug-non-zts-20100525/imap.so" -> lưu và thoát -> khởi động lại apache một lần nữa – jolyonruss

Các vấn đề liên quan