2012-05-23 13 views
27

Jestem nowy w ustawianiu serwerów php, i miałem już inny powiązany wpis, wydaje się, że nikt nie ma takiego samego błędu jak ja. Używam MAMP 2.0.2, PHP 5.3.6 i działa, i starałem się zainstalować OAuth na moim lokalnym MAMP, stosując następujące polecenia:Masz problemy podczas próby zainstalowania OAUTH z PECL w MAMP na mac OS lew

$ cd /Applications/MAMP/bin/php/php5.3.6/bin 
$ ./pecl install oauth 

jednak powrócić takiego błędu:

Notice: unserialize(): Error at offset 276 of 1133 bytes in Config.php on line 1050 
ERROR: The default config file is not a valid config file or is corrupted. 

Co się dzieje? PECL jest spakowany w MAMP, które powinno działać po wyjęciu z pudełka ....

Aktualizacja:

czytałem post gdzie indziej dane sugerują, że plik konfiguracyjny, który przechowuje ścieżki instalacji są w-prawidłowe, więc zmieniłem jakąś wartość w następujący plik:

/Applications/MAMP/bin/php/php5.3.6/conf/pear.conf 

Następnie użyć polecenia:

$ ./pecl install oauth 

której rozpoczyna się pobieranie i rozpakować, ale gdy próby zainstalowania, to dać s:

creating libtool 
appending configuration tag "CXX" to libtool 
configure: creating ./config.status 
config.status: creating config.h 
running: make 
/bin/sh /private/tmp/pear/temp/pear-build-user1RU5EZA/oauth-1.2.2/libtool --mode=compile cc -I. -I/private/tmp/pear/temp/oauth -DPHP_ATOM_INC -I/private/tmp/pear/temp/pear-build-user1RU5EZA/oauth-1.2.2/include -I/private/tmp/pear/temp/pear-build-user1RU5EZA/oauth-1.2.2/main -I/private/tmp/pear/temp/oauth -I/Applications/MAMP/bin/php/php5.3.6/include/php -I/Applications/MAMP/bin/php/php5.3.6/include/php/main -I/Applications/MAMP/bin/php/php5.3.6/include/php/TSRM -I/Applications/MAMP/bin/php/php5.3.6/include/php/Zend -I/Applications/MAMP/bin/php/php5.3.6/include/php/ext -I/Applications/MAMP/bin/php/php5.3.6/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -Wall -g -c /private/tmp/pear/temp/oauth/oauth.c -o oauth.lo 
mkdir .libs 
cc -I. -I/private/tmp/pear/temp/oauth -DPHP_ATOM_INC -I/private/tmp/pear/temp/pear-build-user1RU5EZA/oauth-1.2.2/include -I/private/tmp/pear/temp/pear-build-user1RU5EZA/oauth-1.2.2/main -I/private/tmp/pear/temp/oauth -I/Applications/MAMP/bin/php/php5.3.6/include/php -I/Applications/MAMP/bin/php/php5.3.6/include/php/main -I/Applications/MAMP/bin/php/php5.3.6/include/php/TSRM -I/Applications/MAMP/bin/php/php5.3.6/include/php/Zend -I/Applications/MAMP/bin/php/php5.3.6/include/php/ext -I/Applications/MAMP/bin/php/php5.3.6/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -Wall -g -c /private/tmp/pear/temp/oauth/oauth.c -fno-common -DPIC -o .libs/oauth.o 
In file included from /private/tmp/pear/temp/oauth/oauth.c:14: 
/private/tmp/pear/temp/oauth/php_oauth.h:20:10: 

fatal error: 'php.h' file not found 

include "php.h" 
    ^

1 error generated. 

make: *** [oauth.lo] Error 1 

