Я скомпилировал openssl, используя команды ниже:
./config --prefix=/usr/local --openssldir=/usr/local/openssl -fPIC
make
make test
make install
Итак, когда я пытаюсь скомпилировать php, у меня появляется следующая ошибка:
/usr/bin/ld: /usr/local/lib/libbz2.a(bzlib.o): relocation R_X86_64_32S against `BZ2_crc32Table' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libbz2.a: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
make: ** [libphp5.la] Erro 1
This error occours when I running the command for to configure the PHP:
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-libdir=/usr/lib/x86_64-linux-gnu --with-openssl --with-openssl-dir=/usr/bin --with-mysql --with-mysqli --enable-mbstring --with-mcrypt=/usr/lib/libmcrypt.so --with-pdo-mysql --enable-opcache --enable-soap --enable-sockets --with-zlib --with-bz2=/usr/local/bzip2 --with-zlib --with-curl && make clean && make && make install && service apache2 restart
Например, когда я компилировал openssl, мне нужно было использовать параметр -fPIC, я считаю, что проблема связана с openssl.
Я использую Debian.
Если ваша система 64bit
когда вы компилируете openssl
‘-m64
будет добавлен к флагу компиляции, просто откройте Makefile
из openssl
, удалить все ‘-m64
‘, затем
make & make install
а затем вернитесь к исходному файлу php, с make все будет в порядке!
Других решений пока нет …