Install MSSQL for PHP70 – Nginx

I. How to setup MSSQL-PHP on CENTOS

1. Install OBDC Extension

#RedHat Enterprise Server 7
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo
exit
sudo yum remove unixODBC-utf16 unixODBC-utf16-devel #to avoid conflicts
sudo ACCEPT_EULA=Y yum install msodbcsql
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y yum install mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo yum install unixODBC-devel

Try to connect

sqlcmd -S "\," -U "" -P "" -Q "SELECT @@VERSION"

Result

Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64)
        Apr  2 2010 15:48:46
        Copyright (c) Microsoft Corporation
        Enterprise Edition (64-bit) on Windows NT 6.2 (Build 9200: ) (Hypervisor)
(1 rows affected)

If you get any issue about Timeout connection

  • Check Firewall TCP/UDP ports
  • Check allow connection from SQL Server Management Studio > Connections
  • Check MSSQL Port (1433 or 49262) from SQL Server Configuration Manager > SQL Server Network Configuration > Protocols for > TCP/IP > Properties > IP Address.

2. Install PHP

wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm
rpm -Uvh remi-release-7.rpm epel-release-latest-7.noarch.rpm
yum install pecl
yum install php70w php70w-common php70w-devel php70w-intl php70w-mbstring php70w-mcrypt php70w-opcache php70w-fpm php70w-mysql php70w-xml php70w-json
sudo pecl install sqlsrv-5.1.1preview
sudo pecl install pdo_sqlsrv-5.1.1preview
sudo echo "extension= pdo_sqlsrv.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`
sudo echo "extension= sqlsrv.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`

3. Fix load pdo_sqlsrv issue

Remove pdo_sqlsrv.so & sqlsrv.so from /etc/php.ini

4. Restart PHP-FPM & Nginx services

Run following commands

service php-fpm restart
service nginx restart

II. How to setup MSSQL-PHP on CENTOS on Ubuntu

1. Install OBDC Extension

Run following commands

sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install msodbcsql mssql-tools
sudo apt-get install unixodbc-dev
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc

Try to connect

sqlcmd -S "\," -U "" -P "" -Q "SELECT @@VERSION"

Result

Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64)
        Apr  2 2010 15:48:46
        Copyright (c) Microsoft Corporation
        Enterprise Edition (64-bit) on Windows NT 6.2 (Build 9200: ) (Hypervisor)
(1 rows affected)

If you get any issue about Timeout connection

  • Check Firewall TCP/UDP ports
  • Check allow connection from SQL Server Management Studio > Connections
  • Check MSSQL Port (1433 or 49262) from SQL Server Configuration Manager > SQL Server Network Configuration > Protocols for > TCP/IP > Properties > IP Address.

1. Install PHP

Run following commands

apt-get update
apt-get install php70w php70w-common php70w-devel php70w-intl php70w-mbstring php70w-mcrypt php70w-opcache php70w-fpm php70w-mysql php70w-xml php70w-json
pecl install sqlsrv
pecl install pdo_sqlsrv
sudo echo "extension=sqlsrv.so"  >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`
sudo echo "extension=pdo_sqlsrv.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`

2. Fix load pdo_sqlsrv issue

Remove pdo_sqlsrv.so & sqlsrv.so from /etc/php.ini

3. Restart PHP-FPM & Nginx services

Run following commands

service php-fpm restart
service nginx restart

View similar blog