ERROR: `make' failed 

Jeszcze raz, co się dzieje?

Odpowiedz

64

Wiem, że to jest stare, ale znalazłem to pytanie, mając podobny problem.

MAMP doesn’t ship with a bunch of the PHP sources

  • składniki Pobierz MAMP i skonfigurować
  • URL: http://www.mamp.info/en/downloads/index.html (tj MAMP_components_2.0.2.zip)
  • Rozpakuj MAMP_components_2.0.2.zip
  • Zidentyfikuj php-5.xxtar. plik gz (gdzie 5.xx to twoja wersja PHP)
  • Jeśli używasz php> 5.4.10, a następnie pobierz źródła z http://php.net/releases, ponieważ nie są one w komponentach pobierania MAMP (credit pulkitsinghal in comm enty)
  • Tworzenie katalogu dla źródeł PHP:

    mkdir -vp /Applications/MAMP/bin/php5/include

  • rozpakować php-5.xxtar.gz do /Applications/MAMP/bin/php/php5.*/include lub/Applications/mA/bin/php5/include:

    tar zxvf php-5.x.x.tar.gz -C /Applications/MAMP/bin/php/php5.?.??/include

  • Zmień nazwę katalogu php-5.xx do PHP (bez numeracji wersji):

    mv /Applications/MAMP/bin/php/php5.2.17/include/php-5.?.?? /Applications/ MAMP/bin/php/php5.2.17/include/php

  • źródła skonfigurować PHP (będzie ona tworzyć niezbędne pliki tj zend_config.h, tsrm_config.h, etc.):

    cd /Applications/MAMP/bin/php/php5.?.??/include/php

    ./configure

Proces był dla innej poprawki, ale to rozwiązać problemy z php.h nie będąc znaleziono

kredytowym na którym znalazłem odpowiedź -:

Thomas Hunter Blog

Google Doc detailing process

+0

To nie zadziałało, ale nie miałem czasu na dalsze kopanie. –

+2

wielkie dzięki - użyłem tego, aby zainstalować sterownik php mongo z php 5.4.4 – monofonik

+3

Jeśli otrzymasz następujące '/Applications/MAMP/bin/php/php5.4.4/include/php/Zend/zend.h: 51:11: błąd krytyczny: nie znaleziono pliku "zend_config.h" upewnij się, że skonfigurowałeś źródła php. np. w katalogu, w którym skopiowane zostały wszystkie pliki ./configure – greg

28

Miałem ten sam problem podczas próby pecl install -f ssh2 z MAMP.

Oto jak naprawiłem go:

  1. MAMP nie przewiduje archiwum kod źródłowy PHP 5.4.10 więc go pobrać ze php.net
  2. Rozpakuj archiwum z kodem źródłowym do katalogu/Programy/mA/bin /php/php5.4.10/include/php
  3. Run ./configure skonfigurować kod źródłowy dla danej platformy (bez tego etapu pecl instalacja nie powiedzie się, patrząc na pęczek plików nagłówkowych)
  4. ponowić próbę pecl zainstalować

(dużo dzięki odpowiedź Szczepana, który jest prawie taka sama)

+5

To jest prostsza odpowiedź. Jedna rzecz do zapamiętania: zmień nazwę nieskompresowanego folderu PHP 5.4.10 na "php" po umieszczeniu go w katalogu '/ include', byłem zdezorientowany tym krokiem. –

+1

Ta odpowiedź powinna zostać zaakceptowana, rozwiązuje problem, jest jasno wyjaśniona i myślę, że będzie działać przez długi czas. Nie jak ten, który głosował najbardziej. – TCB13

+0

Jednak uruchamianie tych poleceń w terminalu nie wpływa na instalację MAMP, ale na systemową instalację PHP, która nie wydaje mi się pomocna. – zkent

1

PECL moduły są skompilowane moduły, aby je zainstalować, trzeba nagłówki PHP. Możesz znaleźć nagłówki na php.net/downloads.php, upewnij się, że pobrałeś wersję, która pasuje do twojej wersji PHP. Następnie można śledzić to: Installing PHP OAuth in MAMP environment

6

Jest to uzupełnienie do odpowiedzi Szczepana i komentarz Grega

Kompilując Xdebug 2.3.2 PHP 5.6.2 na OSX 10.10.2, nie mogłem pozbyć się

'zend_config.h' file not found

błąd aż dodałem następujące opcję ./configure w katalogu pHP:

./configure --without-iconv

Credits to Cameron Browning