2012-05-23 38 views
27

tôi mới để thiết lập máy chủ php, và tôi đã đi mặc dù bài liên quan khác, có vẻ như không ai có lỗi tương tự như tôi có. Tôi đang sử dụng MAMP 2.0.2, và chạy PHP 5.3.6, và tôi đã cố gắng để cài đặt OAuth trên MAMP địa phương của tôi, sử dụng lệnh sau:Có vấn đề trong khi cố gắng cài đặt OAUTH với PECL trong MAMP trên mac OS lion

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

tuy nhiên, nó trở lại báo lỗi như vậy:

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. 

Điều gì đang xảy ra? PECL được đóng gói trong MAMP, mà nên làm việc ra khỏi hộp ....

Cập nhật:

tôi đọc một bài khác gợi ý rằng dữ liệu tập tin cấu hình, mà giữ cài đặt đường dẫn là trong đúng, vì vậy tôi đã thay đổi một số giá trị trong file sau:

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

sau đó, tôi sử dụng lệnh:

$ ./pecl install oauth 

nào nó bắt đầu tải về và giải nén, nhưng khi cố gắng cài đặt, nó cung cấp cho 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 

Một lần nữa, điều gì đang xảy ra?

Trả lời

64

Tôi biết điều này là cũ nhưng tôi đã tìm thấy câu hỏi này khi gặp sự cố tương tự.

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

  • thành phần Tải MAMP và cấu hình
  • URL: http://www.mamp.info/en/downloads/index.html (tức MAMP_components_2.0.2.zip)
  • Giải nén MAMP_components_2.0.2.zip bạn
  • Xác định php-5.xxtar của bạn. tệp gz (trong đó 5.xx là phiên bản PHP của bạn)
  • Nếu bạn đang sử dụng php> 5.4.10, hãy tải xuống các nguồn từ http://php.net/releases vì chúng không có trong các thành phần MAMP tải xuống (tín dụng pulkitsinghal trong comm ENT)
  • Tạo thư mục cho các nguồn PHP của bạn:

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

  • tar php-5.xxtar.gz vào /Applications/MAMP/bin/php/php5.*/include hoặc/Applications/MAMP/bin/php5/bao gồm:

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

  • Đổi tên thư mục php-5.xx của bạn để php (không có đánh số phiên bản):

    01.235.

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

  • Định cấu hình nguồn PHP (nó sẽ tạo các tệp cần thiết tức là zend_config.h, tsrm_config.h, v.v.):

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

    ./configure

Quá trình này đã cho sửa chữa khác nhưng điều này giải quyết các vấn đề với php.h không được tìm thấy

tín dụng đối với nơi tôi tìm thấy câu trả lời -:

Thomas Hunter Blog

Google Doc detailing process

+0

Điều này không hiệu quả đối với tôi nhưng không có thời gian để đào sâu thêm nữa. –

+2

cảm ơn rất nhiều - tôi đã sử dụng điều này để cài đặt trình điều khiển mongo php với php 5.4.4 – monofonik

+3

Nếu bạn nhận được các phần sau '/Applications/MAMP/bin/php/php5.4.4/include/php/Zend/zend.h: 51:11: lỗi nghiêm trọng: không tìm thấy tập tin 'zend_config.h'' đảm bảo bạn cấu hình nguồn php. tức là trong thư mục mà bạn đã sao chép tất cả các tệp đang chạy ./configure – greg

28

Tôi gặp sự cố tương tự khi cố gắng pecl install -f ssh2 bằng MAMP.

Đây là cách tôi cố định nó:

  1. MAMP không cung cấp kho lưu trữ mã nguồn cho PHP 5.4.10 để tải nó từ php.net
  2. Giải nén kho lưu trữ mã nguồn để/Applications/MAMP/bin /php/php5.4.10/include/php
  3. Run ./configure để cấu hình các mã nguồn cho nền tảng của bạn (không có bước này PECL cài đặt sẽ thất bại tìm kiếm một loạt các tập tin tiêu đề)
  4. Thử lại bạn pecl cài đặt

(nhiều nhờ vào câu trả lời của Stephen đó là khá nhiều giống nhau)

+5

Đây là câu trả lời đơn giản hơn. Một điều cần lưu ý: đổi tên thư mục PHP 5.4.10 chưa nén thành 'php' sau khi đặt nó vào thư mục'/include', tôi đã nhầm lẫn về bước đó. –

+1

Câu trả lời này phải được chấp nhận, nó khắc phục vấn đề, được giải thích rõ ràng và tôi đoán nó sẽ hoạt động trong một thời gian dài. Không giống như bình chọn nhiều nhất. – TCB13

+0

Nhưng việc chạy các lệnh này trong thiết bị đầu cuối không ảnh hưởng đến việc cài đặt MAMP nhưng cài đặt hệ thống của PHP không xuất hiện để trợ giúp tôi. – zkent

1

PECL module được biên soạn mô-đun, để cài đặt chúng, bạn cần các tiêu đề PHP. Bạn có thể tìm thấy các tiêu đề trên php.net/downloads.php đảm bảo bạn tải xuống phiên bản phù hợp với phiên bản PHP của bạn. Sau đó, bạn có thể làm theo này: Installing PHP OAuth in MAMP environment

6

Đây là một bổ sung cho câu trả lời Stephen và bình luận của Greg

Khi biên dịch Xdebug 2.3.2 cho php 5.6.2 trên OSX 10.10.2, tôi không thể thoát khỏi những

'zend_config.h' file not found

lỗi cho đến khi tôi thêm các tùy chọn sau đây để ./configure trong thư mục php:

./configure --without-iconv

Credits to Cameron Browning

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