首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用apc编译mysqlnd_qc时出错

问用apc编译mysqlnd_qc时出错
EN

Stack Overflow用户
提问于 2012-11-01 15:18:57
回答 2查看 594关注 0票数 1

运行命令pecl install mysqlnd_qc以安装启用APC的缓存,我会收到以下错误:

代码语言:javascript
复制
configure: error: APC is onlysupported if both APC and MySQL Query Cache are compiled statically
ERROR: `/var/tmp/mysqlnd_qc/configure --enable-mysqlnd-qc-apc=yes --enable-qc-memcache=no --enable-qc-sqlite=no' failed

如果没有APC的支持,它会编译得很好.

PHP版本: 5.3.17

运行在Amazon上。

静态编译APC和MySQL查询缓存意味着什么?

怎么做的?

更新1:

由于我还没有用APC编译mysqlnd_qc,所以我尝试用memcached编译它。这是一个有趣的问题。./configure命令没有识别pecl为memcache提供的选项。我发现选项输入错误.

因此,当pecl安装询问选项时,我关闭了它,并自己运行了以下命令:

代码语言:javascript
复制
sudo ./configure --enable-mysqlnd-qc-memcache --with-libmemcached-dir=/usr/
sudo make
sudo make install

所以对于memcached,它现在起作用了。

如果在Fedora上运行(我猜还有RedHat和CentOS),那么就有可用的rpm

代码语言:javascript
复制
sudo yum install php-pecl-mysqlnd-qc

更新2:

我设法用APC编译,见下面的详细答案。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-05 08:39:07

找到了解决办法:

以下是我所做的:

Get php 5.3.17:

代码语言:javascript
复制
wget https://github.com/php/php-src/archive/PHP-5.3.17.zip
unzip PHP-5.3.17.zip

获取mysqlnd_qc:

代码语言:javascript
复制
wget http://pecl.php.net/get/mysqlnd_qc-1.1.1.tgz
tar -zxvf http://pecl.php.net/get/mysqlnd_qc-1.1.1.tgz
mkdir -p php-src-PHP-5.3.17/ext/mysqlnd_qc
cp -R mysqlnd_qc-1.1.1/* php-src-PHP-5.3.17/ext/mysqlnd_qc

让装甲运兵车:

代码语言:javascript
复制
wget http://pecl.php.net/get/APC-3.1.13.tgz
tar -xzvf APC-3.1.13.tgz
mkdir -p php-src-PHP-5.3.17/ext/apc
cp -R APC-3.1.13/* php-src-PHP-5.3.17/ext/apc/

编译:(可能不需要在其他系统上全部编译)

代码语言:javascript
复制
sudo yum install bison
sudo yum install libxml2 libxml2-devel
sudo yum install autoconf213
sudo yum install httpd-devel
sudo yum install bzip2 lbzip2 bzip2-libs bzip2-devel

export PHP_AUTOCONF=/usr/bin/autoconf-2.13

./buildconf --force
make clean && make

(对我来说,链接失败了,不得不在链接中添加‘-lp线程’)

代码语言:javascript
复制
make test
sudo make install

我还使用了以下两个命令,但我不记得什么和何时.

代码语言:javascript
复制
phpize
aclocal

运行与phpinfo相同的./configure并添加以下选项:

代码语言:javascript
复制
--with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-mysqlnd-qc --enable-mysqlnd-qc-apc --enable-mysqlnd --enable-apc --enable-static=apc
  • 必须替换所有的--with 。。
票数 2
EN

Stack Overflow用户

发布于 2012-11-01 15:44:15

看起来,您必须从源代码编译,给出正确的.configure选项。pecl安装只为您提供一个.so,它是一个动态模块扩展,您可以通过php.ini添加

因此,如果您真的需要带有apc的mysqlnd_qc (您是吗?),您必须获得php,并使用所需的模块编译它。

如果您不需要它,只需说不或点击返回时,佩克尔安装mysqlnd_qc询问你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13180141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档