php -vはこれを与えます
PHP Warning: PHP Startup: memcache: Unable to initialize module
Module compiled with module API=20060613
PHP compiled with module API=20090626
These options need to match in Unknown on line 0
PHP Warning: PHP Startup: memcache: Unable to initialize module
Module compiled with module API=20060613
PHP compiled with module API=20090626
These options need to match in Unknown on line 0
bogus test name tests/
追伸PHP 5.2から5.3にアップグレードしました。この前にすべてがうまくいきました。
PHPのバージョンを更新する場合(特にバージョンXYからバージョンXZに移行する場合)、PHP拡張機能も同様です。
これは、PHP拡張がCで開発され、PHPの内部に「近い」ためです。つまり、これらの内部のAPIが変更された場合、拡張は再コンパイルして、新しいバージョンを使用します。
また、PHP 5.2とPHP 5.3の間では、覚えていることですが、PHPエンジンで使用される内部データ構造にいくつかの変更がありました。 -それらのデータ構造の新しいバージョンと一致するためにコンパイルされます。
PHP拡張機能の更新方法は、使用しているシステムによって異なります。
Windowsを使用している場合は、いくつかの拡張機能の.dll
をここで見つけることができます。 http://downloads.php.net/pierre/
さまざまなバージョンの詳細については、 windows.php.net の左側のサイドバーに記載されている内容をご覧ください。
Linuxを使用している場合は、次のいずれかを行う必要があります。
pecl
コマンドを使用して、問題の拡張機能のソースを再ダウンロードし、再コンパイルします。ただ
pecl uninstall module_name
それから
pecl install module_name
問題はphp5-devパッケージ内にあります。古いlinuxバージョンのphp5.2からphp5.3に移行したと思います。私は同じことをしましたが、PHP 5.3をインストールできたとき、php5-devと競合がありました。何らかの理由で、新しいバージョンにアップグレードされません。 Dunnoがその理由であり、私は気にしませんが、これにより、拡張機能が古いAPIバージョンでコンパイルされ、php ofcは新しいAPIバージョンでコンパイルされます。この問題を解決するために私がしたことは:
Sudo apt-get remove php5-dev
でphp5-devを削除した後、Sudo apt-get autoremove
を実行して問題を引き起こしている残り物を取り除き、その後php5-devを再度インストールしました。 Sudo apt-get install php5-dev
。
それが完了したら、Sudo pecl uninstall memcache
でmemcacheを削除し、Sudo pecl install memcache
で再度インストールしました。これで、モジュールとphpの両方が同じAPIバージョンを使用したため、問題が解決したことがすぐにわかりました。
それが役に立てば幸い。
モジュールがインストールされている可能性がありますが、PHP.iniは引き続き古いディレクトリを指します。
/ usr/lib/php/extensionsの内容を確認してください。私の場合、no-debug-non-zts-20060613とno-debug-non-zts-20060613の2つのディレクトリがありました。 php.iniの428行目付近を変更します。
extension_dir = "/ usr/local/lib/php/extensions/no-debug-non-zts-20060613"
に
extension_dir = "/ usr/local/lib/php/extensions/no-debug-non-zts-20090626"
次に、Apacheを再起動します。これで問題が解決するはずです。
私はこの問題に長い間苦労し、configureを実行するときに、正しいphp-config
ツールへのパスを渡すだけであることがわかりました。
私の場合、それは
./configure --with-php-config=/usr/local/zend/bin/php-config
...不明な場合は、マシンでlocate php-config
を実行し、インストールされているさまざまなバージョンの中から適切なものを見つけます。
これが将来誰かを助けることを願っています。
PS。デフォルトのphp-config
は2009_926に設定されていました。これはPHP 5.3です。 PHP 5.4の./configure was
のパラメーターとして手動で入力したもの(2010 ...)
PHP 5.5からPHP 5.6。phpize
およびphp-config
phalcon拡張モジュールのコンパイルに使用されているライブラリは、まだPHP 5.5。以下のコマンドを実行する必要がありました。
Sudo apt-get install php5.6-dev
長いスタックトレースがあるでしょう、私が見た重要な情報はこれでした:
update-alternatives: using /usr/bin/php-config5.6 to provide /usr/bin/php-config (php-config) in auto mode
update-alternatives: using /usr/bin/phpize5.6 to provide /usr/bin/phpize (phpize) in auto mode
これが誰かの助けになることを願っています。
Php.iniでこの部分を有効にしました
extension=php_memcache.dll
[Memcache]
memcache.allow_failover = 1
memcache.max_failover_attempts=20
memcache.chunk_size =8192
memcache.default_port = 11211
これらの行をコメントした後composerは私のウィンドウ10にインストールされました
この問題は私に起きたばかりで、memory_limitを32 Mから64 Mに増やすだけで解決されました。php.iniが存在するファイルの値を調整できます。
php.iniを見つけて適切なファイルを選択し、memory_limitを検索します。変更後、Apache /etc/init.d/httpd restartを再起動する必要があります
ではごきげんよう。
私の場合、php.ini
[CLDbg]
extension=php_cl_dbg_5_3_VC9.dll
clport=6000
異なるバージョンPHP=をサポートするCodelobsterを削除したため、以下に更新する必要があります。
[CLDbg]
;extension=php_cl_dbg_5_3_VC9.dll
;clport=6000
モジュールを再コンパイルした後でも同じエラーが発生します。
しかし、phpizeの絶対パスを指定するだけで解決しました。
Phpizeする前に、新しいPHPを指すようにパス($ PS1)を更新してください! phpizeは環境を使用しますが、パスまたは環境の他の部分に古いPHP
私の場合、バージョン5.4.45のphpをインストールするためにlnmpを使用しました。しかし、おそらくlnmpの後にphp5-devをインストールしたため(lnmpをインストールした場合は必要ないでしょう)、phpizeとphp-configの両方がphpよりも古いバージョンのツールを指しています。/etc/alternatives/phpize
および/etc/alternatives/php-config
のソフトリンクを/usr/local/php/bin/phpize
および/usr/local/php/bin/php-config
に変更することでこれを解決しました。
これが役立つことを願っています。