Msphpsql: [root@localhost php.d]# php -m PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/pdo_sqlsrv.so' - /usr/lib64/php/modules/pdo_sqlsrv.so: undefined symbol: _Z10LocalAllocjj in Unknown on line 0

Created on 16 Aug 2016  路  11Comments  路  Source: microsoft/msphpsql

server : centos7.2
php version: 7.0.9

[root@localhost php.d]# php -m
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/php_sqlsrv_7_nts.so' - /usr/lib64/php/modules/php_sqlsrv_7_nts.so: undefined symbol: _Z9LocalFreePv in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/pdo_sqlsrv.so' - /usr/lib64/php/modules/pdo_sqlsrv.so: undefined symbol: _Z10LocalAllocjj in Unknown on line 0

why??

Most helpful comment

@szepeviktor libstdc++ is not linked. I've a fix for that which is working on Debian jessie. PR is comming soon.

All 11 comments

@fhbzyc Can you confirm if you can connect via sqlcmd? sqlcmd -S <myserver> -d <mydatabase> -U <myusername> -P <mypassword> -I

same issue on Linux ubuntu-amd64 3.13.0-24-generic #47-Ubuntu SMP Fri May 2 23:30:00 UTC 2014 x86_64; php version 7.0.10

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/no-debug-zts-20151012/pdo_sqlsrv.so' - /usr/local/lib/php/extensions/no-debug-zts-20151012/pdo_sqlsrv.so: undefined symbol: _ZNKSt9exception4whatEv in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/no-debug-zts-20151012/pdo_sqlsrv.so' - /usr/local/lib/php/extensions/no-debug-zts-20151012/pdo_sqlsrv.so: undefined symbol: _ZNKSt9exception4whatEv in Unknown on line 0

connect to db using the following works well:
sqlcmd -S <myserver> -d <mydatabase> -U <myusername> -P <mypassword> -I

@PetrSpacek What version of Ubuntu are you using? How did you install the ODBC Driver?

in aware of the fact that linux drivers are for Ubuntu 15+, but we're forced to use 14.04, so we have done following

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install g++-4.9

mkdir php7-install
cd php7-install

unixODBC

sudo apt-get install odbcinst
wget http://www.unixodbc.org/pub/unixODBC/unixODBC-2.3.1.tar.gz
tar xvzf unixODBC-2.3.1.tar.gz
cd unixODBC-2.3.1
./configure CXX=g++-4.9 CC=gcc-4.9
make
sudo make install
cd ..

Install Microsoft ODBC driver for Linux

wget https://github.com/Microsoft/msphpsql/archive/PHP-7.0-Linux.zip
unzip PHP-7.0-Linux.zip
chmod +x msphpsql-PHP-7.0-Linux/ODBC\ install\ scripts/installodbc_ubuntu.sh
sudo sh msphpsql-PHP-7.0-Linux/ODBC\ install\ scripts/installodbc_ubuntu.sh

install apache

sudo apt-get install apache2 apache2-dev libxml2-dev unzip autoconf libcurl4-gnutls-dev git

install PHP7 from sources including the Microsoft PHP drivers for SQLServer

wget http://cz1.php.net/distributions/php-7.0.10.tar.gz
tar xvzf php-7.0.10.tar.gz
cd msphpsql-PHP-7.0-Linux/source/
cp 鈥搑 sqlsrv/ ../../php-7.0.10/ext/
cp 鈥搑 pdo_sqlsrv/ ../../php-7.0.10/ext/
cd ../../
cd php-7.0.10/
./buildconf --force
./configure CXX=g++-4.9 CC=gcc-4.9 LIBS=-lodbc --with-unixODBC=/usr/local --with-apxs2=/usr/bin/apxs2 --enable-maintainer-zts CXXFLAGS=-std=c++11 --enable-sqlsrv=shared --with-pdo_sqlsrv=shared --with-odbcver=0x0380 --with-curl --with-openssl --enable-zip
make
sudo make install

edit php7 in apache sudo nano /etc/apache2/mods-available/php7.load by adding

<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>

establish php.ini file

sudo cp php.ini-development /usr/local/lib/php.ini
sudo nano /usr/local/lib/php.ini

add to php.ini

extension=pdo_sqlsrv.so

restart apache

sudo service apache2 restart

verify pdo loaded

php --ini

then tested by sqlcmd -S -d -U -P -I

@PetrSpacek The ODBC Driver (a pre-requisite) for the PHP Driver is not available on Ubuntu 14.04. Can you upgrade to one of the newer versions of Ubuntu?

we have compiled ODBC Driver (see steps) and it was successfully installed to the system

After installing unixodbc-2.3.1 and msodbcsql-13.0.0.0
https://github.com/Microsoft/msphpsql/wiki/Install-pdo_sqlsrv-for-PHP-7.0-on-Debian

Then

# php -v
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/pdo_sqlsrv.so' - /usr/lib/php/20151012/pdo_sqlsrv.so: undefined symbol: _ZNKSt9exception4whatEv in Unknown on line 0
PHP 7.0.10-1~dotdeb+8.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.10-1~dotdeb+8.1, Copyright (c) 1999-2016, by Zend Technologies

@meet-bhagdev I use PHP 7.0 from dotdeb on Debian jessie

@szepeviktor libstdc++ is not linked. I've a fix for that which is working on Debian jessie. PR is comming soon.

Hi all, this issue should be fixed with our latest release: https://github.com/Microsoft/msphpsql/releases/tag/4.0.4-Linux. Can you help us verify?

/etc/php/7.0/cli/php.ini

from
extension="pdo_sqlsrv.so"
extension="sqlsrv.so"
to
; extension="pdo_sqlsrv.so"
; extension="sqlsrv.so"

good luck

Was this page helpful?
0 / 5 - 0 ratings