2012-06-22 11 views
5

Chciałem, aby najnowsza wersja PHP działała z nowym Macbookiem, ale instalacja php nie zawiera domyślnie funkcji imap. Jest jedna konkretna funkcja, której potrzebuję - mianowicie funkcja "imap_rfc822_parse_headers", ale nie mam ochoty rekompilować, budować i instalować PHP (nie wspominając już o wysiłku, jaki trzeba wykonać, aby zainstalować klienta c-client i imap.so wcześniej). . Obawiam się, że zawiłe procedury (z których każda, którą odkryłem, są nieco inne) mogą zepsuć moją obecną instalację, która nie była łatwa do skonfigurowania.Używanie funkcji IMAP w PHP bez przebudowy i ponownej instalacji

Czy istnieje inny, łatwiejszy sposób zainstalowania aplikacji w PHP? Na podobny temat, czy istnieje prawdopodobnie oparta na klasach alternatywa dla funkcji, której potrzebuję?

Odpowiedz

11

W końcu znalazłem rozwiązanie. Większość tego była tutaj: http://www.september28.co.uk/blog/2011/11/24/php-imap-support-in-mac-os-x-lion-without-recompiling-php/

Moja maszyna to koniec 2011 roku Macbook Pro z MacOSX 10.7.4, PHP 5.4. zainstalowane poprzez następujące instrukcje: http://www.hirmet.com/mac-os-x-lion-upgrade-to-php-5-4

Oto krok po kroku dla osób o podobnej lub identycznej konfiguracji:

pobrać źródła IMAP, z tym adresem, koncentrują się na jednym z najbardziej aktualne który robi” t koniec w „z”: ftp://ftp.cac.washington.edu/imap/

Zdezarchiwizuj, przejdź do folderu, uruchom następujące polecenia:

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

powyższe polecenie rzuci kilka ostrzeżeń na ciebie, ale powinna zakończyć powodzeniem, w przeciwieństwie do polecenie pierwotnie zasugerowane we wpisie na blogu we wrześniu 28.

Następnie wykonaj następujące czynności:

$ 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 

Gdy to nastąpi, przejdź do pobranego folderu źródłowego php jeśli się zwyczaj uaktualnić jak ja (jak w drugim linku odpowiedź) i budować rozszerzenie imap.so dla twojego systemu. Jeśli nie stworzyłeś wersji niestandardowej, po prostu pobierz źródło PHP dla wersji, którą zainstalowałeś i użyj tego, nie ma to znaczenia.

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

Gdy to zrobisz, wykonaj następujące czynności:

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

... czy folder rozszerzenie PHP jest inny, umieścić, że (można zobaczyć lokalizację w phpinfo();)

Zrestartuj apache i powinieneś być gotowy do pracy.

$ sudo apachectl restart 
+0

Kiedy próbuję zrobić: zrobić osx EXTRACFLAGS = "- arch i386 -arch x86_64 -g -Os -pipe -no-CPP-PRECOMP" na moim OS X Mountain Lion, otrzymuję ten błąd: - bash: $: command not found Co mam zrobić, aby przejść dalej? –

+0

pominąć $ od każdego wpisanego polecenia, to tylko symbol wejścia bash. – Swader

+0

Musiałem zrobić dodatkowy krok, w moim php.ini musiałem dodać rozszerzenie ręcznie. $ sudo nano php.ini -> szukaj rozszerzeń dynamicznych -> dodaj rozszerzenie = "/ usr/lib/php/extensions/no-debug-non-zts-20100525/imap.so" -> zapisz i wyjdź -> zrestartuj apache ponownie – jolyonruss

Powiązane problemy