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