Laravel Homestead Mongo install causing PHP error undefined symbol: php_json_serializable_ce in Unknown on line 0

前端 未结 2 1882
隐瞒了意图╮
隐瞒了意图╮ 2021-02-06 12:10

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_

2条回答
  •  独厮守ぢ
    2021-02-06 13:02

    I think the problem is here that mongodb.so depends on json.so. The solution is to load mongodb.so after json.so.

    I guess you are using the custom Mongo script for Homestead. The script outputs the mongodb.so module in php.ini file with the result that mongodb.so is loaded first. You should create a mongodb.ini file where mongodb.so is loaded.

    Create the .ini-file: /etc/php/7.0/mods-available/mongodb.ini with content:

    ; configuration for php mongo module
    ; priority=30
    extension=mongodb.so
    

    Give it priority 30, since json gets 20 (in my settings) to be sure it is loaded afterwards.

    Create a softlink of the ini-file to /etc/php/7.0/fpm/conf.d to make it available for the webserver.

    ln -s /etc/php/7.0/mods-available/mongodb.ini 30-mongodb.ini
    

    Reload webserver and php-fpm.

    sudo service [your webserver] restart && sudo service php7.0-fpm restart
    

    You are done! You can config the cli-version the same way

提交回复
热议问题