为 CentOS 5.8 编译 Gearman PHP 库

为 CentOS 5.8 编译 Gearman PHP 库

我整个下午都在尝试在 CentOS 5.8 上编译 Gearman。

搜索结果显示可以通过以下方式安装yum

yum -y install --enablerepo=remi boost141-devel libgearman-devel e2fsprogs-devel e2fsprogs gcc44 gcc-c++

为了使 Boost 标头正常工作,我执行以下操作:

cp -f /usr/lib/boost141/* /usr/lib/
cp -f /usr/lib64/boost141/* /usr/lib64/
rm -f /usr/include/boost
ln -s /usr/include/boost141/boost /usr/include/boost

安装所有依赖项并设置路径后,我就gearmand-1.1.2可以下载并编译了。

wget -O /tmp/gearmand-1.1.2.tar.gz https://launchpad.net/gearmand/1.2/1.1.2/+download/gearmand-1.1.2.tar.gz
cd /tmp && tar zxvf gearmand-1.1.2.tar.gz
./配置&& 制作-j8 && 制作安装

一切正常。现在我需要为 PHP 安装 Gearman 库。我尝试通过 PECL 和直接下载源代码,但都导致相同的错误:

检查是否启用 gearman 支持...是的,共享
未找到
配置:错误:请安装 libgearman

我不明白的是,我安装了该libgearman-devel软件包,同时也安装了核心libgearman。安装程序安装了libgearman-devel-0.14-3.el5.x86_64libgearman-devel-0.14-3.el5.i386libgearman-0.14-3.el5.x86_64libgearman-0.14-3.el5.i386

软件包版本是否可能低于要求的版本?我仍在研究这个问题,但我想我会提出这个问题,看看是否有人有解决方案,同时我会继续研究修复方法。

谢谢!

答案1

这应该可以解决问题:

export GEARMAN_LIB_DIR=/usr/include/libgearman
export GEARMAN_INC_DIR=/usr/include/libgearman

这应该可以工作,如果不行的话你将必须对 config.m4 做一些小的编辑。

答案2

关于此问题的其他一些有用说明可以在这里找到:http://gearman.info/build/centos5-8.html

并且基于上面的链接和随机的谷歌搜索,这对我有用,而不会弄乱 lib/include 文件夹:

yum install boost141 boost141-devel gcc44 gcc44-c++ uuid-devel
export CC="gcc44"
export CFLAGS="-std=gnu99"
export CXX="gcc44-c++"
export CPPFLAGS="-I/usr/include/boost141"
export LDFLAGS="-L/usr/lib64/boost141"
CC=gcc44 CXX=g++44 ./configure
make
make install

更新:Epel 最近更新到了 gearmand / libgearman 1.1.8,与之前的版本(0.14?)相比,这个版本非常新。所以应该不需要自己编译它(当然除了 php pecl 扩展)。

相关内容