OpenSSL PHP modülleri altında listelenen ama configure komutunda gösterir değil

1 Cevap php

PHP 5.2.12
OS X 10.5.8

Ben şu configure komutu ile kaynak PHP derleme

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

başarılı. Ancak, make ve make install sonra,

php -m

not openssl modülünü listesi yok.

Ne okudum dayanarak, ben think bu openssl kütüphanesi birden yükler nedeniyle olabilir. Kaynağından openssl en son sürümünü yükleme ve yapılandırma komut yolunu belirtmek için çalışırken, --with-openssl=/usr/local, hep şu hatayla sonuçlanır:

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

Ben hayır şans ile yolda birkaç farklı varyasyonları denedim.

Based on http://blog.yimingliu.com/2009/02/24/missing-library-symbols-while-compiling-php-528/, I've also tried editing the Makefile so that MH_BUNDLE_FLAGS comes later in the compilation line.

Bu konuda günün bir kısmını geçirdikten sonra, ben bir kayıp değilim.

Herhangi bir öneriniz?

İdeal olarak, OpenSSL derlenmiş ve en son sürümünü kullanıyor olmak istiyorum. Ama bu noktada, ben çalışan ne olursa olsun kabul etmeye hazırım.

1 Cevap

Yaa. Tabii php -m modülü liste olmaz. Bu "ortak" olarak belirtilmiş oluyor. Evet, kaynak koddan derleme ile tüm bu aşina değilim.

Benim çözüm oluşuyordu

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

daha sonra aşağıdakileri ekleyerek

extension=openssl.so

için /etc/php.ini

Restarted apache ve her şey şimdi gerektiği gibi çalışır.