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??
@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
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 ..
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
sudo apt-get install apache2 apache2-dev libxml2-dev unzip autoconf libcurl4-gnutls-dev git
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
sudo nano /etc/apache2/mods-available/php7.load by adding<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
sudo cp php.ini-development /usr/local/lib/php.ini
sudo nano /usr/local/lib/php.ini
extension=pdo_sqlsrv.so
sudo service apache2 restart
php --ini
@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
Most helpful comment
@szepeviktor libstdc++ is not linked. I've a fix for that which is working on Debian jessie. PR is comming soon.