Solve the problem of php extension loading sequence

  • 2021-12-13 16:32:49
  • OfStack

Some php extensions are loaded in sequence. If you make a mistake, the extension cannot be loaded.

1. pdo_sqlsrv is an sqlserver extension. If it is loaded before the pdo extension, the following error will be reported

PHP Warning: PHP Startup: Unable to load dynamic library 'pdo_sqlsrv.so' (tried: /usr/lib64/php/modules/pdo_sqlsrv.so (/usr/lib64/php/modules/pdo_sqlsrv.so: cannot open shared object file: No such file or directory), /usr/lib64/php/modules/pdo_sqlsrv.so.so (/usr/lib64/php/modules/pdo_sqlsrv.so.so: undefined symbol: php_pdo_register_driver)) in Unknown on line 0

Solution:


extension=pdo.so
extension=pdo_sqlsrv.so  // Put pdo Back 

2. The swoole extension depends on the sockets extension. Loading before the sockets extension will report the following error

PHP Warning: PHP Startup: Unable to load dynamic library 'swoole.so' (tried: /usr/lib64/php/modules/swoole.so (/usr/lib64/php/modules/swoole.so: cannot open shared object file: No such file or directory), /usr/lib64/php/modules/swoole.so.so (/usr/lib64/php/modules/swoole.so.so: undefined symbol: php_sockets_le_socket)) in Unknown on line 0

Solution:


extension=sockets.so
extension=swoole.so  // Put pdo Back 

After loading, restart, php-fpm is good

Summarize


Related articles: