26

MacBook を Mavericks にアップグレードして、開発環境が台無しになりました。私が今抱えている問題は、私の pear/pecl がバージョン 5.4 ではなく、以前の (5.3) バージョンの PHP をインストールしようとすることです。

PHP のバージョン:

$ php -v
PHP 5.4.17 (cli) (built: Aug 25 2013 02:03:38) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
    with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans

$ pear version
PEAR Version: 1.9.4
PHP Version: 5.4.17
Zend Engine Version: 2.4.0
Running on: Darwin MBP-retina.local 13.0.0 Darwin Kernel Version 13.0.0: Thu Sep 19 22:22:27 PDT2013; root:xnu-2422.1.72~6/RELEASE_X86_64 x86_64

apcをインストールすると

$ sudo pecl install apc
downloading APC-3.1.13.tgz ...
Starting to download APC-3.1.13.tgz (171,591 bytes)
.....................................done: 171,591 bytes
55 source files, building
running: phpize
Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626
...
Build process completed successfully
Installing '/usr/local/Cellar/php53/5.3.26/include/php/ext/apc/apc_serializer.h'
Installing '/usr/local/Cellar/php53/5.3.26/lib/php/extensions/no-debug-non-zts-20090626/apc.so'
install ok: channel://pecl.php.net/APC-3.1.13
Extension apc enabled in php.ini

そして、php.ini php -v で apc モジュールを有効にすると、次のように変更されます。

$ php -v
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/no-debug-non-zts-20100525/apc.so' - dlopen(/usr/lib/php/extensions/no-debug-non-zts-20100525/apc.so, 9): image not found in Unknown on line 0
PHP 5.4.17 (cli) (built: Aug 25 2013 02:03:38) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
    with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans

したがって、pecl は apc 拡張機能を にインストールし/usr/local/Cellar/php53/5.3.26/lib/php/extensions/no-debug-non-zts-20090626、php はそれを に期待し/usr/lib/php/extensions/no-debug-non-zts-20100525/ます。

単純にシンボリック リンクを作成すると、次のエラーが発生します。

$ php -v
PHP Warning:  PHP Startup: apc: Unable to initialize module
Module compiled with module API=20090626
PHP    compiled with module API=20100525
These options need to match
 in Unknown on line 0
PHP 5.4.17 (cli) (built: Aug 25 2013 02:03:38) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
    with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans

だから、それは解決策ではありません。

誰かが私を正しい方向に向けることができますか? ここで何が起こっているのか本当にわかりません。

4

7 に答える 7

40

私の場合、Gearman をインストールしようとしていました。

pecl install gearman はそれを正しくインストールしません。

php -i次のように表示されます。

PHP Extension => 20100525

それでも、pecl は以下を使用してインストールします。

PHP Api Version:         20090626

使用する構成設定を変更した後:

最初の修正

sudo pecl config-set php_ini /etc/php.ini
sudo pecl config-set php_bin /usr/bin/php5

私はまだ得ることに気づいた

警告: php_bin /usr/bin/php5 のサフィックスは 5 のようですが、構成変数 php_suffix が一致しません

これは、構成設定を使用して解決できます。

追加修正

sudo pear config-set php_suffix 5

なぜこれが問題になったのですか?

私にとっては、カスタム PPA を追加して PHP を再インストールしたため、この問題が発生しました。これは、php5-dev の以前のインストールが同期していなかったことを意味します。

もしあなたが同じ状況に陥ったら、あなたはただ逃げたいと思うかもしれません..

apt-get remove php5-dev
pecl uninstall <extensionname>
apt-get install php5-dev
apt-get remove php5-pear
apt-get install php5-pear
pecl install <extensionname>

または、ソースをダウンロードして phpize を実行することもできます。

于 2014-01-02T15:52:16.360 に答える
32

解決策は非常に簡単でした。pecl 構成を変更する必要がありました。次の 2 つのコマンドでうまくいくことがわかりました。

sudo pear config-set php_ini /etc/php.ini
sudo pecl config-set bin_dir /usr/bin/

pecl は間違った phpize を使用しました。phpize には 2 つのバージョンがありました。私のphp.iniファイルについても同じことが言えます。

于 2013-10-24T19:52:25.140 に答える
6

PECL で使用され、ハッキングを行わないため、phpize 拡張機能を再インストールすることをお勧めします。

次に行います (php 5.5 => php 5.6 の例):

sudo apt-get remove php5-dev
sudo apt-get install php5.6-dev 

(5.6 を必要なバージョンに変更できます)

それで:

sudo pecl install extensionname
于 2016-10-27T09:47:58.887 に答える
5

Ubuntu で PHP のバージョンを切り替える方法があります。

sudo update-alternatives --set php /usr/bin/php5.6

オプションで:

sudo update-alternatives --set phar /usr/bin/phar5.6
sudo update-alternatives --set phar.phar /usr/bin/phar.phar5.6
sudo update-alternatives --set phpize /usr/bin/phpize5.6
sudo update-alternatives --set php-config /usr/bin/php-config5.6

ソース: https://superuser.com/a/1100911/371795

于 2018-04-23T16:11:17.137 に答える