2015-01-28 1 views
0

У меня только что появился новый mac, работающий на yosemite, и у меня возникла проблема с использованием curl с комбинированными сертификатами. (см. это для деталей: http://curl.haxx.se/mail/archive-2014-10/0053.html) Я скомпилировал версию 7.40 curl и сказал php, чтобы связать ее с помощью опции -with-curl =/usr/local config. Теперь, после установки и перезапуска моего веб-сервера apache, я вижу, что версия в модуле установлена ​​в 7.37, а версия в командной строке правильно установлена ​​в 7.40. Оба кли и вывод phpinfo веб-сервера сказать то же самое, о котором php.ini они используют:curl версия отличается в php cli и модуле

Configuration File (php.ini) Path => /usr/local/lib 
Loaded Configuration File => /usr/local/lib/php.ini 
Scan this dir for additional .ini files => (none) 
Additional .ini files parsed => (none) 

Но это CLI линия для завитка:

cURL Information => 7.40.0 

и это локон информация, когда проходящий через сервер Apache:

Как это возможно? Почему модуль ссылается на другую версию, чем на cli?

ответ

0

Существует двоичная версия cURL и библиотека версии 7.37.1, которая поставляется с Yosemite. Ваша команда компиляции включает -L/usr/lib до -L/usr/local/lib.

+0

Это не объясняет, почему он связывает версию/usr/lib в модуле и версию/usr/local/lib в сборке cli. Это потому, что модуль выполняет динамическую компоновку, а кли нет? –

+0

использовать 'otool -L' как для cli, так и для модуля PHP, чтобы узнать, с чем он был связан с –

+0

Ответ Ганса в основном правильный, но он не объясняет, почему модуль связывается с одной библиотекой и cli-ссылками против другая библиотека. –