Возникли проблемы при попытке установить OAUTH с PECL в MAMP на Mac OS Lion
Я новичок в настройке серверов php, и я пошел, хотя другой связанный пост, кажется, что ни у кого нет такой же ошибки, как у меня. Я использую MAMP 2.0.2 и использую PHP 5.3.6, и я пытался установить oAuth на свой локальный MAMP, используя следующие команды:
$ cd /Applications/MAMP/bin/php/php5.3.6/bin
$ ./pecl install oauth
однако он возвращает такую ошибку:
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.
Что происходит? PECL включен в MAMP, который должен работать из коробки....
Обновить:
Я прочитал пост в другом месте, предполагающий, что данные файла конфигурации, которые содержат пути установки, являются неправильными, поэтому я изменил некоторое значение в следующем файле:
/Applications/MAMP/bin/php/php5.3.6/conf/pear.conf
Затем я использую команду:
$ ./pecl install oauth
Который начинает скачивать и распаковывать, но при попытке установить дает:
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
Опять же, что происходит?
4 ответа
Я знаю, что это старый, но я нашел этот вопрос, имея аналогичную проблему.
MAMP не поставляется с кучей источников PHP
- Загрузите компоненты MAMP и настройте
- URL: http://www.mamp.info/en/downloads/index.html (например, MAMP_components_2.0.2.zip)
- Распакуйте свой MAMP_components_2.0.2.zip
- Определите ваш файл php-5.xxtar.gz (где 5.xx - ваша версия PHP)
- Если вы используете php > 5.4.10, скачайте исходники с http://php.net/releases как их нет в загрузке компонентов MAMP (credit pulkitsinghal в комментариях)
Создайте каталог для ваших источников PHP:
mkdir -vp /Applications/MAMP/bin/php5/include
Разархивируйте php-5.xxtar.gz в /Applications/MAMP/bin/php/php5.*/include или /Applications/MAMP/bin/php5/, включая:
tar zxvf php-5.x.x.tar.gz -C /Applications/MAMP/bin/php/php5.?.??/include
Переименуйте каталог php-5.xx в php (без нумерации версий):
mv /Applications/MAMP/bin/php/php5.2.17/include/php-5.?.?? /Applications/ MAMP/bin/php/php5.2.17/include/php
Сконфигурируйте исходники PHP (будут созданы необходимые файлы, например, zend_config.h, tsrm_config.h и т. Д.):
cd /Applications/MAMP/bin/php/php5.?.??/include/php
./configure
Процесс был для другого исправления, но это решило проблемы с php.h не найденными
Отдайте туда, где я нашел ответы -:
У меня была такая же проблема при попытке pecl install -f ssh2
с MAMP.
Вот как я это исправил:
- MAMP не предоставляет архив исходного кода для PHP 5.4.10, поэтому загрузите его с php.net
- Распакуйте архив с исходным кодом в /Applications/MAMP/bin/php/php5.4.10/include/php
- Бежать
./configure
настроить исходный код для вашей платформы (без этого шага при установке pecl не будет найдено несколько заголовочных файлов) - Повторите ваш
pecl
устанавливать
(большое спасибо ответу Стивена, который почти такой же)
Это дополнение к ответу Стивена и комментарию Грега
При компиляции xdebug 2.3.2 для php 5.6.2 на OSX 10.10.2 я не смог избавиться от
Файл 'zend_config.h' не найден
ошибка, пока я не добавил следующую опцию в./configure в папке php:
./configure --without-iconv
Модули PECL - это скомпилированные модули, для их установки вам понадобятся заголовки PHP. Вы можете найти заголовки на php.net/downloads.php, чтобы убедиться, что вы загружаете версию, соответствующую вашей версии PHP. Тогда вы можете выполнить следующее: Установка PHP OAuth в среде MAMP.