2010-04-03 6 views
1

PHP 5.2.12
OS X 10.5.8OpenSSL не перечислены в PHP модулей, но показывает в команде конфигурирования

Если я скомпилировать PHP из исходного кода с помощью следующей команды конфигурирования

./configure --disable-all --with-openssl=shared,/opt/local 

его преуспевает. Однако, после того, как make и make install,

php -m 

делает не Перечислите модуль OpenSSL.

Основываясь на прочитанных, я думаю, что может быть связано с несколькими установками библиотеки openssl. Установка последней версии OpenSSL от источника и пытается указать путь в команде конфигурирования, --with-openssl=/usr/local, всегда приводит к следующей ошибке:

Undefined symbols: 
    "_EVP_CIPHER_CTX_block_size", referenced from: 
     _zif_openssl_seal in openssl.o 
ld: symbol(s) not found 
collect2: ld returned 1 exit status 
make: *** [sapi/cgi/php-cgi] Error 1 

Я попробовал несколько различных вариаций на пути, не повезло.

На основе http://blog.yimingliu.com/2009/02/24/missing-library-symbols-while-compiling-php-528/ Я также попытался отредактировать Makefile, чтобы MH_BUNDLE_FLAGS появился позже в строке компиляции.

Проведя большую часть дня по этому вопросу, я в недоумении.

Любые предложения?

В идеале, я хотел бы использовать скомпилированную и последнюю версию OpenSSL. Но на данный момент я готов принять все, что работает.

ответ

1

Duh. Конечно, php -m не будет перечислять модуль. Он указан как «общий». Да, я не так хорошо разбираюсь в компиляции из источника.

Мое решение состояло из

./configure 
--disable-all \ 
--prefix=/usr/local \ 
--with-openssl=shared,/usr \ 
--with-config-file-scan-dir=/etc 
...<snip> 

затем добавить

extension=openssl.so 

в /etc/php.ini

перезапущен апач и теперь все работает как надо.

 Смежные вопросы

  • Нет связанных вопросов^_^