Проблемы с созданием и использованием mssql.so php extension, сервера AMPPS на MAC OSX

Я думаю, что мне нужно знать, как указать архитектуру сборки при сборке расширений .php в OSX.
Каковы вероятные архитектуры, которые я должен попробовать в первую очередь, и как их указать?

Детали:

У меня проблемы с созданием работающего расширения mssql.so php для моего сервера.

Я использовал сервер AMPPS на Mac для обслуживания веб-сайтов на основе php и доступа к базам данных MySQL.

Теперь мне нужно подключиться к базе данных MSSQL. Установка php AMPPS не включает расширение mssql, поэтому, когда я пытаюсь использовать mssql_connect() Я получаю следующую ошибку.

Call to undefined function `mssql_connect()` in /Applications/AMPPS/www/test.php

Я думаю, что мне нужно добавить mssql.so в папку php / lib / extensions / ext, а затем добавить

extension=mssql.so

в мой файл php.ini.

Для создания mssql.so я нашел пару онлайн-уроков, в которых оба используют Freetds:

http://lkrms.org/php-with-freetds-on-os-x-mavericks/#comment-82521

http://blog.benjaminwalters.net/?p=10

Я использовал home brew для установки autoconf:

brew instal autoconf

Затем я скачал и установил freetds:

./configure --prefix=/usr/local/freetds --sysconfdir=/usr/local/freetds/conf/freetds --disable-libiconv --disable-odbc

make

sudo make install

Freetds был установлен в / usr / local / freetds. Затем я скачал php. Я пробовал это со всеми версиями, доступными для загрузки 5.6.2, 5.5.18, 5.4.32 и 5.3.29. 5.3.29 возникла проблема, и я не смог сгенерировать mssql.so.

Все остальные версии были успешно созданы mssql.so с использованием следующего метода:

Распакуйте пакет в папку для скачивания

cd php-5.4.17/ext/mssql

phpize

./configure --with-php-config=/usr/bin/php-config --with-mssql=/usr/local/freetds

make

Затем я копирую сгенерированный файл mssql.so в /Applications/AMPPS/php-5.4/lib/extensions/ext и добавляю его в файл php.ini.

extension=mssql.so

Я перезапускаю сервер apache и просматриваю файл ошибки / журнала, в котором есть следующая ошибка:

PHP Warning:  PHP Startup: Unable to load dynamic library '/Applications/AMPPS/php-5.4/lib/extensions/ext/mssql.so' - dlopen(/Applications/AMPPS/php-5.4/lib/extensions/ext/mssql.so, 9): no suitable image found.  Did find:\n\t/Applications/AMPPS/php-5.4/lib/extensions/ext/mssql.so: mach-o, but wrong architecture in Unknown on line 0

Похоже, что я создал mssql.so для неправильной архитектуры?

Я посмотрел на вывод терминала, когда настраивал «make» для mssql.so, и обнаружил следующее, указывающее архитектуру, для которой он создается:

checking build system type... i386-apple-darwin13.1.0
checking host system type... i386-apple-darwin13.1.0
checking target system type... i386-apple-darwin13.1.0

Похоже, я сделал это для i386. Здесь я начинаю путаться.

После того, как терминал make заставляет меня выполнить команду «make test», я делаю это и получаю следующий вывод:

   =====================================================================
PHP         : /usr/bin/php  PHP_SAPI    : cli PHP_VERSION : 5.4.24

ZEND_VERSION: 2.4.0 PHP_OS      : Darwin - Darwin myMac13.1.0 Darwin

Kernel Version 13.1.0:

Thu Jan 16 19:40:37 PST 2014;

root:xnu-2422.90.20~2/RELEASE_X86_64 x86_64

INI actual  : /Users/user/downloads/php-5.6.2/ext/mssql/tmp-php.ini More .INIs  :

CWD         : /Users/user/Downloads/php-5.6.2/ext/mssql Extra dirs :

VALGRIND:Notused

===================================================================TIME START 2014-10-26 11:53:50

=====================================================================

Тесты не проводились. Это не говорит, почему никакие тесты не были выполнены, что расстраивает. В нем упоминается x86_64, который не является i386.

Я попытался проверить, какая архитектура моей системы, чтобы убедиться, что это i386 или x86_64.

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

uname -p

i368

uname -m

x86_64

arch

i386

Таким образом, аппаратное обеспечение моей машины — x86_64 (uname -m), а архитектура процессора — i386 (uname -p). Я не понимаю, как они могут отличаться или каковы последствия этого.

Так я построил mssql.so для неправильной архитектуры или я сделал что-то еще неправильно? Если я построил его для неправильной архитектуры, то как мне настроить его для правильной?

Большое спасибо за любую помощь с этим.

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …