Ubuntu 14.04 编译 PHP 5.6.3 时出错

Ubuntu 14.04 编译 PHP 5.6.3 时出错

我认为我正确安装了 Apache2 和 PHP 的所有依赖项。

首先,我安装了一个干净的 Ubuntu 14.04,并安装了所有实际更新。然后,我使用“apt-get build-dep php5 apache2”安装了必要的依赖项。

之后我执行了以下步骤:

对于最后的依赖项:

apt-get install apache2 mysql-client mysql-server php5 libapache2-mod-php5 libxml2-dev libcurl4-openssl-dev libbz2-dev libjpeg-dev libpng-dev libfreetype6-dev libtidy-dev libxslt-dev libmcrypt-dev php5-gd php5-curl libc-client2007e-dev

ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a 

(编译过程找到 libc-client.a 文件)

最后从 php-5.6.3 目录开始编译过程

./configure --with-config-file-path=/etc/php5/apache2 --with-pear=/usr/share/php --with-gd --with-mysql --with-mysqli --with-pdo-mysql=/usr --with-curl --disable-debug --with-mhash --with-jpeg-dir=/usr --with-freetype-dir=/usr --with-zlib --with-gettext --with-bz2 --with-mcrypt --with-iconv --enable-soap --with-openssl --enable-mbstring --with-libdir=/lib/x86_64-linux-gnu --enable-ftp --enable-bcmath --with-imap --with-xsl --with-imap-ssl --enable-zip --with-tidy --with-kerberos --enable-calendar --enable-sockets --with-libxml-dir=/usr --with-apxs2

make install

然后我收到以下错误:

/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libc-client.a(osdep.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/usr/lib/x86_64-linux-gnu/libc-client.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
make: *** [libphp5.la] Fehler 1

我真的不知道该如何修复它,因为这真的不应该发生。一切都是全新安装的,谷歌也没有给出任何有用的信息……

如果有人能帮助我就太好了:D

答案1

错误消息告诉您可以添加 -fPIC 编译器标志。

http://jaytaylor.com/blog/2010/10/06/howto-fix-fpic-errors/

在此页面上,您可以找到半好的解决方案 - 对整个 PHP 启用 PIC。

export CC=”gcc -fPIC”
export CXX=”g++ -fPIC”

但我不知道这个解决方案有什么缺点。

相关内容