Dan*_*naq 8 php ubuntu mongodb
我正在尝试为 php7 安装 mongoDB 扩展。我从全新安装的 Ubuntu-Server 16.04.1 开始。预安装(在安装操作系统时)软件包是 LAMP-extension、OpenSSL 和 MySQL-server。这是安装在本地 VirtualBox 上的。它应该是一个开发系统,为每个开发人员配置平等。
首先,我根据这些说明安装了 MongoDB 本身:在 Ubuntu 上安装 mongoDB
之后,根据第二条指令:安装 php7-mongoDB-client-driver,
我安装了
它可以在
$sudo apt-get install php-pear phpize
Run Code Online (Sandbox Code Playgroud)
因为这两个包在使用时被标记为丢失
sudo pecl install mongodb
Run Code Online (Sandbox Code Playgroud)
第一次。
然后我被建议安装openssl-extension。关于这一点,我找到了一条指令,告诉我执行这 3 个命令:
$sudo apt-get install libssl-dev $sudo apt-get install libcurl4-openssl-dev$sudo apt-get install libcurl4-openssl-dev pkg-config libssl-dev libsslcommon2-dev(第一个包已经安装在我的系统上)
在那之后
$php -m
Run Code Online (Sandbox Code Playgroud)
应该将“openssl”显示为列表中的一个点。
然后我终于可以执行了
$sudo pecl install mongodb
Run Code Online (Sandbox Code Playgroud)
这个安装最后显示了四个指令:
<Installing '/usr/lib/php/20151012/mongodb.so'>
<install ok: channel://pecl.php.net/mongodb-1.1.8>
<configuration option "php_ini" is not set to php.ini location>
<You should add "extension=mongodb.so" to php.ini>
Run Code Online (Sandbox Code Playgroud)
所以我执行了:
$php -i | grep extension_dir
Run Code Online (Sandbox Code Playgroud)
它应该显示与第一行中显示的路径相同的路径。
$pear config-set php_ini /etc/php5/apache2/php.ini
$pecl config-set php_ini /etc/php5/apache2/php.ini
Run Code Online (Sandbox Code Playgroud)
按照第三行的说明进行操作。
添加extension=mongodb.so到 phpini at/etc/php/7.0/apache2/
以符合第 4 行。
最后,在重新启动 apache2 后,
$php -i
Run Code Online (Sandbox Code Playgroud)
应该在第二行显示相同版本的 mongodb。
完成所有这些步骤后,我找到了最后一个要安装的软件包
$sudo apt-get install php-mongodb
Run Code Online (Sandbox Code Playgroud)
但这也无济于事。
要检查扩展是否正常工作,我使用了:
$m = new MongoClient(); OR
$m = new Mongo\Driver\Manager();
Run Code Online (Sandbox Code Playgroud)
然后回显 $m。我读到这Mongo\Driver\Manager是新版本,但即使使用此代码它也不起作用。它总是告诉我“找不到”课程。不管我试过什么课。
我希望这个(希望)完整的说明可以帮助有关于 mongodb 和 php 的类似问题的人。
此外,我希望这些信息可以帮助你给我一个提示,我还能做些什么来解决这个问题。不幸的是,我搜索了很长时间,但没有找到将这个扩展包含在这个 php 版本中的东西。那里只有一部分,但我无法将它们构建在一起。
使用 PHP 7+ 时安装新的 Mongo PHP 适配器
composer config "platform.ext-mongo" "1.6.16" && composer require alcaeus/mongo-php-adapter
Run Code Online (Sandbox Code Playgroud)
然后使用PECL安装mongodb
pecl install mongodb
Run Code Online (Sandbox Code Playgroud)
如果你正确安装了 mongodb
$ sudo nano /etc/php/7.0/apache2/php.ini
Run Code Online (Sandbox Code Playgroud)
在文件中添加以下行:
extension = mongodb.so;
Run Code Online (Sandbox Code Playgroud)
或使用此命令
echo "extension=mongodb.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19807 次 |
| 最近记录: |