运行命令pecl install mysqlnd_qc
以安装启用APC
的缓存我收到以下错误:
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 RDS上运行。
静态编译APC和MySQL查询缓存是什么意思?
怎么做?
更新1:
由于我没有设法用APC编译mysqlnd_qc,我尝试用memcached
编译它。
这是一个有趣的问题。 ./configure
命令无法识别pecl
为memcache
提供的选项。我发现选项输入错误了......
所以当我要求选项时我杀了pecl
安装并自己运行以下命令:
sudo ./configure --enable-mysqlnd-qc-memcache --with-libmemcached-dir=/usr/
sudo make
sudo make install
所以memcached
现在可以了。
如果在Fedora
上运行(我猜也是RedHat
和CentOS
),可以使用rpm
:
sudo yum install php-pecl-mysqlnd-qc
更新2:
我设法用APC编译,请参阅下面的详细答案。
答案 0 :(得分:2)
很好地找到了解决方案:
这是我做的:
获取php 5.3.17:
wget https://github.com/php/php-src/archive/PHP-5.3.17.zip
unzip PHP-5.3.17.zip
获取mysqlnd_qc:
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
获取APC:
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/
编译:(可能不需要在其他系统上全部使用)
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
(对我而言,链接失败并且必须将'-lpthread'添加到链接中)
make test
sudo make install
我还使用了以下两个命令,但我不记得是什么以及何时......
phpize
aclocal
运行与phpinfo相同的./configure
并添加以下选项:
--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
。 答案 1 :(得分:0)
看起来你必须从源代码编译,给出正确的.configure选项。 pecl install只给你一个.so,这是一个动态模块扩展,你可以通过php.ini
添加所以,如果你真的需要apc的mysqlnd_qc(是吗?),你必须得到php src,然后编译它 使用所需的模块。
如果你不需要它,只要说不,或者在pecl install mysqlnd_qc问你时回复。