cma*_*mac 6 php mongodb laravel homestead
PHP警告:PHP启动:无法加载动态库'/usr/lib/php/20151012/mongodb.so' - /usr/lib/php/20151012/mongodb.so:未定义符号:php_json_serializable_ce在第0行的未知
安装MongoDB后,每当我从终端运行任何php命令时,我都会收到此错误:
php工匠
php -v
我现在已经搜索了2天.我见过这些:
https://github.com/mongodb/mongo-php-library/issues/126
我很确定谷歌出现这个错误的任何其他解决方案.他们似乎都修复了php5,并不适合我.
我已将extension = mongodb.so添加到ini文件中.
我已经摧毁了VM,并开始了100次新鲜.
我正在运行:Vagrant 1.8.5 Laravel Installer 1.3.3版
vagrant@homestead:~$ php -v
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
7.0.13-1+deb.sury.org~xenial+1 (cli) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.13-1+deb.sury.org~xenial+1, Copyright (c) 1999-2016, by Zend Technologies
with blackfire v1.14.1~linux-x64-non_zts70, https://blackfire.io, by Blackfireio Inc.
Run Code Online (Sandbox Code Playgroud)
Mongo安装并正常运行:
vagrant@homestead:~$ mongo
MongoDB shell version v3.4.0
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.0
Server has startup warnings:
2016-12-05T15:32:01.158+0000 I STORAGE [initandlisten]
2016-12-05T15:32:01.204+0000 I CONTROL [initandlisten]
2016-12-05T15:32:01.204+0000 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2016-12-05T15:32:01.204+0000 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2016-12-05T15:32:01.204+0000 I CONTROL [initandlisten]
2016-12-05T15:32:01.204+0000 I CONTROL [initandlisten]
2016-12-05T15:32:01.204+0000 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2016-12-05T15:32:01.204+0000 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2016-12-05T15:32:01.204+0000 I CONTROL [initandlisten]
2016-12-05T15:32:01.204+0000 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2016-12-05T15:32:01.205+0000 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2016-12-05T15:32:01.205+0000 I CONTROL [initandlisten]
>
Run Code Online (Sandbox Code Playgroud)
但我无法阻止这个PHP错误在世界上没有!
Chr*_*ris 13
我认为问题在于mongodb.so依赖于json.so. 解决方案是在json.so之后加载mongodb.so.
我想你正在使用Homestead的自定义Mongo脚本.该脚本在php.ini文件中输出mongodb.so模块,结果是首先加载mongodb.so.您应该创建一个mongodb.ini文件,其中加载了mongodb.so.
使用内容创建.ini文件:/etc/php/7.0/mods-available/mongodb.ini:
; configuration for php mongo module
; priority=30
extension=mongodb.so
Run Code Online (Sandbox Code Playgroud)
给它优先级30,因为json得到20(在我的设置中)以确保它之后被加载.
创建ini文件的软链接到/etc/php/7.0/fpm/conf.d,使其可用于Web服务器.
ln -s /etc/php/7.0/mods-available/mongodb.ini 30-mongodb.ini
Run Code Online (Sandbox Code Playgroud)
重新加载webserver和php-fpm.
sudo service [your webserver] restart && sudo service php7.0-fpm restart
Run Code Online (Sandbox Code Playgroud)
你完成了!您可以以相同的方式配置cli-version
| 归档时间: |
|
| 查看次数: |
2145 次 |
| 最近记录: |