2012-11-01 120 views
1

運行命令pecl install mysqlnd_qcAPC安裝緩存啓用我收到以下錯誤:錯誤編譯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:

由於我沒有設法編譯mysqlnd_qc與APC,我試着用memcached編譯它。 這是一個有趣的問題。 ./configure命令沒有識別peclmemcache提供的選項。我發現的選項輸入不正確......

所以我殺了pecl安裝時,它被要求的選項並運行以下命令自己:

sudo ./configure --enable-mysqlnd-qc-memcache --with-libmemcached-dir=/usr/ 
sudo make 
sudo make install 

因此,與memcached現在它工作。

如果Fedora運行(我也想RedHatCentOS)有可用的rpm

sudo yum install php-pecl-mysqlnd-qc 

更新2:

我設法與APC編譯,看下面詳細回答。

回答

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' nkage)

make test 
sudo make install 

我還使用了以下兩個命令,但我不記得什麼時候...

phpize 
aclocal 

運行相同./configure中的phpinfo和添加這些選項:

--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必須更換。
0

它看起來像你必須從源編譯提供正確的.configure選項。 pecl install只是給你一個.so,這是一個動態模塊擴展,你可以通過php.ini添加

所以如果你真的需要mysqlnd_qc與apc(你呢?),你必須得到php src,並用所需的模塊編譯它 。

如果你不需要它,只需在pecl install mysqlnd_qc問你時說「不」或返回。

+0

PECL安裝,至少在我的Linux版本並編譯代碼(使用make和gcc),並創建上飛這樣的文件。我需要APC,否則查詢緩存將隻影響正在運行的進程,這幾乎是無用的.... – SimonW