php-apcを使用したmysqlnd_qcのコンパイル中にエラーが発生しました
コマンド APCを有効にしないと、正常にコンパイルされます...
PHPバージョン:5.3.17
AmazonRDSで実行しています。 APCとMySQLクエリキャッシュを静的にコンパイルするとはどういう意味ですか?
どのように行われますか?
更新1:
mysqlnd_qcをAPCでコンパイルできなかったので、 そこで、オプションを要求しているときに したがって、 更新2:
APCでコンパイルできました。以下の詳細な回答を参照してください。pecl install mysqlnd_qcを実行して、
APC を有効にしてキャッシュをインストールすると、次のエラーが発生します:
configure:エラー:APCは、APCとMySQLクエリキャッシュの両方が静的にコンパイルされている場合にのみサポートされます
エラー: `/ var / tmp / mysqlnd_qc / configure --enable-mysqlnd-qc-apc = yes --enable-qc-memcache = no --enable-qc-sqlite =no'が失敗しました
memcached
でコンパイルしてみました。
ここに興味深い問題がありました。 ./configure コマンドは、
pecl
がmemcache
。オプションが間違って入力されていることがわかりました... pecl のインストールを強制終了し、次のコマンドを自分で実行しました。
sudo ./configure --enable-mysqlnd-qc-memcache --with-lib memcached -dir = / usr /
sudo make
sudo make install
memcached
で機能するようになりました。 Fedora で実行している場合(
RedHat
とCentOS
も推測します)利用可能な rpm :
sudo yum install php-pecl-mysqlnd-qc
答え :
解決策:
解決策が見つかりました:
これが私がしたことです:
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
次の2つのコマンドも使用しましたが、いつ何をしたか覚えていません...
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
を置き換える必要があります。
答え :
解決策:
適切な.configureオプションを指定して、ソースからコンパイルする必要があるようです。 pecl installは、動的モジュール拡張子である.soを提供するだけで、php.iniを介して追加できます
つまり、apcでmysqlnd_qcが本当に必要な場合(そうですか?)、php srcを取得して、コンパイルする必要があります。 必要なモジュールで。
必要がない場合は、pecl install mysqlnd_qcから問い合わせがあったときに、「いいえ」と言うか、リターンキーを押してください。
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。