Ned*_*dim 2 php apache mongodb
我尝试安装MongoDB PHP库时遇到错误:
$ composer require "mongodb/mongodb=^1.0.0"
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/mongodb.so' - /usr/lib/php/20151012/mongodb.so: undefined symbol: php_json_serializable_ce in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/mongodb.so' - /usr/lib/php/20151012/mongodb.so: undefined symbol: php_json_serializable_ce in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/mongodb.so' - /usr/lib/php/20151012/mongodb.so: undefined symbol: php_json_serializable_ce in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/mongodb.so' - /usr/lib/php/20151012/mongodb.so: undefined symbol: php_json_serializable_ce in Unknown on line 0
Run Code Online (Sandbox Code Playgroud)
当我执行时,phpinfo()我可以看到以下内容:
mongodb
mongodb support enabled
mongodb version 1.2.1
mongodb stability stable
libmongoc version 1.5.0
libbson version 1.5.0
Run Code Online (Sandbox Code Playgroud)
当我执行locate mongodb.so这里我的mongodb.so文件是:
/usr/lib/php/20151012/mongodb.so
Run Code Online (Sandbox Code Playgroud)
我可以注意到,这是20-mongodb.ini文件所在的路径:
/etc/php/7.0/apache2/conf.d
Run Code Online (Sandbox Code Playgroud)
此外,sudo pecl mongodb install返回以下内容:
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/mongodb.so' - /usr/lib/php/20151012/mongodb.so: undefined symbol: php_json_serializable_ce in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/mongodb.so' - /usr/lib/php/20151012/mongodb.so: undefined symbol: php_json_serializable_ce in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/mongodb.so' - /usr/lib/php/20151012/mongodb.so: undefined symbol: php_json_serializable_ce in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/mongodb.so' - /usr/lib/php/20151012/mongodb.so: undefined symbol: php_json_serializable_ce in Unknown on line 0
Run Code Online (Sandbox Code Playgroud)
sudo pecl info mongodb 收益:
About pecl.php.net/mongodb-1.2.1
================================
Release Type PECL-style PHP extension (source code)
Name mongodb
Channel pecl.php.net
Summary MongoDB driver for PHP
Description The purpose of this driver is to provide
exceptionally thin glue between MongoDB
and PHP, implementing only fundemental and
performance-critical components
necessary to build a fully-functional MongoDB
driver.
Maintainers Hannes Magnusson <bjori@php.net> (lead)
Jeremy Mikola <jmikola@php.net> (lead)
Derick Rethans <derick@php.net> (lead)
Release Date 2016-12-07 18:25:03
Release Version 1.2.1 (stable)
API Version 1.2.1 (stable)
License Apache License
(http://www.apache.org/licenses/LICENSE-2.0)
Release Notes ** Bug
* [PHPC-848] - Fix BSON encoding of
immutable arrays and documents with circular
references
Required Dependencies PHP version 5.4.0-7.99.99
PEAR installer version 1.4.8 or newer
package.xml version 2.0
Last Modified 2016-12-09 00:28
Previous Installed 1.2.0
Version
Run Code Online (Sandbox Code Playgroud)
我在Google上搜索了几个小时,但仍然没有.谢谢.
小智 5
是的,有很好的答案.这是我在php7.1中安装mongo所做的.我使用的是64位的ubuntu16.04:
sudo aptitude install -y php7.1-dev pkg-config
sudo -H pecl channel-update pecl.php.net
sudo aptitude install -y libcurl4-openssl-dev pkg-config libssl-dev libsslcommon2-dev
sudo pecl install mongodb
echo 'extension=mongodb.so' | sudo tee /etc/php/7.1/fpm/conf.d/30-mongodb.ini
echo 'extension=mongodb.so' | sudo tee /etc/php/7.1/cli/conf.d/30-mongodb.ini
sudo systemctl restart php7.1-fpm.service
Run Code Online (Sandbox Code Playgroud)
这一切都适用于nginx.如果您使用的是apache,请添加:
echo 'extension=mongodb.so' | sudo tee /etc/php/7.1/apache2/conf.d/30-mongodb.ini
Run Code Online (Sandbox Code Playgroud)
还有一个.如果在使用mongo时仍然出错.像这样的东西:
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20160303/mongodb.so' - libssl.so.1.0.2: cannot open shared object file: No such file or directory in Unknown on line 0
Run Code Online (Sandbox Code Playgroud)
不要绝望,运行以下命令:
sudo pecl uninstall mongodb
sudo pecl install mongodb
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2093 次 |
| 最近记录: |