Установка модуля Pecl Oauth на MAMP OSX 10.6 - PullRequest
0 голосов
/ 10 ноября 2010

Хорошо, так что после дня, связанного с различными вещами, такими как Fink, Macports, Pecl и т. Д., Мне удалось установить модуль oauth.so в OSX.

Тем не менее, я использую MAMP локально, который, я думаю, использует свою собственную версию (то есть в своем собственном местоположении) PHP, и модуль был установлен в основную версию системы PHP?

ИтакЯ запустил версию PECL из папок MAMP:

sudo /Applications/MAMP/bin/php5.2/bin/pecl install oauth

Но, похоже, он все равно установлен в общей папке

    ...
    Build process completed successfully
    Installing '/usr/lib/php/extensions/no-debug-non-zts-20090626/oauth.so'
    install ok: channel://pecl.php.net/oauth-1.0.0
    configuration option "php_ini" is not set to php.ini location
    You should add "extension=oauth.so" to php.ini

Обратите внимание на / usr / lib /... папка.Но MAMP php.ini использует, на самом деле выглядит в /Applications/MAMP/bin/php5.2/lib/php/extensions/no-debug-non-zts-20060613

Я думал, что это будетпросто, просто скопировав файл .so поверх ... но на это надеялись слишком много ..

Может кто-нибудь помочь мне, как я могу установить это расширение в нужную папку и сообщить об этом php?

Спасибо

Ответы [ 3 ]

4 голосов
/ 23 июля 2012

Я использую MAMP версии 1.9.6 на Mac OSX версии 10.7.4, и у меня возникла та же проблема.

Я проверил свои журналы ошибок MAMP php на /Applications/MAMP/logs/php_error.log

и нашел эту ошибку

[22-Jul-2012 12:11:20] PHP Warning:  PHP Startup: Unable to load dynamic library '/Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/oauth.so' - dlopen(/Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/oauth.so, 9): no suitable image found.  Did find:
        /Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/oauth.so: mach-o, but wrong architecture in Unknown on line 0

Я исправил это следующим образом:

  1. Скачать исходный код http://pecl.php.net/package/oauth

    Откройте терминал, перейдите туда, где находится загруженный файл, и введите следующие команды:

  2. tar xzvf oauth-1.1.0.tgz

  3. cd oauth-1.2.2/oauth-1.2.2

  4. phpize

  5. sudo ./configure MACOSX_DEPLOYMENT_TARGET=10.7 CFLAGS="-arch i386 -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch i386 -g -Os -pipe" CXXFLAGS="-arch i386 -g -Os -pipe" LDFLAGS="-arch i386 -bind_at_load"

    ПРИМЕЧАНИЕ: Убедитесь, что вы указали правильный номер версии вашего Mac OSX для TARGET в приведенной выше команде.

  6. sudo make

  7. sudo make install

  8. sudo cp /usr/lib/php/extensions/no-debug-non-zts-20090626/oauth.so /Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/oauth.so

  9. В вашем любимом редакторе откройте php.ini (в моем случае он расположен по адресу /Applications/MAMP/conf/php5.3/php.ini) и добавьте следующую строку в область расширений:

    extension=oauth.so

  10. Сохраните изменения и перезапустите MAMP. Вы должны увидеть запись oauth на странице MAMP PHPINFO.

0 голосов
/ 18 июня 2014

Модули PECL являются скомпилированными модулями, для их установки вам нужны заголовки PHP. Вы можете найти заголовки на php.net/downloads.php, чтобы убедиться, что вы загружаете версию, соответствующую вашей версии PHP. Затем вы можете выполнить следующее: Установка PHP OAuth в среде MAMP

0 голосов
/ 18 апреля 2011

Вы должны установить параметр php_ini в pecl, чтобы он указывал на php.ini вашей установки MAMP. Итак:

sudo /Applications/MAMP/bin/php5.2/bin/pecl config-set /Applications/MAMP/conf/php.ini

Это должно заставить pecl использовать вашу текущую конфигурацию MAMP php

...