2017-01-06 17 views
0

MongoDB PHPドライバをインストールしようとしているので、別のマシン上のMongoDBサーバに接続できます。 AWS LinuxでPHP 5.6を使用する。MongoDB PHPドライバがLinux上で動作しないAWS

私はsudo pecl install mongodbを使用しました。当初、依存関係に関するいくつかのエラーがありましたが、それらをすべて追加したところ、エラーなしでインストールされたようです。

しかし、ローディング時にphpinfo()私はMongoへの参照がありません。私が実行しようとすると:

PHP Startup: Unable to load dynamic library '/usr/lib64/php/5.6/modules/mongodb.so' - /usr/lib64/php/5.6/modules/mongodb.so: undefined symbol: php_json_serializable_ce in Unknown on line 0 

このエラーがなければならないようだ。

$connection = new MongoClient();を、私は私が私のphp.iniにextension=mongodb.soに入れたが、別のエラーの結果があることでした

PHP Fatal error: Class 'MongoClient' not found in /var/www/html/mongo.php on line 3 

を取得しますjsonがMongoDBに対して相対的にロードする順番に関係します。しかし、私の場合のように、MongoDBはまったくロードされていないようです。ここに該当するかどうかはわかりません。

なぜこれが機能していないのかについては助けていただきたいと思います。

+0

'extension = mongodb.so'が' extension = json.so'の後にあることを確認してください – Hereblur

+0

php.iniの最後の行に 'extension = mongodb.so'があります。私は 'extension = json.so'も表示しません – user2029890

+0

phpinfo()にJSONセクションがありますか? – Hereblur

答えて

0

私は同じような状況に直面していたし、私はあなたがDebianの

cat <<EOF> /etc/php5/mods-available/mongodb.ini 
; priority=99 
extension=mongodb.so 
EOF 
php5enmod mongodb 
を使用している場合、代わりにphp.iniでmongodb.so入れて別のモジュール 行う必要はありませんMongoの開発者 からこのソリューションを得ました

あなたはその後、あなたのapache を再起動し、それが正常に動作しますフェドーラ

echo "extension=mongodb.so" > /etc/php.d/50-mongodb.ini 

を使用している場合。

+0

それはそれでした!ありがとう! – user2029890

0

MongoClient for PHPを使用することは推奨されません。あなたは $connection = new MongoDB\Driver\Manager();

を使用したいと思う代わりに$connection = new MongoClient(); の(https://github.com/mongodb/mongo-php-driver/issues/300#issuecomment-210820288

は、この情報がお役に立てば幸いです。

+0

それを試して、 'PHPの致命的なエラー:クラス 'MongoDB \ Driver \ Manager'が/ var/www/html/mongo.phpに見つかりません – user2029890

+0

関連するすべてのサービスを再起動しましたか? (Apacheなど) – Furrowed

+0

はい、何度か。再起動されたサーバー。 – user2029890

関連する問題