linux — ошибка при компиляции PHP с openssl: перекомпилировать с -fPIC

Я скомпилировал 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.

1

Решение

Если ваша система 64bitкогда вы компилируете openssl-m64будет добавлен к флагу компиляции, просто откройте Makefile из openssl, удалить все ‘-m64‘, затем

make & make install

а затем вернитесь к исходному файлу php, с make все будет в порядке!

1

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

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