![Ubuntu 14.04 编译 PHP 5.6.3 时出错](https://linux22.com/image/977316/Ubuntu%2014.04%20%E7%BC%96%E8%AF%91%20PHP%205.6.3%20%E6%97%B6%E5%87%BA%E9%94%99.png)
我认为我正确安装了 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”
但我不知道这个解决方案有什么缺点。