2

これで、Ubuntu PC に apt-get 経由で php 5.3.* をインストールしましたが、何らかの問題で 5.4.5 を使用する必要があります。この理由により、新しいバージョンの php 5.4.5 を mongo ドライバーと共に別の場所にコンパイルしてインストールしようとしました。次の手順を実行しました。

sudo su
cd /opt
tar xfz php-5.4.5.tar.gz
cd php-5.4.5
./configure --prefix=/opt/php545 --enable-phar --with-config-file-path=/opt/php545/php.ini
make & make install

上記のコマンドの後、私はphpを動作させました:

/opt/php545/bin/php -v
PHP 5.4.5 (cli) (built: Aug 15 2012 09:04:56) 
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies

その後、次のことを行いました:

/opt/php545/bin/pecl install mongo

そしてそれは私を返します

Build process completed successfully
Installing '/opt/php545/lib/php/extensions/no-debug-non-zts-20100525/mongo.so'
install ok: channel://pecl.php.net/mongo-1.2.12
configuration option "php_ini" is not set to php.ini location
You should add "extension=mongo.so" to php.ini

/opt/php545/php.ini の次の行に追加しました

extension=/opt/php545/lib/php/extensions/no-debug-non-zts-20100525/mongo.so

しかし、mongoはモジュールとしてロードされていません:

/opt/php545/bin/php -m | grep mongo
!!!Nothing here!!!

私は何を間違えましたか?

PS:

 /opt/php545/bin/php -i | grep php.ini 

戻る

Configuration File (php.ini) Path => /opt/php545/php.ini

(php.iniの設定はきちんとしています)

4

2 に答える 2

0

拡張機能を php.ini からロードするのではなく、次のように解析された ini ファイルからロードします。

 nano /usr/local/php-5.x.xx/php.d/mongo.ini

x.xx は PHP のバージョンです。

次に、拡張機能をロードします。

 ;Enable mongo extension module
 extension=mongo.so
 mongo.default_port=27017

ctrl + o で保存し、白い crtl + x を閉じる

次に、サービスを再起動します。

 service php-fpm restart 
 service httpd restart

// php-fpm があれば

したがって、すでにロードされているはずです。

于 2014-01-06T02:26:48.933 に答える
0

php config は拡張行の絶対パスを受け入れません。extension_dir を使用してください。

于 2012-08-15T08:29:16.100 に答える