4

php を再コンパイルした後、php cli を使用すると次のエラーが発生します。

PHP Warning:  PHP Startup: imap: Unable to initialize module
Module compiled with module API=20050922
PHP    compiled with module API=20090626
These options need to match
 in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/ldap.so' - /usr/lib/php/modules/ldap.so: undefined symbol: third_arg_force_ref in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/mbstring.so' - /usr/lib/php/modules/mbstring.so: undefined symbol: second_arg_force_ref in Unknown on line 0
PHP Warning:  PHP Startup: mysql: Unable to initialize module
Module compiled with module API=20050922
PHP    compiled with module API=20090626
These options need to match
 in Unknown on line 0
PHP Warning:  PHP Startup: mysqli: Unable to initialize module
Module compiled with module API=20050922
PHP    compiled with module API=20090626
These options need to match
 in Unknown on line 0
PHP Warning:  PHP Startup: PDO: Unable to initialize module
Module compiled with module API=20050922
PHP    compiled with module API=20090626
These options need to match
 in Unknown on line 0
PHP Warning:  PHP Startup: pdo_mysql: Unable to initialize module
Module compiled with module API=20050922
PHP    compiled with module API=20090626
These options need to match
 in Unknown on line 0
PHP Warning:  PHP Startup: pdo_sqlite: Unable to initialize module
Module compiled with module API=20050922
PHP    compiled with module API=20090626
These options need to match
 in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/mapi.so' - /usr/lib/php/modules/mapi.so: undefined symbol: fourth_arg_force_ref in Unknown on line 0

グーグルで調べた後、モジュールを更新する必要があることがわかりました。

pecl install <modulename>

pecl upgrade <modulename>

pear install -f pecl/<modulename>

しかし、次のようなエラーが発生しました:

configure: error: mysql_query missing!?
ERROR: `/tmp/pear/temp/PDO_MYSQL/configure' failed

または次のようなエラー:

make: *** [sqlite_driver.lo] 
Error 1 ERROR: `make' failed

モジュールを更新する方法はありますか?

他のサーバーでphpを再コンパイルする予定で、同じ問題に再び直面する前に解決策を知りたいので、コンパイルする前に何かしておくべきことがあれば教えてください。

前もって感謝します。

PS: 私の OS は Linux (Redhat) です。

4

1 に答える 1

0

あなたが抱えている問題は、phpとモジュールのAPIが異なることのようです。例:

Module compiled with module API=20050922     <----- this
PHP    compiled with module API=20090626     <----- and this should match.

私は通常、拡張機能をソースからコンパイルしてインストールしますが、これははるかに確実に機能するようです。

phpizeを使用する必要があります

例として、APCのインストール方法は次のとおりです。

wget http://pecl.php.net/get/APC-3.1.9.tgz
tar -xvzf APC-3.1.9.tgz
cd APC-3.1.9
phpize
./configure
make
sudo make install

これは、すべてのPECL拡張機能で機能するはずです。さて、他にもエラーがあります。最初にphp.iniを調べてすべての拡張機能を無効にしてから、1つずつ有効にして修正することをお勧めします。

mysqliに関するエラーもあります。php> = 5.0.0を使用している場合は、phpを再コンパイルする必要があります(./configure [....] --with-mysqliを使用)。そうでない場合は、上記の手順でも機能するはずです。 。

HTH

于 2012-12-04T15:35:31.970 に答える